Перейти к содержанию

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

Недавно обратился клиент (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
  • +1 9

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


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

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

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


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

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
  • +1 2

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


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

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

  • +1 1

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


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

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

Товаров 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

 

 

 

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


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

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

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

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

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

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

Войти

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

Войти

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

    • От Denis8585
      Приветствую.
      Ищется грамотный специалист для продвижения сайта. Сайт торгует строительными материалами для загородного домостроения (кровли, фасады).
      Задачи: консультация, СЕО-оптимизация, продвижение, дальнейшая поддержка.
      Если в целом задача не совсем ясно описываю, не судите строго - спрашивайте)
      Особенно заинтересован в специалисте с опытом продвижения по данной тематике (хуже не будет), отдельный плюс - проживание специалиста в СПб.
      Сотрудничество долговременное.
       
       
    • От sitecreator
      1 990.00 руб
      Скачать/Купить дополнение


      Сжатие изображений Opencart (Компрессор) плюс водяной знак и бонусы
      Оптимизация (сжатие) изображений - Гугл PageSpeed одобряет.
      Теперь настоящий комбайн для работы с изображениями.  Управление белыми полями изображений, фоном, размером, обрезкой картинок и т.д.
      Индивидуальные настройки для групп изображений ("всплывающие", "thumb-миниатюры").
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие изображений Opencart на обычном хостинге (при наличии либо функции proc_open php, либо webp в одной из библиотек: GD или imagick)  и всегда на 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
       
      совместим со всеми сборками версий движков Opencart (ocstore, opencart.pro, русская сборка и т. д.) 1.5 и 2+ (2.0, 2.1, 2.2, 2.3)
      Файлы движка не заменяются (используется vqmod или ocmod для соответствующих веток движка)
       

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

       
      Как включить нужную для максимального сжатия функцию?
       
       
       
       
      Основной функционал модуля - это добавление водяного знака на изображения и другие настройки изображения (ресайз, белые поля и фон, и т. д. ).  Как бонус - это использование автоматического  супер-сжатия изображений. Но для многих сжатие изображений в Opencart - это самый важный функционал.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
      Это не означает, что другие не поддерживают, просто тут устанавливали уже  модуль и мне о названии хостера  сообщил заказчик.
      В зоне RU  99.9% хостеров обеспечат максимальное сжатие, в зоне UA показатель поменьше - на уровне 90...95%
       
       
      Совместим с Opencart, Ocstore, opencart.pro и сборок версии 1.5.* и 2+ (2.0, 2.1, 2.2, 2.3)
      требования: php 5.5+ (рекомендуемый минимум - это 5.6; 7.0, 7.1)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+ (рекомендуется 10+)
      Касательно версии php.  Рекомендованный минимум (5.6) есть у любого хостера и на этой версии работает любой движок Opencart.
      Ioncube loader 10+ есть сейчас, как минимум, у 95% хостеров (у всех нормальных), и все меньше остается нерадивых хостеров, которые не могут обновить старую версию Ioncube loader 6 (полуторагодовалой давности).
      Просьба учесть, что при минимальных требованиях модуль работать будет, но не все функции могут быть доступны.  Не вижу смысла поддерживать совместимость с допотопным серверным софтом в ущерб развитию модуля.
       
       
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
      Модуль не заменяет файлы , используется ocmod для движка 2.*,  аналогично в движке 1.5.* используется vqmod с 1.5.1 версии модуля. 
      Просьба обратить внимание до установки модуля на то, не изменен ли код напрямую (или за счет модификаторов) в файлах:
       
      system/image.php, catalog/tool/image.php, admin/tool/image.php.
       
      Не гарантируется нормальная работа если у вас в движке были сделаны прямые (или за счет модификаторов) изменения кода указанных выше файлов.
      Желательно чтобы эти файлы были такими же как в дистрибутиве движка.  Но даже в случае их изменения редко когда возникают проблемы, и они решаемые (обращайтесь к автору).
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Пояснение к лицензированию.
      Лицензия предоставляется для одного домена.
       
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля "Сжатие изображений плюс водяной знак" осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

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

       
       
       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Сжаты будут даже отображаемые оригиналы, вставленные по прямым ссылкам в статьях.  И на оригиналы можно накладывать водяной знак и защищать их от кражи.
      Любые изменения с оригиналами обратимы. Например, можно менять водяной знак.
       
      Решение здесь: SEO CMS mod for Image Compressor & Watermark
       
       
       
      Решение по работе с фоном исходных изображений здесь:
      Можно обрезать, добавлять фон, делать аккуратные рамки цветом фона.
      Данное решение реализовано как плагин к модулю "Компрессор", т. е. все настройки делаются в модуле "Компрессор".
       
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       

      Если у вас "не сжимает".  Некоторые серверы (нередко хостер ukraine.com.ua ) кешируют изображения на сервере. Ищите это в настройках панели управления хостера "ускорение".  Нужно просто отключить это кеширование. Подробнее описал в поддержке модуля:
       
       
      А что это гугл пишет "изменение размера .... уменьшит"?

       
       

      Админ БАР для управления изображениями (очистка кеша только для конкретной страницы)
      и СЖАТИЕ изображений по прямым ссылкам и из CSS.
       

       
      ЗАПРЕТ НА ПРОСМОТР в браузере и СКАЧИВАНИЕ ИСХОДНЫХ изображений
          
                  
       
       
       
      ================
      История версий
      ==============
       
       
       
       
       
       
      Добавил sitecreator Добавлено 26.08.2017 Категория Кэширование, сжатие, ускорение Системные требования php 5.5+, Ioncube Loader 5+ (рекомендуемый минимум: php 5.6+, ioncube loader 10+) ) Сайт разработчика https://sitecreator.ru/ Старая цена 2900 Метод активации По запросу в ЛС
      По запросу на почту 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 одобряет.
      Теперь настоящий комбайн для работы с изображениями.  Управление белыми полями изображений, фоном, размером, обрезкой картинок и т.д.
      Индивидуальные настройки для групп изображений ("всплывающие", "thumb-миниатюры").
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие изображений Opencart на обычном хостинге (при наличии либо функции proc_open php, либо webp в одной из библиотек: GD или imagick)  и всегда на 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
       
      совместим со всеми сборками версий движков Opencart (ocstore, opencart.pro, русская сборка и т. д.) 1.5 и 2+ (2.0, 2.1, 2.2, 2.3)
      Файлы движка не заменяются (используется vqmod или ocmod для соответствующих веток движка)
       

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

       
      Как включить нужную для максимального сжатия функцию?
       
       
       
       
      Основной функционал модуля - это добавление водяного знака на изображения и другие настройки изображения (ресайз, белые поля и фон, и т. д. ).  Как бонус - это использование автоматического  супер-сжатия изображений. Но для многих сжатие изображений в Opencart - это самый важный функционал.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
      Это не означает, что другие не поддерживают, просто тут устанавливали уже  модуль и мне о названии хостера  сообщил заказчик.
      В зоне RU  99.9% хостеров обеспечат максимальное сжатие, в зоне UA показатель поменьше - на уровне 90...95%
       
       
      Совместим с Opencart, Ocstore, opencart.pro и сборок версии 1.5.* и 2+ (2.0, 2.1, 2.2, 2.3)
      требования: php 5.5+ (рекомендуемый минимум - это 5.6; 7.0, 7.1)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+ (рекомендуется 10+)
      Касательно версии php.  Рекомендованный минимум (5.6) есть у любого хостера и на этой версии работает любой движок Opencart.
      Ioncube loader 10+ есть сейчас, как минимум, у 95% хостеров (у всех нормальных), и все меньше остается нерадивых хостеров, которые не могут обновить старую версию Ioncube loader 6 (полуторагодовалой давности).
      Просьба учесть, что при минимальных требованиях модуль работать будет, но не все функции могут быть доступны.  Не вижу смысла поддерживать совместимость с допотопным серверным софтом в ущерб развитию модуля.
       
       
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
      Модуль не заменяет файлы , используется ocmod для движка 2.*,  аналогично в движке 1.5.* используется vqmod с 1.5.1 версии модуля. 
      Просьба обратить внимание до установки модуля на то, не изменен ли код напрямую (или за счет модификаторов) в файлах:
       
      system/image.php, catalog/tool/image.php, admin/tool/image.php.
       
      Не гарантируется нормальная работа если у вас в движке были сделаны прямые (или за счет модификаторов) изменения кода указанных выше файлов.
      Желательно чтобы эти файлы были такими же как в дистрибутиве движка.  Но даже в случае их изменения редко когда возникают проблемы, и они решаемые (обращайтесь к автору).
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Пояснение к лицензированию.
      Лицензия предоставляется для одного домена.
       
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля "Сжатие изображений плюс водяной знак" осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

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

       
       
       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Сжаты будут даже отображаемые оригиналы, вставленные по прямым ссылкам в статьях.  И на оригиналы можно накладывать водяной знак и защищать их от кражи.
      Любые изменения с оригиналами обратимы. Например, можно менять водяной знак.
       
      Решение здесь: SEO CMS mod for Image Compressor & Watermark
       
       
       
      Решение по работе с фоном исходных изображений здесь:
      Можно обрезать, добавлять фон, делать аккуратные рамки цветом фона.
      Данное решение реализовано как плагин к модулю "Компрессор", т. е. все настройки делаются в модуле "Компрессор".
       
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       

      Если у вас "не сжимает".  Некоторые серверы (нередко хостер ukraine.com.ua ) кешируют изображения на сервере. Ищите это в настройках панели управления хостера "ускорение".  Нужно просто отключить это кеширование. Подробнее описал в поддержке модуля:
       
       
      А что это гугл пишет "изменение размера .... уменьшит"?

       
       

      Админ БАР для управления изображениями (очистка кеша только для конкретной страницы)
      и СЖАТИЕ изображений по прямым ссылкам и из CSS.
       

       
      ЗАПРЕТ НА ПРОСМОТР в браузере и СКАЧИВАНИЕ ИСХОДНЫХ изображений
          
                  
       
       
       
      ================
      История версий
      ==============
       
       
       
       
       
       
    • От MaxD
      Скачать/Купить дополнение


      OpenCart Lightning

       
      OpenCart Lightning - это мод для ускорения работы магазинов. Он использует целый ряд технологий и ноу-хау.
      Работает со всеми версиями OpenCart и ocStore.
       
      Вот ссылка на демо-магазин с 20000 товаров на хостинге DigitalOcean за $5 - http://demo.devs.mx/lightning
      почти мгновенное открытие страниц высокие показатели Google PageSpeed, большинство магазинов получают 90+ сразу после установки быстрая работа с большим количеством товаров и категорий повышение удобства навигации по магазину и рейтингов в поисковиках не надо настраивать и приглядывать, просто работает отпадает необходимость в дополнительных модах оптимизации или кеширования  
       
       
       
       
      Если вы залогинены в админку - страницы, на которые вы заходите - после этого перегенерируются. То есть, если вы хотите увидеть изменения - просто обновите страницу.
      В большинстве случаев нет необходимости очищать кеш вручную - все обновляется автоматически.
       
      После установки у вас будет 7 дней тестового периода, дальше надо будет купить лицензию. 
      Есть возможность оптовой покупки: 5 лицензий и больше - 25% скидки, 25 лицензий и больше - 55% скидки.
       
      Внимание: OpenCart Lightning не работает на localhost, только на реальных интернет-серверах.
       
      Установка
      Загрузите lightning.ocmod.zip в инсталлятор, зайдите в Модификации и обновите их.
       
      Внимание!!! Если вы обновляетесь с Lighning 2, перед установкой удалите старую модификацию Lightning и папку system/lightning
       

      Рекомендуемые настройки для темы JOURNAL2
      =======================================
       
      JOURNAL2 Settings -> System & Performance:
      Caching System: On
      Minify HTML: Off
      Minify CSS: Off
      Minify JS: Off
      Modules Cache: Enable All кроме Side Category
      .
      Добавил MaxD Добавлено 04.12.2014 Категория Кэширование, сжатие, ускорение Системные требования Сайт разработчика http://lightning.devs.mx/ Старая цена Метод активации Автоматическая активация 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.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.х  
    • От MaxD
      OpenCart Lightning - это мод для ускорения работы магазинов. Он использует целый ряд технологий и ноу-хау.
      Работает со всеми версиями OpenCart и ocStore.
       
      Вот ссылка на демо-магазин с 20000 товаров на хостинге DigitalOcean за $5 - http://demo.devs.mx/lightning
      почти мгновенное открытие страниц высокие показатели Google PageSpeed, большинство магазинов получают 90+ сразу после установки быстрая работа с большим количеством товаров и категорий повышение удобства навигации по магазину и рейтингов в поисковиках не надо настраивать и приглядывать, просто работает отпадает необходимость в дополнительных модах оптимизации или кеширования  
       
       
       
       
      Если вы залогинены в админку - страницы, на которые вы заходите - после этого перегенерируются. То есть, если вы хотите увидеть изменения - просто обновите страницу.
      В большинстве случаев нет необходимости очищать кеш вручную - все обновляется автоматически.
       
      После установки у вас будет 7 дней тестового периода, дальше надо будет купить лицензию. 
      Есть возможность оптовой покупки: 5 лицензий и больше - 25% скидки, 25 лицензий и больше - 55% скидки.
       
      Внимание: OpenCart Lightning не работает на localhost, только на реальных интернет-серверах.
       
      Установка
      Загрузите lightning.ocmod.zip в инсталлятор, зайдите в Модификации и обновите их.
       
      Внимание!!! Если вы обновляетесь с Lighning 2, перед установкой удалите старую модификацию Lightning и папку system/lightning
       

      Рекомендуемые настройки для темы JOURNAL2
      =======================================
       
      JOURNAL2 Settings -> System & Performance:
      Caching System: On
      Minify HTML: Off
      Minify CSS: Off
      Minify JS: Off
      Modules Cache: Enable All кроме Side Category
      .
  • Последние посетители   0 пользователей онлайн

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

×