Рекомендуемые сообщения

halfhope    164

Недавно обратился клиент (OcStore 1.5.5.1.2.) с просьбой посмотреть и узнать где именно тормоза на сайте. Так как, на сайте под завязку используются опции и аттрибуты, я стал грешить на них еще до проверки, проверка xhprof дала понять, что я не ошибался. Одним кэшированием тут не отделаться, так как данные магазина постоянно обновляются и механизм инвалидации кэша далек от идеала.

 

Было принято решение оптимизировать функции получения списка аттрибутов и опций. Что именно сделано: Убраны дополнительные подзапросы из цикла обработки аттрибутов и опций, так как все необходимые данные можно получить в одном запросе. Так же используются PHP указатели, что позволит обработать все данные в одном цикле. Все это позволит получить все необходимые данные за один запрос и быстро из обработать. 

 

В данном частном случае производительность увеличилась почти в 30 раз (очень много опций, значений опций и аттрибутов почти у каждого товара). 


public function getProductAttributes($product_id) {
	$product_attribute_group_data = array();

	$product_attribute_group_query = $this->db->query("SELECT a.attribute_id, ad.name as attribute_name, pa.text, ag.attribute_group_id, agd.name as attribute_group_name FROM " . DB_PREFIX . "product_attribute pa
	LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id)
	LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id)
	LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id)
	LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id)
	WHERE pa.product_id = " . (int)$product_id . "
		AND ad.language_id = agd.language_id
		AND pa.language_id = agd.language_id
		AND agd.language_id = " . (int)$this->config->get('config_language_id') . "
	ORDER BY ag.sort_order, agd.name, a.sort_order, ad.name");

	$product_attribute_data = array();

	foreach ($product_attribute_group_query->rows as $product_attribute) {
		$product_attribute_data[$product_attribute['attribute_id']][] = array(
			'attribute_id' => $product_attribute['attribute_id'],
			'name'         => $product_attribute['attribute_name'],
			'text'         => $product_attribute['text']
		);

		$product_attribute_group_data[$product_attribute['attribute_group_id']] = array(
			'attribute_group_id' => $product_attribute['attribute_group_id'],
			'name'               => $product_attribute['attribute_group_name'],
		);

		$product_attribute_group_data[$product_attribute['attribute_group_id']]['attribute'] =& $product_attribute_data[$product_attribute['attribute_id']];

	}

	return $product_attribute_group_data;
}

public function getProductOptions($product_id) {
	$product_option_data = array();
    $product_option_query = $this->db->query("SELECT pov.product_option_value_id, pov.option_value_id, ovd.name as product_option_value_name, od.name as option_name, ov.image, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix, pov.product_option_id, pov.option_id, o.type, po.required
        FROM " . DB_PREFIX . "product_option_value pov
        LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id)
        LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id)
        LEFT JOIN " . DB_PREFIX . "product_option po ON (pov.product_option_id = po.product_option_id)
        LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id)
        LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id)
        WHERE po.product_id = " . (int)$product_id . "
            AND od.language_id = " . (int)$this->config->get('config_language_id') . "
        ORDER BY o.sort_order, ov.sort_order");

    $product_option_value_data = array();

    foreach ($product_option_query->rows as $product_option) {

    	if (in_array($product_option['type'], array('select','radio','checkbox','image'))) {

            $product_option_value_data[$product_option['product_option_id']][] = array(
                'product_option_value_id' => $product_option['product_option_value_id'],
                'option_value_id'         => $product_option['option_value_id'],
                'name'                    => $product_option['product_option_value_name'],
                'image'                   => $product_option['image'],
                'quantity'                => $product_option['quantity'],
                'subtract'                => $product_option['subtract'],
                'price'                   => $product_option['price'],
                'price_prefix'            => $product_option['price_prefix'],
                'points'                  => $product_option['points'],
                'points_prefix'           => $product_option['points_prefix'],
                'weight'                  => $product_option['weight'],
                'weight_prefix'           => $product_option['weight_prefix']
            );

            $product_option_data[$product_option['option_id']] = array(
				'product_option_id'    => $product_option['product_option_id'],
				'option_id'            => $product_option['option_id'],
				'name'                 => $product_option['option_name'],
				'type'                 => $product_option['type'],
				'required'             => $product_option['required']
			);

			$product_option_data[$product_option['option_id']]['option_value'] =& $product_option_value_data[$product_option['product_option_id']];

    	}else{
    		$product_option_data[$product_option['option_id']] = array(
				'product_option_id' => $product_option['product_option_id'],
				'option_id'         => $product_option['option_id'],
				'name'              => $product_option['option_name'],
				'type'              => $product_option['type'],
				'option_value'      => $product_option['option_value'],
				'required'          => $product_option['required']
			);
    	}
    }

	return $product_option_data;
}

 

По аналогии поступил с админкой (только опции) и с модулем CSV Product Export. Будьте внимательны при использовании этого кода, он изменен, а значит и vqmod модификации, которые работают с этим участком кода могут работать не так как ожидается. 

Изменено пользователем halfhope

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tabook    131

Спасибо. Как раз в тему, попробую сейчас на реальном магазине с 20К товарами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    164

UPD: Накосячил слегка с аттрибутами:


public function getProductAttributes($product_id) {
	$product_attribute_group_data = array();

	$product_attribute_group_query = $this->db->query("SELECT a.attribute_id, ad.name as attribute_name, pa.text, ag.attribute_group_id, agd.name as attribute_group_name FROM " . DB_PREFIX . "product_attribute pa
	LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id)
	LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id)
	LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id)
	LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id)
	WHERE pa.product_id = " . (int)$product_id . "
		AND ad.language_id = agd.language_id
		AND pa.language_id = agd.language_id
		AND agd.language_id = " . (int)$this->config->get('config_language_id') . "
	ORDER BY ag.sort_order, agd.name, a.sort_order, ad.name");

	$product_attribute_data = array();

	foreach ($product_attribute_group_query->rows as $product_attribute) {
		$product_attribute_data[$product_attribute['attribute_group_id']][$product_attribute['attribute_id']] = array(
			'attribute_id' => $product_attribute['attribute_id'],
			'name'         => $product_attribute['attribute_name'],
			'text'         => $product_attribute['text']
		);

		$product_attribute_group_data[$product_attribute['attribute_group_id']] = array(
			'attribute_group_id' => $product_attribute['attribute_group_id'],
			'name'               => $product_attribute['attribute_group_name'],
		);

		$product_attribute_group_data[$product_attribute['attribute_group_id']]['attribute'] =& $product_attribute_data[$product_attribute['attribute_group_id']];

	}

	return $product_attribute_group_data;
}
Изменено пользователем halfhope

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AWARO    649

и моё благодарю)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня лог медленных запросов все также жалуется на этот запрос.

Товаров 1500 штук.

Таблица с атрибутами 28000 шт.

М.б. где индексы расставить дополнительные?

 

id     select_type     table     partitions     type     possible_keys     key     key_len     ref     rows     filtered     Extra     
1     SIMPLE     agd     NULL    ALL     PRIMARY     NULL    NULL    NULL    20     10.00     Using where; Using temporary; Using filesort
1     SIMPLE     ag     NULL    eq_ref     PRIMARY     PRIMARY     4     shop.agd.attribute_group_id     1     100.00     NULL
1     SIMPLE     a     NULL    ref     PRIMARY,attribute_group_id     attribute_group_id     4     shop.agd.attribute_group_id     3     100.00     Using where
1     SIMPLE     ad     NULL    eq_ref     PRIMARY,index2attr_lang     PRIMARY     8     shop.a.attribute_id,const     1     100.00     NULL
1     SIMPLE     pa     NULL    eq_ref     PRIMARY,attribute_id,language_id     PRIMARY     12     const,shop.a.attribute_id,const     1     100.00     NULL

 

 

Структура таблицы:

Table Create Table
attribute CREATE TABLE `attribute` (
 `attribute_id` int(11) NOT NULL AUTO_INCREMENT,
 `attribute_group_id` int(11) NOT NULL,
 `sort_order` int(3) NOT NULL,
 PRIMARY KEY (`attribute_id`),
 KEY `attribute_group_id` (`attribute_group_id`),
 KEY `sort_order` (`sort_order`)
) ENGINE=MyISAM AUTO_INCREMENT=39 DEFAULT CHARSET=utf8
attribute_description CREATE TABLE `attribute_description` (
 `attribute_id` int(11) NOT NULL,
 `language_id` int(11) NOT NULL,
 `name` varchar(64) NOT NULL,
 PRIMARY KEY (`attribute_id`,`language_id`),
 KEY `name` (`name`),
 KEY `index2attr_lang` (`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
attribute_group CREATE TABLE `attribute_group` (
 `attribute_group_id` int(11) NOT NULL AUTO_INCREMENT,
 `sort_order` int(3) NOT NULL,
 PRIMARY KEY (`attribute_group_id`),
 KEY `sort_order` (`sort_order`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
attribute_group_description CREATE TABLE `attribute_group_description` (
 `attribute_group_id` int(11) NOT NULL,
 `language_id` int(11) NOT NULL,
 `name` varchar(64) NOT NULL,
 PRIMARY KEY (`attribute_group_id`,`language_id`),
 KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
product_attribute CREATE TABLE `product_attribute` (
 `product_id` int(11) NOT NULL,
 `attribute_id` int(11) NOT NULL,
 `language_id` int(11) NOT NULL,
 `text` text NOT NULL,
 PRIMARY KEY (`product_id`,`attribute_id`,`language_id`),
 KEY `attribute_id` (`attribute_id`),
 KEY `language_id` (`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От sitecreator

      890.00 руб
      Скачать/Купить дополнение


      SEO CMS mod for Image Compressor & Watermark
      Добавляет суперсжатие JPEG, PNG и watermark для модуля
      SEO CMS TOP 2: Блог | Новости | Отзывы | Галерея | Формы
      (разработчик markimax )
       
      Данный модуль не является самостоятельным дополнением и требует наличия установленного модуля
      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      (разработчик sitecreator )
       
      Т. е. данный модуль расширяет возможности указанных выше модулей.
       
      Поскольку SEO CMS не использует (или использует ограниченно) модели image и системную библиотеку движка, то БЫЛО невозможно наложение watermark и применение суперсжатия к изображениям, создаваемым  SEO CMS.
      Теперь таких ограничений нет благодаря данному дополнению.
       
      Адаптивный ресайз, выставляемый в настройках SEO CMS работает,  данные настройки имеют более высокий приоритет чем настройка адаптивной обрезки (ресайза) в модуле "Компрессор изображений".
       
      Установка выполняется через обычный установщик дополнений ocmod в админке сайта.
       
      1.1.0
      Добавлены возможности для изображений, которые вставляются в редакторе записей (статей) прямой ссылкой, т. е. для источников:
       
      наложение watermark суперсжатие возможно скрытие оригинала (в браузере он и так не отображается) от скачивания продвинутыми парсерами (хоть роботами, хоть людьми). все изменения с исходниками обратимы (смена водяного знака, изменение уровня качества),  сам исходник никак не страдает.  
      Вы просто работаете в редакторе как обычно - вставляете в ваши статьи картинки-оригиналы  и ни о чем не заботитесь.
      Суперсжатие и водяной знак будут применены автоматически к таким изображениям.
       
      Т. е. на данный момент только загруженные со сторонних сайтов изображения будут без водяного знака и без суперсжатия.
      Думаю, что понятно почему - они же не на вашем сервере.
       
      Добавил sitecreator Добавлено 18.10.2017 Категория Кэширование, сжатие, ускорение Системные требования 1) SEO CMS, 2) Image Compressor & Watermark Сайт разработчика https://sitecreator.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От sitecreator
      Добавляет суперсжатие JPEG, PNG и watermark для модуля
      SEO CMS TOP 2: Блог | Новости | Отзывы | Галерея | Формы
      (разработчик markimax )
       
      Данный модуль не является самостоятельным дополнением и требует наличия установленного модуля
      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      (разработчик sitecreator )
       
      Т. е. данный модуль расширяет возможности указанных выше модулей.
       
      Поскольку SEO CMS не использует (или использует ограниченно) модели image и системную библиотеку движка, то БЫЛО невозможно наложение watermark и применение суперсжатия к изображениям, создаваемым  SEO CMS.
      Теперь таких ограничений нет благодаря данному дополнению.
       
      Адаптивный ресайз, выставляемый в настройках SEO CMS работает,  данные настройки имеют более высокий приоритет чем настройка адаптивной обрезки (ресайза) в модуле "Компрессор изображений".
       
      Установка выполняется через обычный установщик дополнений ocmod в админке сайта.
       
      1.1.0
      Добавлены возможности для изображений, которые вставляются в редакторе записей (статей) прямой ссылкой, т. е. для источников:
       
      наложение watermark суперсжатие возможно скрытие оригинала (в браузере он и так не отображается) от скачивания продвинутыми парсерами (хоть роботами, хоть людьми). все изменения с исходниками обратимы (смена водяного знака, изменение уровня качества),  сам исходник никак не страдает.  
      Вы просто работаете в редакторе как обычно - вставляете в ваши статьи картинки-оригиналы  и ни о чем не заботитесь.
      Суперсжатие и водяной знак будут применены автоматически к таким изображениям.
       
      Т. е. на данный момент только загруженные со сторонних сайтов изображения будут без водяного знака и без суперсжатия.
      Думаю, что понятно почему - они же не на вашем сервере.
       
    • От sitecreator

      1 290.00 руб
      Скачать/Купить дополнение


      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      Оптимизация (сжатие) изображений - Гугл PageSpeed одобряет.
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие  на обычном хостинге (при наличии функции exec php)  и всегда на VDS.
      Установка софта (mozjpeg и  optiPNG) в два клика на обычный хостинг и VDS (не требует знаний Linux).
      Вся магия здесь:
       

       
      Демо 2 (клиентская часть): http://watermark.sitecreator.pro
      Демо 2 (админка): http://watermark.sitecreator.pro/admin/index.php?route=extension/module/watermark_by_sitecreator
       
      Демо 1.5 (клиентская часть): http://watermark15.sitecreator.pro
      Демо 1.5 (админка): http://watermark15.sitecreator.pro/admin/index.php?route=module/watermark_by_sitecreator
       
      пользователь: DEMO
      пароль: DEMO
       
      совместим со всеми сборками версий движков 1.5 и 2+
       

       
      Модуль по максимуму использует возможности imagick (если установлен), что уже позволяет получить лучшие по качеству и размеру изображения.  Кроме того, в отличие от дефолтного GD использование imagick позволяет уменьшить размер файла за счет очистки изображения от ненужной информации.
       
       
      Максимум настроек водяного знака (watermark): его позиция, поворот, прозрачность и т. д.
      Можно настроить ограничение (запретить применять) для водяного знака как по имени файла/папок, так и по  размерам.
      Адаптивный ресайз (resize, обрезка) изображения.
       

       
      Основной функционал модуля - это добавление водяного знака на изображения.  Как бонус - это использование автоматического  супер-сжатия картинок.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
      Это не означает, что другие не поддерживают, просто тут устанавливали уже  модуль и мне о названии хостера  сообщил заказчик.
       
       
      Совместим с Opencart, Ocstore, opencart.pro и сборок версии 1.5.* и 2+ (2.0, 2.1, 2.2, 2.3)
      требования: php 5.5+ (5.5, 5.6, 7.0)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
      Модуль не заменяет файлы движка, используется ocmod.
      Модуль работоспособен и без ioncube, т. е. сайт будет работать, но не будут работать все дополнительные возможности.
       
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

       
       
      Модуль не может пока автоматически сжимать все изображения, которые вы добавляете как ссылки, т. е. которые не попадают в кеш.  Это будет учтено в будущих версиях. Для SEO CMS это уже сделано.
       
      Модуль не трогает элементы оформления вашего шаблона. Пожалуйста, не нужно мне говорить, что они не сжаты.. Эти элементы даже не находятся в папке image.   Вы можете самостоятельно один раз скачать и установить оптимизированные элементы оформления вашего шаблона.
       

       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Сжаты будут даже отображаемые оригиналы, вставленные по прямым ссылкам в статьях.  И на оригиналы можно накладывать водяной знак и защищать их от кражи.
      Любые изменения с оригиналами обратимы. Например, можно менять водяной знак.
       
      Решение здесь: SEO CMS mod for Image Compressor & Watermark
       
       
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       
       
      ================
      История версий
      ==============
       
       
       
       
       
      Добавил sitecreator Добавлено 26.08.2017 Категория Кэширование, сжатие, ускорение Системные требования php 5.5+, Ioncube Loader 5+ Сайт разработчика https://sitecreator.ru/ Старая цена 1650 Метод активации По запросу в ЛС
      По запросу на почту Ioncube Loader Требуется OpenCart 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 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.х  
    • От sitecreator
      Оптимизация (сжатие) изображений - Гугл PageSpeed одобряет.
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие  на обычном хостинге (при наличии функции exec php)  и всегда на VDS.
      Установка софта (mozjpeg и  optiPNG) в два клика на обычный хостинг и VDS (не требует знаний Linux).
      Вся магия здесь:
       

       
      Демо 2 (клиентская часть): http://watermark.sitecreator.pro
      Демо 2 (админка): http://watermark.sitecreator.pro/admin/index.php?route=extension/module/watermark_by_sitecreator
       
      Демо 1.5 (клиентская часть): http://watermark15.sitecreator.pro
      Демо 1.5 (админка): http://watermark15.sitecreator.pro/admin/index.php?route=module/watermark_by_sitecreator
       
      пользователь: DEMO
      пароль: DEMO
       
      совместим со всеми сборками версий движков 1.5 и 2+
       

       
      Модуль по максимуму использует возможности imagick (если установлен), что уже позволяет получить лучшие по качеству и размеру изображения.  Кроме того, в отличие от дефолтного GD использование imagick позволяет уменьшить размер файла за счет очистки изображения от ненужной информации.
       
       
      Максимум настроек водяного знака (watermark): его позиция, поворот, прозрачность и т. д.
      Можно настроить ограничение (запретить применять) для водяного знака как по имени файла/папок, так и по  размерам.
      Адаптивный ресайз (resize, обрезка) изображения.
       

       
      Основной функционал модуля - это добавление водяного знака на изображения.  Как бонус - это использование автоматического  супер-сжатия картинок.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
      Это не означает, что другие не поддерживают, просто тут устанавливали уже  модуль и мне о названии хостера  сообщил заказчик.
       
       
      Совместим с Opencart, Ocstore, opencart.pro и сборок версии 1.5.* и 2+ (2.0, 2.1, 2.2, 2.3)
      требования: php 5.5+ (5.5, 5.6, 7.0)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
      Модуль не заменяет файлы движка, используется ocmod.
      Модуль работоспособен и без ioncube, т. е. сайт будет работать, но не будут работать все дополнительные возможности.
       
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

       
       
      Модуль не может пока автоматически сжимать все изображения, которые вы добавляете как ссылки, т. е. которые не попадают в кеш.  Это будет учтено в будущих версиях. Для SEO CMS это уже сделано.
       
      Модуль не трогает элементы оформления вашего шаблона. Пожалуйста, не нужно мне говорить, что они не сжаты.. Эти элементы даже не находятся в папке image.   Вы можете самостоятельно один раз скачать и установить оптимизированные элементы оформления вашего шаблона.
       

       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Сжаты будут даже отображаемые оригиналы, вставленные по прямым ссылкам в статьях.  И на оригиналы можно накладывать водяной знак и защищать их от кражи.
      Любые изменения с оригиналами обратимы. Например, можно менять водяной знак.
       
      Решение здесь: SEO CMS mod for Image Compressor & Watermark
       
       
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       
       
      ================
      История версий
      ==============
       
       
       
       
       
    • От dima2000
      Суть вопросов такова:
      1) Есть самописный модуль расчета взносов по рассрочке. Автор давно пропал и не выходит на связь. Необходимо устранить ошибки работы и удалить некоторый ненужный и выпиленный мной (скрытый стилями достаточно коряво) функционал
      2) Установлен недавно фильтр товаров DreamFilter , нужно подружить эти 2 модуля (фильтр + калькулятор) , выводить калькулятор на всех страницах категории, поиска, акции и тд. + в мобильной версии тоже самое
      3) Доработка блока с контактной инфой в моб версии (кривой перенос)
      4) Нужна оптимизация большинства запросов и добавление кэширования в некоторые контроллеры (это мне написал другой специалист, который тоже к сожалению пропал)
       
      ну и может порекомендуете еще что нужно сделать, хочется максимально оптимизировать магазин, чтобы быстро работали и по-возможности без ошибок.
      версия опенкарта - ocStore © 2009-2017 Все права защищены.
      Версия 1.5.5.1.2
       
      Оцените объем работы и стоимость. Первые два пункта нужны обязательно, остальное если по цене сойдемся. Спасибо, очень жду вашего ответа.
       
      Ссылка на магазин вышлю в личку
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу