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

Лидеры

  1. HyperLabTeam

    HyperLabTeam

    Разработчик


    • Баллы

      1

    • Постов

      214


  2. mpn2005

    mpn2005

    Разработчик


    • Баллы

      1

    • Постов

      566


Популярный контент

Показан контент с высокой репутацией 09.06.2023 во всех областях

  1. Веб сервер nginx позволяет работать в разных режимах, как с использованием интерпретатора php, так и без. Для работы OpenCart лучше выбирать оптимальный режим работы php-fpm. Многих данный режим пугает тем, что в данном случае файл htaccess напрочь игнорируется и все необходимые настройки нужно вносить в конфиг nginx. Но в этом нет ничего сверх сложного. Конфигурационный файл - это обычный текстовый файл на сервере, который подчиняется определённым правилам. И по данному поводу можно найти много готовых описаний и инструкций. Данная статья не претендует на уникальность, а просто представляет краткую выжимку по настройкам, учитывая особенности работы с движком OpenCart и сборками на его основе. Для удобства будут приводится примеры настройки с использованием панели ISPmanager. Основные настройки будут касаться секции location, и зависимость описания от используемой панели будет минимальной. Для начала переведём nginx в режим работы php-fpm. Для этого в панели сделаем следующие настройки разделе WWW-домены для нужного сайта: 1. Выбираем в списке нужный сайт, если их несколько, и жмём кнопку "Изменить". 2. Находим настройки PHP и настраиваем следующим образом: Обратите внимание, что версия php у вас может отличаться. При необходимости, можно эту версию изменить на нужную, но этот вопрос выходит за рамки данной статьи. После сохранения настроек будет работать почти всё, что и раньше. Если в настройках OpenCart отключены ЧПУ ссылки, то всё будет работать, как и работало до переключения режима работы. Теперь можно приступать к непосредственной настройке самого конфигурационного файла nginx для текущего сайта. Для этого в списке www доменов находим нужный нам и нажимаем справа на иконку с тремя точками. В выпадающем меню выбираем пункт "Конфиг": Вот примерный конфигурационный файл, который будет создан у вас по умолчанию: В конфигурации у вас будет две секции server, если у вас включено защищённое соединение SSL (и оно должно быть обязательно включено). Если у вас включен принудительный редирект с http на https, то можно редактировать только секцию server для https. Определить её легко: в самом начале есть параметр с указанием сертификата ssl_certificate. Также в этой секции указан параметр listen с указанием порта 443: listen 8.8.8.8:443 ssl Но лучше делать настройки сразу в двух секциях server, чтобы не допустить механической ошибки. На данный момент нас интересует вот эта часть конфигурационного файла: location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { expires 365d; } } Все дальнейшие изменения мы будем вносить внутри этой секции "location /". В первую очередь нам не хватает вот такой директивы: if (!-e $request_filename){ rewrite ^/(.+)$ /index.php?_route_=$1 last; } Данное условие очень простое: если сервер не может найти файл по указанному в запросе пути, то запрос будет переписан на вызов index.php, а в параметр _route_ будет передан запрашиваемый путь. Именно это и позволит корректно отрабатывать всем ЧПУ ссылкам движка. Это правило является аналогом записи в файле htaccess: RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] На этом можно было бы и закончить, но стоит внести ещё некоторые изменения для улучшения безопасности. Рассмотрим более внимательно вот эту секцию: location ~ [^/]\.ph(p\d*|tml)$ { Тут отбираются все все подходящие динамические файлы с типами .php (в том числе с числами в окончании) и .phtml Но у движка OpenCart в штатном режиме есть всего две точки входа для вызова php файлов через web окружение - это index.php и admin/index.php Есть ещё install/index.php, но она используется только при установке движка. Учитывая данные обстоятельства, логично запретить прямое выполнение всех остальных php скриптов через web окружение, кроме указанных администратором. Сделать это можно следующим образом: location ~ ^/(index|admin/index|install/index)\.php { try_files /does_not_exists @php; } В скобках через разделитель "|" указываем все php скрипты, которые можно выполнять. После завершения установки можно будет сократить это список до такого: (index|admin/index) ВНИМАНИЕ!!! Очень важный момент! После того, как убрали вызов интерпретатора php для всех файлов, кроме указанных, при попытке запроса любого другого php файла он будет отдан как обычный текстовый файл. И при запросе https://test.ru/config.php любой желающий сможет получить содержимое вашего конфигурационного файла, где содержится доступ к БД. Поэтому нам обязательно нужно запретить доступ для всех остальных файлов с расширением php. Ну и заодно к другим типам файлов, которые не стоит отдавать по запросу извне. Сделать это можно простым правилом: location ~* \.(php|log|tpl|txt|twig|xml|ini)$ { deny all; } В скобках через разделитель "|" указываем все расширения файлов, которые мы хотим запретить. Но у нас есть несколько важных файлов, которые пока попали под запрет, например: robots.txt и sitemap.xml. Этот вопрос мы решим чуть позже. А сейчас ещё немного запретов. Запретим открывать файлы, которые начинаются с точки, а также все файлы в папке system: location ~ /\. { deny all; } location ~ ^/system/ { deny all; } Этих запретов вполне достаточно, чтобы сделать невозможным выполнение каких-либо несанкционированных скриптов. А также просмотр логов, текстовых и xml файлов. Теперь нам необходимо открыть доступ к файлу robots.txt, для этого нам нужно такое правило: location = /robots.txt { allow all; } Также пропишем разрешение на открытие sitemap.xml и rewrite правило: location = /sitemap.xml { allow all; rewrite ^/(.*)$ /index.php?route=extension/feed/google_sitemap last; } Если вы используете сторонний модуль сайтмапа, то нужно указать соответствующий route для данного модуля. Если у вас несколько файлов sitemap или вы используете фиды для выгрузки данных, то просто пропишите для них права по аналогии. В итоге мы должны получить вот такую секцию location: Этих настроек достаточно для корректной работы движка OpenCart. И при этом данная конфигурация является безопасной с точки зрения выполнения несанкционированных скриптов php через web окружение. После всех настроек обязательно проверьте правильность работы, сделав запросы по указанному чек-листу (test.ru замените на адрес вашего сайта): https://test.ru/config.php https://test.ru/admin/config.php https://test.ru/admin/1.php https://test.ru/admin/1.txt https://test.ru/admin/1.log https://test.ru/admin/1.xml https://test.ru/system/modification.xml Для всех этих ссылок вы должны получить ошибку "403 Forbidden", вне зависимости от того, есть файл по указанному пути на сервере, или нет. Также проверяем белый список: https://test.ru/robots.txt https://test.ru/sitemap.xml Эти файлы не должны вызывать ошибок и вы должны корректно получать их содержимое. Дополнительно стоит проверить все ваши дополнительные сайтмапы или фиды, если вы их добавляли. Ещё раз повторюсь, что данная настройка является базовой, с небольшими правилами для улучшения безопасности. Но даже уже при такой настройке вы в среднем получите выигрыш 100-200ms для параметра TTFB, по сравнению с остальными режимами работы.
    1 балл
  2. Версия 2.1.4

    249 раз скачали

    Модуль HMPM позволяет группировать товары в одну карточку вместо опций - цвет, объём, размер, вес и т.д. АЯКСом без перезагрузки страницы для OpenCart 2 и 3 Идеально подойдет для: - парфюмерно-косметических магазинов по примеру Ильдеботэ, Летуаль, Ривгош - объёмы флаконов, расцветки теней, помад и т.д. - интернет магазинам тематики - двери, бытовая техника, телефоны, компьютеры и одежда, обувь - интернет магазинам любых тематик, товары которых могут быть объединены: по цвету, весу, размерам, объёмам и прочим характеристикам. !!! ВНИМАНИЕ !!! Все вопросы, касающиеся необходимых услуг и доработок, уточняйте перед покупкой!!! Все работы по установке, доработке, адаптациям и расширению функционала делаются только по предварительному согласованию! Сроки реализации - от 1-2 недель, по договоренности. Модуль работает согласно заложенному и описанному функционалу, читайте внимательно перед покупкой описание, документацию и смотрите демо! Читайте внимательно каждый пункт описания! HMPM - HYPER MULTI PRODUCT MODELS MULTi AJAX замена моделей товара для OpenCart 2 и 3 ----------------------------------------------------------------- Модуль позволяет в одном товаре сгруппировать однотипные модели товаров в мульти-связку серии, модельный ряд! AJAXом заменяет данные карточки товара на данные дочерних-связанных в группу товаров на лету, без замены url и без перезагрузки страницы товара! Что заменять вы выбираете сами! Суть модуля в том, чтобы вы могли использовать товары вместо ограниченных опций; тем самым вы к каждому такому товару можете задавать отдельные акции, скидки и прочее и не мучиться с их массовым редактированием для опций! Важно, что схожие товары можно скрыть в списках и модулях, объединяя их в один товар, т.е. нет дублей! У всех однотипных товаров будут один рейтинг и один блок отзывов без их разброса по товарам, и без мусорных ссылок с бесполезным cannonical для однотипных товаров! Одна ссылка и куча возможностей товара в отличии от урезанных опций, которых ещё и не видно в списке товаров! Естественно всё это можно включать и выключать в настройках модуля. ----------------------------------------------------------------- ДЕМО Демо категории Демо товара Дема админка demo\demo При поиске из серии выводится именно подходящий под поиск актуальный товар. Также есть такие адаптации под разные фильтры, чтобы при выборе параметров подставлялись именно нужные варианты из серий. В этом существенное преимущество над опциями. Вот на примере фильтра. При выборе разных расцветок: откройте спойлер ----------------------------------------------------------------- Функционал MULTI AJAX мульти замена товара без перезагрузки страницы. Мульти связка товаров Группировка товаров по типу связанных опций в несколько блоков - по цвету, размеру и весу и т.д. Мультимагазины Выбор связки в карточке товара админки - мульти добавление товаров в связку Вывод данных дочерних товаров в списках (в категориях и т.д.) Три варианта вывода блока моделей в карточках и списках (категории, и т.д.) - Рядами, - Список - HTML Список - стилизованный. Настройка вывода данных в категориях Смена основного изображения, цен, заголовков, по наведению \ по клику. Одна ветка рейтинга и блока отзывов ко всем связанным однотипным товарам. более десяти вариантов типа карточки товара; Скрыть дочерние товары в списках: - YES - дочерние модели товаров скрыты в списках и доступны только в родительском товаре, в корзине, в избранных и в сравнении. - NO - дочерние товары не скрыты, отображаются в списках. Все связанные между собой товары также выводятся в карточках товаров с аякс заменой. 301 редирект: - YES - по прямой ссылке дочернего товара - 301 редирект на родительский товар*. - NO - дочерние модели товаров доступны по прямой ссылке. * Пример при редиректе; По прямой ссылке дочернего товара - 301 редирект на родительский товар с AJAX подменой модели в родительском товаре на дочерний, с которого пришли по ссылке. Хэш # в окончании url товара: - YES - дочерние модели товаров с # (hash) в окончании url (чпу)*. - NO - дочерние модели товаров без # (hash) в окончании url (чпу). * Пример ЧПУ товаров с # (hash) в окончании url (чпу) - domain.com/category/product/#id-red где при смене модели товара /#id-red заменяется например на /#id-black и т.д. Связанные товары раздельно: - YES - каждый связанный товар в мультисвязку отдельно на своей странице со своим URL \ ЧПУ -если товары не дубли - NO - отключение разделения товаров Сохранение полного функционала товара. Возможность скрыть товар, если его нет в наличии, кол-во = 0. Возможность переключения на товар, который в наличии. Исключает дубли однотипных товаров ( цвет, объёмы, вес, размеры, и т.д. ) Поддержка всех цен, групповых скидок, акций, опций, статусов товара, количества товара, выбора в избранное и в сравнения и т.д.. Если у дочернего товара есть акция, то его родитель высвечивается на странице акций. Если товар в лидерах \ хитах продаж - высвечивается родитель. Вывод данных к моделям; --- Изображение --- Цена --- Атрибуты - любые --- Модель --- SKU --- EAN --- UPC --- JAN --- ISBN --- MPN --- Расположение --- Размеры (Д x Ш x В) --- Вес --- Наименование --- Последнее слово из названия --- HTML-тег H1 --- HTML-тег Title --- Мета-тег Keywords Замена данных товара - цены, акции, скидки, модель, sku, вес, размеры, атрибуты и т.д. Замена H1 на выбор Замена основного и дополнительных изображений на выбор. Замена описаний на выбор. Замена характеристик товара на выбор. Вывод в блок связанных товаров различных полей на выбор, включая и основные изображения, с возможностью заменить на свои. Блок всех моделей товара можно вывести по селектору в любом месте карточки товара на ваше усмотрение. Выбор позиции отображения, до или после какого селектора вставлять блок моделей товара: insert Before - перед блоком тегом; prepend To - внутри в начале; append To - внутри в конце; insert After - за блоком тега; HELPERS - ВСТРОЕННЫЕ ПОМОЩНИКИ ++ Адаптации к шаблонам Адаптация делается под конкретный настроенный магазин с его набором модулей и настройками шаблона! Откройте спойлер и прочтите, что включает в себя готовая адаптация!!! Особенности работы с шаблонами. Вывод модуля на фронте и его работа сильно зависит от используемого шаблона. Поэтому к каждой теме необходима адаптация. Без адаптации работа модуля гарантируется только на дефолтном шаблоне, в который не вносились изменения. Готовая адаптация предоставляется как есть. Наличие готовой адаптации под ваш шаблон уточняйте в ЛС перед покупкой. Адаптирован \ Интегрирован с Butch Editor - массовый редактор товаров для для связки АОП - фильтрация по поставщикам и загрузка данных для связки Диспетчер YML\XML - загрузка данных в формате YML\XML\CSV для связки SimplePars - Универсальный парсер для интернет магазинов CSV import/export - импорт \ экспорт данных вашего магазина FX Sitemap удаление скрытых товаров с карты сайта FilterVier_SEO - фильтр ocFilter - фильтр Dream Filter - фильтр последних версий начиная с версии 2.4. Под все вышеперечисленные модули адаптации делались авторами этих дополнений. И мы не гарантируем корректную работу на любой версии. Также мы не предоставляем адаптации, доработки и консультации по работе с вышеперечисленными модулями в связке с нашим. Перед покупкой модуля: Внимательно читаем описание! Всё, что не указано в описании, не означает что должно и обязано быть! Адаптация под сторонние модули не входит в тех поддержку и является платной! Оплачивая адаптацию, обратите внимание, что цена адаптаций начинается ОТ указанной в услуге суммы. Т.е. ОТ это значит, что у вас могут быть установлены сторонние модули, с которыми дополнительно придется адаптировать модуль, и в таком случае это будет доп доработкой с доп оплатой - имейте это в виду! Уточняйте все интересующие моменты в теме поддержки! Установка, обновление и отсутствующая адаптация под ваши шаблоны платная. Перед установкой модуля: Внимательно читаем файл readme.txt! Устанавливайте модуль только своей версии опенкарта. Если вы не уверены, что сможете установить нормально модуль, то лучше закажите дополнительно услугу установки. Любые вопросы по модулю - добро пожаловать в тему, тестируем, отписываемся, спрашиваем! Некорректно установили, не заработал и т.д. - вот тогда пишем в ЛС с полными доступами к FTP и в админ часть! Если вы отказываете в доступах для тех поддержки - значит поддержка вам не нужна! Если у вас после обновления модификаторов валится сайт - значит какой-то "специалист" вам изменения внёс в кэш модификаторов - соответственно, чтобы заставить работать на таком сайте модуль - придется повозиться с этим на платной основе, т.к. такое не входит в бесплатную тех поддержу! Обновление модуля на вашем сайте нашими силами и все прочие доработки - платные, подробности в ЛС! Все прочие вопросы по модулю - добро пожаловать в тему тех поддержки и обсуждения. Если модуль начинает искаться на варезниках, то поддержка больше не оказывается! ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ!
    9 998 ₽
    1 балл
×
×
  • Создать...