Jump to content
Sign in to follow this  
uorypm

Кэш. Class Cache. Проблема с генерацией непонятной строки

Recommended Posts

Здравствуйте, форумчане!

 

Есть файл контроллера, в котором запрашивается кэш:

$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);

Есть системный класс Cache, в котором есть метод get.

 

 

Проблема в том, что из файла контроллера запрашивается строка вида "product.total.1.0.1.$cache" (где $cache - это некая сгенерированная строка). А в метод get класса Cache приходит непонятно почему такая строка: "product.total.1.0.1.cfcd208495d565ef66e7dff9f98764da.$cache".

 

Ссылка $this в файле контроллера ссылается на объект $registry класса Registry, в нем зарегистрирован экземпляр класса Cache. Т.е. вроде бы все нормально.

 

При этом метод set класса Cache записывает кэш как и положено - в виде файла с именем "product.total.1.0.1.$cache". Т.е. сейчас кэш для файлов "product.total.1.0.1.*" вообще не используется и CMS постоянно обращается к БД.

 

Временно метод get класса Cache изменил так:

	public function get($key) {
		if(preg_match('/^product\.total\.1\.0\.1\.cfcd208495d565ef66e7dff9f98764da.*$/', $key))
		{
			$key = str_replace('cfcd208495d565ef66e7dff9f98764da.', '', $key);
		}

	// ...

	}

Кто-нибудь с таким сталкивался и откуда и почему вставляетяс строка "cfcd208495d565ef66e7dff9f98764da" в имя файла кэша?

 

Спасибо.

Share this post


Link to post
Share on other sites
$cache = '1.0.1.cfcd208495d565ef66e7dff9f98764da' ;

Все правильно работает.

1. Напишите полный код класса Cache под спойлером.

2. И код контроллера, который запрашивает данные из кэша.

3. Как определили, что кэш не используется?

Share this post


Link to post
Share on other sites

1. Код класса Cache

<?php
class Cache { 
	private $expire = 3600; 

	public function get($key) {
		if(preg_match('/^product\.total\.1\.0\.1\.cfcd208495d565ef66e7dff9f98764da.*$/', $key))
		{
			$key = str_replace('cfcd208495d565ef66e7dff9f98764da.', '', $key);
			//echo $key , "<br/>\r\n";
		}
		$files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
		
		if ($files) {
			$cache = file_get_contents($files[0]);
			
			$data = unserialize($cache);
			
			foreach ($files as $file) {
				$time = substr(strrchr($file, '.'), 1);

      			if ($time < time()) {
					if (file_exists($file)) {
						unlink($file);
					}
      			}
    		}
			
			return $data;			
		}
	}

  	public function set($key, $value) {
    	$this->delete($key);
		
		$file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire);
    	
		$handle = fopen($file, 'w');

    	fwrite($handle, serialize($value));
		
    	fclose($handle);
  	}
	
  	public function delete($key) {
		$files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');
		
		if ($files) {
    		foreach ($files as $file) {
      			if (file_exists($file)) {
					unlink($file);
				}
    		}
		}
  	}
}
?>

 

2. Модель, не контроллер. Вот код метода:

<?php
	public function getTotalProducts($data = array()) {
		if ($this->customer->isLogged()) {
			$customer_group_id = $this->customer->getCustomerGroupId();
		} else {
			$customer_group_id = $this->config->get('config_customer_group_id');
		}	
				
		$cache = md5(http_build_query($data));
		
		$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
		
		if (!$product_data and $product_data === NULL) {
			
			$sql = "SELECT COUNT(DISTINCT p.product_id) AS total FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)";
	
			if (!empty($data['filter_category_id'])) {
				$sql .= " LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)";			
			}
						
			$sql .= " WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
			
			if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {
				$sql .= " AND (";
				
				if (!empty($data['filter_name'])) {					
					if (!empty($data['filter_description'])) {
						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%' OR MATCH(pd.description) AGAINST('" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "')";
					} else {
						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
					}
				}
				
				if (!empty($data['filter_name']) && !empty($data['filter_tag'])) {
					$sql .= " OR ";
				}
				
				if (!empty($data['filter_tag'])) {
					$sql .= "MATCH(pd.tag) AGAINST('" . $this->db->escape(utf8_strtolower($data['filter_tag'])) . "')";
				}
			
				$sql .= ")";
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}	
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}		

				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}

				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}		
				
				if (!empty($data['filter_name'])) {
					$sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				}				
			}
						
			if (!empty($data['filter_category_id'])) {
				if (!empty($data['filter_sub_category'])) {
					$implode_data = array();
					
					$implode_data[] = (int)$data['filter_category_id'];
					
					$this->load->model('catalog/category');
					
					$categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
										
					foreach ($categories as $category_id) {
						$implode_data[] = (int)$category_id;
					}
								
					$sql .= " AND p2c.category_id IN (" . implode(', ', $implode_data) . ")";			
				} else {
					$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
				}
			}		
			
			if (!empty($data['filter_manufacturer_id'])) {
				$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
			}
			
			$query = $this->db->query($sql);
			
			$product_data = $query->row['total']; 
			
			$this->cache->set('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache, $product_data);
		}
		
		return $product_data;
	}

 

3. Изначальная причина была в том, что сайт работал медленно. Системный администратор, потом и я, проверил нагрузку на сервер - нагрузка на сервер действительно была очень большой (не такой, какой должна была быть при работе с кэшем). Была поставлена мне задача. Посмотрел папку с кэшем - кэш создается под одним именем, а запрашивается под другим (в следствие чего создается новый запрос к БД и сайт работает медленно, а сервер под нагрузкой).

 

---------------------------

 

Откуда инфа, что $cache = '1.0.1.cfcd208495d565ef66e7dff9f98764da' ? Эта переменная вообще по-другому формируется.

 

В модели выводил на экран передаваемый текст - был один вариант (собственно, под каким и сохранялся кэш), а в метод класса приходит уже другой (а кэша с таким именем уже нет)!

При том такой запрос кэша формируется только в этом методе и только в этой модели! Т.е. только для кэшей которые начинаются с product.total.1.0.1.*.

Share this post


Link to post
Share on other sites

Да, ошибся:

$cache = md5(http_build_query($data)); //cfcd208495d565ef66e7dff9f98764da

Значит имя файла кэша cache.product.total.1.0.1.cfcd208495d565ef66e7dff9f98764da.$UTC. 

if (!$product_data and $product_data === NULL) {
//замените на 
if (empty($product_data)) {

Пришлите в ЛС данные для доступа к магазину или сорцы с БД на [email protected], я посмотрю. 

Share this post


Link to post
Share on other sites
Пришлите в ЛС данные для доступа к магазину или сорцы с БД на [email protected], я посмотрю. 

 

К сожалению, это невозможно.

 

debug_backtrace'ом выяснил, что среди прочих вызывается файл "/vqmod/vqcache/vq2-catalog_model_catalog_product.php" и в нем вызывается тот самый метод класса, но строка к кэшу формируется уже по-другому:

// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter

Сравните с исходным запросом:

$product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);

 

Т.е. как раз тут и вставляется эта злополучная строка прямо посреди текста - " .md5($filter). ".

 

С vQmod никогда не работал. Как наиболее правильно исправить такую работу этого мода? Или ничего страшного, ели вмешаться в код напрямую?

Share this post


Link to post
Share on other sites

Проблема в файле скрипта vQmod '/vqmod/xml/vqmod_filter_products.xml' :

 

	<operation>
            <search position="replace"><![CDATA[
            $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
            ]]></search>
            <add><![CDATA[
// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter
            ]]></add>
        </operation>

 

Переменная $filter всегда имеет значение int(0), следовательно, md5(0) имеем - "cfcd208495d565ef66e7dff9f98764da".

 

Следует просто переписать замещающий код? Из знающих vQmod никто не подскажет? Нужна ли вообще переменная $filter и в каких случаях?

Share this post


Link to post
Share on other sites

Проблема в файле скрипта vQmod '/vqmod/xml/vqmod_filter_products.xml' :

 

	<operation>
            <search position="replace"><![CDATA[
            $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
            ]]></search>
            <add><![CDATA[
// Start filter change
	    $product_data = $this->cache->get('product.total.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.'.md5($filter). '.'. $cache); 
// End filter
            ]]></add>
        </operation>

 

Переменная $filter всегда имеет значение int(0), следовательно, md5(0) имеем - "cfcd208495d565ef66e7dff9f98764da".

 

Следует просто переписать замещающий код? Из знающих vQmod никто не подскажет? Нужна ли вообще переменная $filter и в каких случаях?

 

Это XML файл какого-то модуля фильтра, если этот фильтр не используется на сайте, то можете просто переименовать vqmod_filter_products.xml на vqmod_filter_products.xml.bak, при обновлении страницы vqmod его не обработает и файл /vqmod/vqcache/vq2-catalog_model_catalog_product.php примет прежний вид. 

Если же этот фильтр используется, то обратитесь к его автору. Если же понадобится помощь, то я уже писал ранее свои контакты.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Eliy
      Добрый день! Возник вопрос: как добавить модуль, к примеру, "Категории" в header.tpl?
      На форумах смотрел, нашёл устаревший способ:
          В директории "/catalog/controller/common/header.php"
        Перед "$this->render();"(этой строки нет в файле) добавить такую строку:
       
      $this->children = array('module/information');      После чего в шаблоне template/common/header.tpl можно вывести переменную "$information", которая хранит готовый html код
       
      Однако, способ устарел, есть ли возможность это сделать в версии 2.3 OcStore/Opencart?
      Благодарю за вашу помощь!
    • By markimax
      1 490.00 руб
      Скачать/Купить дополнение


      Jet Cache - кеширование, pagespeed, оптимизация для магазинов

       

      Логин / пароль:
      demo / demo
       
      Документация  
      Более 10`000 интернет магазинов выбрали для работы
      JET CACHE - быстрая система кеширования страниц, контроллеров и методов моделей opencart
      Pagespeed оптимизация
      Возможности
       
      - оптимизация под Google pagespeed (минификация, перенос скриптов css и js)
        - кеширует полностью страницы при полной интеграции с opencart (позволяет кешировать и для зарегистрированных пользователей и изменений корзины а также в зависимости от изменений в модулях)  
      - кеширует выбранные контроллеры (т е фактически  любые модули, будь то меню или т.п. а также полностью кеширует позиции (уникальная технология которая не реализовано ни в одном модуле кеширования для opencart) (с))  
      - подгрузка ajax любых контроллеров   - кеширует методы моделей opencart (подсчет количества товаров и т п )   - кеширование запросов   - конвертер изображений в формат WEBP  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart (технология полной интеграции с opencart, в отличии от всех кешировщиков которые сделаны по технологии v2pagecache, которые не интегрированы в opencart)  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart (любой версии) или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше
      Для конвертирования и сжатия изображений в формат webp необходима стандартная функция php proc_open или exec Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 1.5.x,  2.x, 3.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки opencart code style) для оpencart 1.5.x, 2.x, 3.x  
      Установка, настройка
       
      1. Скачать с сайта где вы купили модуль, последнюю версию модуля.
      2. Установите модуль через штатный установщик дополнений opencart "Установка дополнений" или скопируйте (через FTP) файлы из архива (содержимое папки upload) в корневую папку сайта (там где index.php). (если вы копируете первый раз, система не должна запрашивать файлы на перезапись, так как модуль не перезаписывает никаких системных файлов opencart и ocStore). При обновлении перепишите файлы поверх. Если у вас пользовательская тема (не default)- ни в коем случае не переписывать файлы шаблонов модуля (из архива) к себе в тему.
      3. Если ваша версия opencart ниже чем 2.1 удалите по FTP папку (НЕ файл module.php, а именно папку) module в /admin/controller/extension/ (т. е. удалите папку /admin/controller/extension/module), так как вы не сможете зайти в меню Модули (Дополнения).
      4. Установите права доступа в /admin/index.php?route=user/user_permission&token=... (не забываем про вашу токен сессию &token=ваша сессия) для Главного администратора нажав на ссылку "изменить"
      5. Выделите "Разрешен просмотр" и "Разрешено внесение изменений" файлов модуля (если вы не знаете какие - нажмите ссылку "выделить всё") и нажмите кнопку "Сохранить"
      6. Зайдите в административную часть сайта /admin/index.php?route=extension/module и установите модуль, нажав на ссылку "установить"
      7. Зайти в главную модуля админ. части admin/index.php?route=jetcache/jetcache
      8. На главной модуля Jet Cache нажмите на таб "Установка и обновление"
      9. Нажмите на оранжевую кнопку "Установка и обновление модификаторов, данных модуля, выполняется при установке и обновлении модуля)".
      Установятся модификаторы модуля.
      10. Процедура установки закончена.  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее...   Условия технической поддержки  
      Добавил markimax Добавлено 15.03.2017 Категория Кэширование, сжатие, ускорение Системные требования PHP 5.4+ (для конвертирования и сжатия изображений в формат webp необходима стандартная функция php proc_open или exec) Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 590  
    • By markimax
      Логин / пароль:
      demo / demo
       
      Документация  
      Более 10`000 интернет магазинов выбрали для работы
      JET CACHE - быстрая система кеширования страниц, контроллеров и методов моделей opencart
      Pagespeed оптимизация
      Возможности
       
      - оптимизация под Google pagespeed (минификация, перенос скриптов css и js)
        - кеширует полностью страницы при полной интеграции с opencart (позволяет кешировать и для зарегистрированных пользователей и изменений корзины а также в зависимости от изменений в модулях)  
      - кеширует выбранные контроллеры (т е фактически  любые модули, будь то меню или т.п. а также полностью кеширует позиции (уникальная технология которая не реализовано ни в одном модуле кеширования для opencart) (с))  
      - подгрузка ajax любых контроллеров   - кеширует методы моделей opencart (подсчет количества товаров и т п )   - кеширование запросов   - конвертер изображений в формат WEBP  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart (технология полной интеграции с opencart, в отличии от всех кешировщиков которые сделаны по технологии v2pagecache, которые не интегрированы в opencart)  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart (любой версии) или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше
      Для конвертирования и сжатия изображений в формат webp необходима стандартная функция php proc_open или exec Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 1.5.x,  2.x, 3.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки opencart code style) для оpencart 1.5.x, 2.x, 3.x  
      Установка, настройка
       
      1. Скачать с сайта где вы купили модуль, последнюю версию модуля.
      2. Установите модуль через штатный установщик дополнений opencart "Установка дополнений" или скопируйте (через FTP) файлы из архива (содержимое папки upload) в корневую папку сайта (там где index.php). (если вы копируете первый раз, система не должна запрашивать файлы на перезапись, так как модуль не перезаписывает никаких системных файлов opencart и ocStore). При обновлении перепишите файлы поверх. Если у вас пользовательская тема (не default)- ни в коем случае не переписывать файлы шаблонов модуля (из архива) к себе в тему.
      3. Если ваша версия opencart ниже чем 2.1 удалите по FTP папку (НЕ файл module.php, а именно папку) module в /admin/controller/extension/ (т. е. удалите папку /admin/controller/extension/module), так как вы не сможете зайти в меню Модули (Дополнения).
      4. Установите права доступа в /admin/index.php?route=user/user_permission&token=... (не забываем про вашу токен сессию &token=ваша сессия) для Главного администратора нажав на ссылку "изменить"
      5. Выделите "Разрешен просмотр" и "Разрешено внесение изменений" файлов модуля (если вы не знаете какие - нажмите ссылку "выделить всё") и нажмите кнопку "Сохранить"
      6. Зайдите в административную часть сайта /admin/index.php?route=extension/module и установите модуль, нажав на ссылку "установить"
      7. Зайти в главную модуля админ. части admin/index.php?route=jetcache/jetcache
      8. На главной модуля Jet Cache нажмите на таб "Установка и обновление"
      9. Нажмите на оранжевую кнопку "Установка и обновление модификаторов, данных модуля, выполняется при установке и обновлении модуля)".
      Установятся модификаторы модуля.
      10. Процедура установки закончена.  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее...   Условия технической поддержки  
    • By q3dm0
      800.00 руб
      Скачать/Купить дополнение


      Imagemanager (Редактор и пакетная загрузка изображений для магазина)+галерея ScangalleryPack
      Менеджер изображений, он же и обработчик, с богатым функционалом, все, что нужно для обработки изображений на лету в нем есть, некоторый аналог швейцарского армейского ножа - этот модуль является идеальной заменой старого менеджера изображений, и Вы перестанете терять огромное количество времени на редактирование изображений.
       
      Он поддерживает добавление нескольких изображений одновременно, просмотр истории (сохраняет последнюю открытую папку), перетаскивание загружаемых изображений, изменение размера/поворота, поиск изображений/папок  и многое другое!
      Ну и в комплект идет полноценная адаптивная галерея для организации своего блога, страницы новостей или фотогалереи с описанием товара или целой группы товаров с возможностью объединения галереи и товаров по тегам на сайте для более результативного поиска последних. Полноценный модуль imagemanager с возможностью заливать на лету тысячи фотографий  для своих товаров, баннеров, обрабатывать их, перетягивать в нужном порядке методом drugNdrop и не только, теперь Вы сможете это, с новым пакетом ScangalleryPack.
      модуль Imagemanager на базе jquery файл-менеджера elFinder для версий opencart 1.5.X  -2.X – 3.X; галерея на базе jquery галереи blueimp-gallery конечно же с  мультизагрузкой изображений, а также с более простой поисковой оптимизацией Вашего сайта, теперь для каждой картинки можно присвоить свой alt и title прям из под админ панели, ну и само собой, в данный пакет интегрирован модуль сортировки изображений методом перетягивания (Sortable module). Теперь ужасная и нудная работа по добавлению изображений к товарам и баннерам на сайте сводиться к минимуму, в данной версии Вы можете:
      пакетная загрузка картинок на сервер;   удаление файлов в корзину; drugNDrop пакетная загрузка изображение на сервер; обработка изображений (обрезка, поворот и другие приятности прям в окне Вашего броузера); создание, переименование, удаление, перемещение, копирование (вставка), архивирование, как изображений, так и папок, в том числе пакетная; различные варианты просмотра изображений и папок и т.д. многоязычность (два языка (En, Ru) + языки elFinder); легкость обновления версий (для опытных пользователей!); автоматическая нумерация изображений; отсутствие перезаписи системных файлов opencart; объектный метод определения загрузки файлов, теперь Вы избавитесь от лишних надоедливых кнопок внизу; изменять любое изображение в админ панели обычным выбором, есть как встроенный менеджер, так и Imagemanager на выбор.  добавление водяного знака к изображению, работает "НЕ С КЕШЕМ" изображения, водяной знак накладывается сразу при загрузке изображения на сервер,  неплохой вариант для тех кто только что открыл свой интернет магазин и не хочет чтобы его изображения были добавлены на сторонние сайты;  автоматическая регулировка размеров изображения (высота, ширина) при загрузке изображения на сервер, работает при загрузке изображений выше тех размеров которые необходимо получить: 1024*768px -> 800*600px, основан на методе плагина elFinder AutoResize; добавлен ftp клиент для менеджера, теперь можно выгружать на свой сайт картинки из других источников, подключившись по ftp (пока убран, будет полный набор - ftp, onedrive и так далее в 1.12); загрузка изображение текстового редактора summernote (одиночное/пакетное); пакетное добавление изображений в раздел баннеры (Загрузка на сервер и добавление в карточку баннера); автоматическая транслитерация именах изображений, если у Вас на сервере имеются файлы с русскими символами посвящается данный функционал, пора заменить все имена файлов на латиницу; автоматическая замена символов в именах изображений, при загрузке можно контролировать замену символов (которые могут доставить не мало проблем при хранении, переносе сайта на другой хостинг), например на нижний пробел; поддержка тем для elfinder (помимо стандартного еще 4 шт.)      
      Посмотреть работу модуля можно на следующем видео: ссылка
       
      Если возникли проблемы которые требуют моего вмешательства, заранее подготовьте доступы к админке и фтп, установка и решение проблем связанные с ней бесплатны.
       
       
      Добавил q3dm0 Добавлено 08.03.2017 Категория Обмен данными Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 0  
    • By q3dm0
      Менеджер изображений, он же и обработчик, с богатым функционалом, все, что нужно для обработки изображений на лету в нем есть, некоторый аналог швейцарского армейского ножа - этот модуль является идеальной заменой старого менеджера изображений, и Вы перестанете терять огромное количество времени на редактирование изображений.
       
      Он поддерживает добавление нескольких изображений одновременно, просмотр истории (сохраняет последнюю открытую папку), перетаскивание загружаемых изображений, изменение размера/поворота, поиск изображений/папок  и многое другое!
      Ну и в комплект идет полноценная адаптивная галерея для организации своего блога, страницы новостей или фотогалереи с описанием товара или целой группы товаров с возможностью объединения галереи и товаров по тегам на сайте для более результативного поиска последних. Полноценный модуль imagemanager с возможностью заливать на лету тысячи фотографий  для своих товаров, баннеров, обрабатывать их, перетягивать в нужном порядке методом drugNdrop и не только, теперь Вы сможете это, с новым пакетом ScangalleryPack.
      модуль Imagemanager на базе jquery файл-менеджера elFinder для версий opencart 1.5.X  -2.X – 3.X; галерея на базе jquery галереи blueimp-gallery конечно же с  мультизагрузкой изображений, а также с более простой поисковой оптимизацией Вашего сайта, теперь для каждой картинки можно присвоить свой alt и title прям из под админ панели, ну и само собой, в данный пакет интегрирован модуль сортировки изображений методом перетягивания (Sortable module). Теперь ужасная и нудная работа по добавлению изображений к товарам и баннерам на сайте сводиться к минимуму, в данной версии Вы можете:
      пакетная загрузка картинок на сервер;   удаление файлов в корзину; drugNDrop пакетная загрузка изображение на сервер; обработка изображений (обрезка, поворот и другие приятности прям в окне Вашего броузера); создание, переименование, удаление, перемещение, копирование (вставка), архивирование, как изображений, так и папок, в том числе пакетная; различные варианты просмотра изображений и папок и т.д. многоязычность (два языка (En, Ru) + языки elFinder); легкость обновления версий (для опытных пользователей!); автоматическая нумерация изображений; отсутствие перезаписи системных файлов opencart; объектный метод определения загрузки файлов, теперь Вы избавитесь от лишних надоедливых кнопок внизу; изменять любое изображение в админ панели обычным выбором, есть как встроенный менеджер, так и Imagemanager на выбор.  добавление водяного знака к изображению, работает "НЕ С КЕШЕМ" изображения, водяной знак накладывается сразу при загрузке изображения на сервер,  неплохой вариант для тех кто только что открыл свой интернет магазин и не хочет чтобы его изображения были добавлены на сторонние сайты;  автоматическая регулировка размеров изображения (высота, ширина) при загрузке изображения на сервер, работает при загрузке изображений выше тех размеров которые необходимо получить: 1024*768px -> 800*600px, основан на методе плагина elFinder AutoResize; добавлен ftp клиент для менеджера, теперь можно выгружать на свой сайт картинки из других источников, подключившись по ftp (пока убран, будет полный набор - ftp, onedrive и так далее в 1.12); загрузка изображение текстового редактора summernote (одиночное/пакетное); пакетное добавление изображений в раздел баннеры (Загрузка на сервер и добавление в карточку баннера); автоматическая транслитерация именах изображений, если у Вас на сервере имеются файлы с русскими символами посвящается данный функционал, пора заменить все имена файлов на латиницу; автоматическая замена символов в именах изображений, при загрузке можно контролировать замену символов (которые могут доставить не мало проблем при хранении, переносе сайта на другой хостинг), например на нижний пробел; поддержка тем для elfinder (помимо стандартного еще 4 шт.)      
      Посмотреть работу модуля можно на следующем видео: ссылка
       
      Если возникли проблемы которые требуют моего вмешательства, заранее подготовьте доступы к админке и фтп, установка и решение проблем связанные с ней бесплатны.
       
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.