Search the Community
Showing results for tags 'lightning'.
-
Завантажити / Придбати розширення Буслік Кэш / Buslik Cache Lite ИНФОРМАЦИЯ Название модуля: Буслік Кэш - "Buslik Cache" Версия модуля: 1.0 Тип лицензии: Lite (Liteware, linkware, beerware, muffinware) - пробная версия (упрощённая) Тип установки: ocmod Язык: Беларуская мова, English, Русский язык, Українська мова Дата создания: 02.10.2019 Был протестирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.6, OpenCart-"Русская сборка" 2.1.0.2 (rs1), 2.3.0.2 (rs6) и 3.0.2.0 (rs3), ocStore 2.1.0.2.1 и 2.3.0.2.3 - шаблон (default) Название архива: Buslik Cache v1.0 Lite OpenCart 2.X-3.X.zip ПОЛНАЯ ВЕРСИЯ ЗДЕСЬ ОПИСАНИЕ Модуль предназначен для уменьшения нагрузки на вашу базу данных и сайта в целом тем, что создаёт файл готовой страницы и после каждый раз отдаёт её пользователю. Также поднимает оценку Google PageSpeed. Если у вас на сайте шаблоны от индусов, то скорее модуль вам не поможет, и нужно нанимать специалиста, или менять шаблон на эти, или покупать полную версию модуля. Этот модуль урезанная версия платного модуля. В платной версии возможно многое. ВНИМАНИЕ! Оригинальные файлы магазина не заменяет! УСЛОВИЯ СОГЛАШЕНИЯ - Beta и Lite версии устанавливаете на свой страх и риск - бэкап базы данных (далее - БД) обязателен; - Модуль (модификатор, дополнение, расширение, приложение) (далее - Модуль) можно устанавливать на неограниченное количество доменов; - Редактировать код запрещено; - Распространение модуля разрешено с сохранением ссылок автора и исходного кода; - Техническая поддержка (далее - ТП) не осуществляется; - Адаптация модуля под другую версию Опенкарта, нестандартный шаблон и сторонние модули - платная; - Автор не несёт ответственности за потерю или находку дохода пользователя из-за работы модуля; - Автор модуля оставляет за собой право в любое время внести изменение в настоящее условие, описание и исходный код модуля; Автор buslikdrev долучення 10.05.20 Категорія Кэширование, сжатие, ускорение Системные требования Метод активации Без активации Ioncube Loader Нет ocStore 3.0 2.3.0.2.4 2.3 2.2 2.1 OpenCart.Pro, ocShop Opencart.pro 2.3 Opencart.pro 2.1 OcShop 2.0.3.х Звернення до сервера розробника Нет
- 74 replies
-
- 2
-
- бесплатно
- google pagespeed
- (and 14 more)
-
cache Модуль Буслік Кэш Full [Поддержка]
buslikdrev posted a topic in Кэширование, сжатие, ускорение
40 Завантажити / Придбати розширення Буслік Кэш Full ИНФОРМАЦИЯ Название модуля: Буслік Кэш - "Buslik Cache" Версия модуля: 1.0 Тип лицензии: Full (полная версия) Тип установки: ocmod, event Язык: Беларуская мова, English language, Latviešu valoda, Lietuvių kalba, Język polski, Русский язык, Українська мова Дата создания: 16.05.2021 Был протестирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.6, OpenCart-"Русская сборка" 2.1.0.2 (rs1), 2.3.0.2 (rs6) и 3.0.2.0 (rs3), ocStore 2.1.0.2.1 и 2.3.0.2.3 - шаблон (default) Название архива: Buslik Cache v1.0 Full OpenCart 2.X-4.X.zip ОПИСАНИЕ Модуль предназначен для уменьшения нагрузки на вашу базу данных и поднятию оценки Google PageSpeed. Плюсы: - скорость работы (в основном, когда ещё не закэшировало страницу 50мс-100мс на OpenServer HDD php 5.4, а на php7+ 30мс-80мс, иногда фиксировалось 150, после кэширования css, js около 10мс, после кэширования страницы 2мс); - функциональность; - вы хозяин кэша (полный контроль); - открытый и минимальный исходный код; - подробная и понятная инструкция. Возможности по кэшу: - поддержка драйверов: APC(u), MemCache(d), Redis, File, Buslik или свой; - можно установить исключение по роуту страницы, или наоборот включить для определённых роутов (например, product/category), названий параметра (например, category_id=10) или keyword (например, category10). При включении определённых страниц можно задать индивидуальное время и разнообразить по config, session, cookie, $_POST, $_GET данным; - можно разнообразить кэш с помощью config, session, cookie данных состоящих даже из массивов; - можно ограничить кэширование страниц по параметрам $_POST, $_GET и размеру файлов, чтобы избежать заполнения дискового пространства сервера; - можно установить ограничение по размеру общего объёма кэша на дисковом пространстве сервера; - из настроек модуля можно чистить кэш: html, css, js, images, logs, pwa, обновлять модификаторы, чистить различные отчёты в БД (просмотры товара, активность пользователей, поисковые запросы, корзина пользователей, сессионные данные);- при редактировании товара, категории и т.д. полный кэш страниц тоже будет очищаться в соответствии id; - можно установить время кэша для страниц, контроллеров, моделей и стандартного кэша OpenCart; - можно кэшировать страницы в 2 прохода, сначала кэш моделей, потом всей страницы; - можно прегенерировать кэш массово согласно параметрам ограничений и другим настройкам под этот функционал. Возможности по Google PageSpeed: - можно установить исключение по роуту страницы, или наоборот включить для определённых роутов (например, product/category), названий параметра (например, category_id=10) или keyword (например, category10). - loading="lazy" изображений, фрейм окон, видео, аудио, html-код модулей; - можно указать атрибуты ширины и высоты для всех изображений; - можно сжать стили, скрипты и html страницу; - можно скачать сторонние стили и скрипты на свой сайт; - можно указать исключение из сжатия стилей и скриптов; - можно сделать замену данных для страниц, стилей, скриптов; - можно указать свои атрибуты для стилей и скриптов; - можно предзагружать шрифты, изображения, видео файлы, стили, скрипты; - можно установить инлайн стили и скрипты вверху, внизу, в отдельном файле, отложить загрузку по событию и таймеру; - можно указать свои стили и скрипты; - можно включить генерацию webp изображений в двух направлениях (png/jpg/gif в webp и обратно); - можно собирать и настраивать критические стили; - не ломает валидацию html-кода. Другие возможности: - дебаг режим показывает скорость кэширования контроллеров, моделей, страниц, библиотеки модуля, сжатия стилей, скриптов и страниц, и др; - логирование медленных запросов; - экспорт настроек из других модулей кэша. ВНИМАНИЕ! Оригинальные файлы магазина не заменяет! Исходный код открыт. Все настройки имеют подробное описание. Автор всегда на связи, когда онлайн. УСЛОВИЯ СОГЛАШЕНИЯ - Beta и Lite версии устанавливаете на свой страх и риск - бэкап базы данных (далее - БД) обязателен; - Модуль (модификатор, дополнение, расширение, приложение) (далее - Модуль) можно устанавливать на 1 домен включая поддомены (одна покупка - один домен); - Редактировать код можно только под нужды своего магазина; - Распространение модуля запрещено; - Техническая поддержка (далее - ТП) осуществляется только при появлении ошибки, бага, глюка (зависания) и не совместимости модуля с заявленными версиями Opencart и шаблонов на момент продажи, при установке на боевой сайт (рабочий хостинг); - Адаптация модуля под другую версию Опенкарта, нестандартный шаблон и сторонние модули - платная; - Автор модуля оставляет за собой право в любое время внести изменение в настоящее условие, описание и исходный код модуля; - Автор модуля оставляет за собой право прекратить ТП пользователям по истечению 365 календарных дней со дня последнего обновления модуля (Full или Beta версии), или со дня окончания продления ТП, или при форс-мажорных обстоятельств; - Автор не несёт ответственности за потерю или находку дохода пользователя из-за работы модуля; - ТП осуществляется при условии соблюдения данного соглашения, пишите в личные сообщения. Для тех кто выбирает опцию неограниченные домены - вам нужно заменить в модификаторах ссылку моего профиля на ваш. Автор buslikdrev долучення 21.05.21 Категорія Кэширование, сжатие, ускорение Системные требования php5.4+ Метод активации Автоматическая активация Ioncube Loader Нет ocStore 3.0 2.3.0.2.4 2.3 2.2 2.1 OpenCart.Pro, ocShop Opencart.pro 2.3 Opencart.pro 2.1 OcShop 2.0.3.х Звернення до сервера розробника Нет Да- 5 replies
-
- google pagespeed
- redis
- (and 19 more)
-
Зашел я сегодня посмотреть свежую ленту форума и увидел очередное хамство нашего героя: Это ужасно, ужасно ужасно в рамках поддержки платного дополнения, которое только разводит и не делает результат! Но мы же с вами грамотные красавчики. И мы понимаем что волшебной таблетки не может быть! Но нам гуглпейдж спид кажить все эти FCP CLS и весь этот бред типа. Друзья. ни один модуль не решит ваши проблемы. Потому как вот эта вся модель оценки вашего ресурса, она очень сложная, ее сложно обмануть, она учитывает пользовательскую статистику хрома, кроме того что вам любые модули могут обмануть бота, и все это уже не актуально. И у вас там может быть сложнейшая верстка, куча лишнего контента, да все что угодно. Но ок, что же нам делать, у нас есть рабочий интернет-магазин. мы хотим подтянуть позиции по выдаче и стоим на распутье, хотим быстрый First contetn paintfull и отсутствие Cumulative Layout Shift. Наверное в формате магазина невозможно достичь идеальных показателей, но мы можем к ним попробовать постремиться. Итак, что я вам советую сделать, чтобы у вас улучшились показатели, без хамства авторов дешевых бесполезных поделок и при этом своими руками и легко: 1. Все изображения во всех модулях, списках, баннерах и так далее идут в Lazy, просто берете и делаете нативное Lazy https://developer.mozilla.org/ru/docs/Web/Performance/Lazy_loading Просто добавляете к изображениям свойство loading="lazy" 2. все изображения переводите в webp, для этого не надо бежать к сайткиратору и покупать платный модуль, просто пользуете это: 3. В большинстве шаблонов у нас по умолчанию в верстке list, который потом через js переводится в grid, сделайте grid в верстке по умолчанию и это отличн вам решит CLS показатель, так как у вас не будет сдвига макета при рендере, если не знаете что это и не знаете как сделать - долбите авторов шаблонов. 4. Новые хотелки page speed хотят, чтобы skeleton разметки страницы был сразу с установленными параметрами размеров изображений. Если у вас единый размер, задайте во всех выводах изображений width и height принудительно. 5. Используйте современные шаблоны. Да я верю, что вы все положили много денег и ресурсов в то что у вас есть, но или Криво косо, но содержат в себе какие-то built in механизмы отпимизации-сжатия скриптов стилей и дадут вам меньше запросов на вебсервер. Несмотря на кривость реализации, это лучше чем ничего! А еще шаблон от @29aleksey все таки прилично выглядит по сравнению со всеми остальными поделками за полтосик. Мне бы в 2012 году такой, для моих магазинов. Реально Леха-кравачик и душу вложил! 6. Если вам вот прямо необходим JivoChat, Вот вам отличный мануал, как решить с ним проблему; https://habr.com/ru/post/447262/ 7. Да я молчу про TTFB, который тоже влияет на оценку pagespeed, да я знаю как это сделать, да, я с удовольствием сделал бы бесплатную таблетку, которая решала проблему быстрой загрузки HTML контента, но это не возможно к сожалению, Минимум что я вам могу рекомендовать, едьте на быстрые хостинги, пользуйте пхп 7+, следите за включенным opcache. 8. Если у вас там метрики и аналитика от гугла - снести все в футер, это плохой совет, возможно вы лишитесь 3-5% каких то показателей, но зато внешние скрипты не затупят. 9. если у вас модуль доставки типа сдэка - посмотрите, чтобы он не пытался грузить яндекс карты на все страницы магазина. 10. Если вы пользуете метрику, отключите в ней вебвизор, вы им вряд ли будете пользоваться и смотреть в него, если нужен - никто не мешает включить! 11. Счетчики, аналитики и т.д. Ни в коем случае не делайте их подгрузку по пользовательскому событию или в отложенную загрузку. Уж если сильно вам мозолит глаза 10-15 баллов, которые они навешивают, снесите их в футер. 12. Вывод и скрытие контента в зависимости от типа устройства. Используйте с умом. Пользуйтесь не js библиотеками а mobiledetect, от того что вы спрячете в display none какой либо элемент, он все равно будет опубликован в DOM страницы, если что-то хотите убрать для мобильных устройств, просто не выводите этот контент фактически при генерации html кода! Но даже если вы реализуете большую часть моих советов, у вас будут отличные оценки pagespeed, и вас не придется выслушивать блевотный бред от авторов которые не смогли, или пытаются нажиться на трех строчках кода на ваших болях, как тот же ситикриатор со своим вебп компрессором, не замечая, что рядом есть отличные бесплатные решения! upd: ну и еще банальшина, но проверяйте настройки кеширования сжатия статики, и если у вас webp то и для него добавляйте правильные заголовки. К примеру, если у вас ISP то должно выглядеть так: Если у вас странные шаред хостинги или нестандартные панели сервером - гуглите, как настроить кеширование сжатие для статики - в зависимости от вашего веб-сервера. Опять же возвращаясь к ISP менеджеру, который заполонил все, попросите вашего вебмастера или саппорт хостинга проверить, чтобы nginx отдавал вот для этого всего правильные заголовки: location ~* ^.+\.(webp|jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|flv|swf|woff2?|ico)$ { access_log off; expires max; break; } Вот прямо можете давать ссыль на статью и говорить - хочу вот так для вебп!
- 20 comments
-
- 24
-
Как вы заметили друзья, в последние месяца три меня на форуме почти нет, лето, домашние дела, да и в целом порядок на форуме не способствуют писанине. Тем и вопросов накопилось овердочешуя, но все отложено на позднюю осень. Но тут я обнаружил пару процессов, про которые я просто не могу не написать. первый - это наш любимый модуль лайтнинг, который поет танцует и заменят десяток илитных девушек легкого поведения. ИИИИ тушит ваши магазины. Я не буду долго развозить, просто покажу скрин: Пришел ко мне соучастник и говорит вот такие у меня проблемы что делать.. Сайт просел в выдаче и полный капут. Ну конечно капут, Реально нет даже ни малейшего желания заниматься разбором полетов откуда эти дубли пролезли в выдачу. Но когда они пролезли у человека просело -50% трафика. Спасибо тебе максд - ты крутой программист, кроме тебя сайты может укладывать только маркимарк. А теперь про маркимарка. Вчера, один наш товарищ показал вот такой график: Да, вам не показалось - это 12,5к хостов органики из гугла в день! И у нас был простой диалог: Выводы делайте сами!
- 15 comments
-
- 12
-
Я просто не могу не поделиться с вами творением мастера с themeforest https://themeforest.net/item/kept-responsive-opencart-theme/19982236 Я читал этот файл как хороший детектив на ночь. Угадайте куда он цепляется? Правильно! К common/menu! в Opencart 3! Для тех кто не хочет читать и восхищаться - спойлер <?php /* Project - "KEPT" - Responsive OpenCart Premium Theme -------------------------------------------------------------------------------- BUY LICENCE: https://themeforest.net/user/0808web/portfolio Author: ROBERT from 0808web Website: 0808web.com Theme Version: 1.5.0.0 Compatible: OpenCart 3.0.2.0 or higher -------------------------------------------------------------------------------- COPYRIGHT 2017 ROBERT MIRCIOI ALL RIGHTS RESERVED */ if ($this->config->get('config_theme') == 'kept') { if (isset($this->request->get['path'])) { $parts = explode('_', (string)$this->request->get['path']); } else { $parts = array(); } if (isset($parts[0])) { $data['category_1_id'] = $parts[0]; } else { $data['category_1_id'] = 0; } if (isset($parts[1])) { $data['category_2_id'] = $parts[1]; } else { $data['category_2_id'] = 0; } if (isset($parts[2])) { $data['category_3_id'] = $parts[2]; } else { $data['category_3_id'] = 0; } if (isset($parts[3])) { $data['category_4_id'] = $parts[3]; } else { $data['category_4_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['kept_categories'] = array(); $kept_categories = $this->model_catalog_category->getCategories(0); foreach ($kept_categories as $category_1) { if ($category_1['top']) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_4_data = array(); $categories_4 = $this->model_catalog_category->getCategories($category_3['category_id']); foreach ($categories_4 as $category_4) { $data_category_4 = array('filter_category_id' => $category_4['category_id'], 'filter_sub_category' => false); $product_total_category_4 = $this->model_catalog_product->getTotalProducts($data_category_4); $level_4_data[] = array( 'name' => $category_4['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_4 . '</sup>' : ''), 'id' => $category_4['category_id'], 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'] . '_' . $category_4['category_id']) ); } $data_category_3 = array('filter_category_id' => $category_3['category_id'], 'filter_sub_category' => false); $product_total_category_3 = $this->model_catalog_product->getTotalProducts($data_category_3); $level_3_data[] = array( 'name' => $category_3['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_3 . '</sup>' : ''), 'id' => $category_3['category_id'], 'children' => $level_4_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id']) ); } $data_category_2 = array('filter_category_id' => $category_2['category_id'], 'filter_sub_category' => false); $product_total_category_2 = $this->model_catalog_product->getTotalProducts($data_category_2); $level_2_data[] = array( 'name' => $category_2['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_2 . '</sup>' : ''), 'id' => $category_2['category_id'], 'children' => $level_3_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id']) ); } $data_category_1 = array('filter_category_id' => $category_1['category_id'], 'filter_sub_category' => true); $product_total_category_1 = $this->model_catalog_product->getTotalProducts($data_category_1); $data['kept_categories'][] = array( 'name' => $category_1['name'], 'name_count' => $category_1['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_1 . '</sup>' : ''), 'id' => $category_1['category_id'], 'children' => $level_2_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id']) ); } } $data['kept_sidebar_categories'] = array(); $kept_sidebar_categories = $this->model_catalog_category->getCategories(0); foreach ($kept_sidebar_categories as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_4_data = array(); $categories_4 = $this->model_catalog_category->getCategories($category_3['category_id']); foreach ($categories_4 as $category_4) { $data_category_4 = array('filter_category_id' => $category_4['category_id'], 'filter_sub_category' => false); $product_total_category_4 = $this->model_catalog_product->getTotalProducts($data_category_4); $level_4_data[] = array( 'name' => $category_4['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_4 . '</sup>' : ''), 'id' => $category_4['category_id'], 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'] . '_' . $category_4['category_id']) ); } $data_category_3 = array('filter_category_id' => $category_3['category_id'], 'filter_sub_category' => false); $product_total_category_3 = $this->model_catalog_product->getTotalProducts($data_category_3); $level_3_data[] = array( 'name' => $category_3['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_3 . '</sup>' : ''), 'id' => $category_3['category_id'], 'children' => $level_4_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id']) ); } $data_category_2 = array('filter_category_id' => $category_2['category_id'], 'filter_sub_category' => false); $product_total_category_2 = $this->model_catalog_product->getTotalProducts($data_category_2); $level_2_data[] = array( 'name' => $category_2['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_2 . '</sup>' : ''), 'id' => $category_2['category_id'], 'children' => $level_3_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id'] . '_' . $category_2['category_id']) ); } $data_category_1 = array('filter_category_id' => $category_1['category_id'], 'filter_sub_category' => true); $product_total_category_1 = $this->model_catalog_product->getTotalProducts($data_category_1); $data['kept_sidebar_categories'][] = array( 'name' => $category_1['name'], 'name_count' => $category_1['name'] . ($this->config->get('config_product_count') ? '<sup>' . $product_total_category_1 . '</sup>' : ''), 'id' => $category_1['category_id'], 'children' => $level_2_data, 'href' => $this->url->link('product/category', 'path=' . $category_1['category_id']) ); } $data['code'] = $this->session->data['language']; $this->load->model('localisation/language'); $results = $this->model_localisation_language->getLanguages(); foreach ($results as $result) { if ($data['code'] == $result['code']) { $data['t08_kept_language'] = $result['language_id']; } } $data['t08_kept_text'] = $this->config->get('theme_kept_text'); $data['t08_kept_header'] = $this->config->get('theme_kept_header'); $data['t08_kept_header_urls'] = $this->config->get('theme_kept_header_url'); }
- 5 replies
-
- 1
-
- aaaaaaaaaaaaaaaaaaa
- opencart 3
- (and 4 more)