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

Лидеры

  1. halfhope

    halfhope

    Разработчик


    • Баллы

      15

    • Постов

      46


  2. AlexDW

    AlexDW

    Разработчик


    • Баллы

      2

    • Постов

      564


  3. Tom

    Tom

    Разработчик


    • Баллы

      1

    • Постов

      182


  4. nikifalex

    nikifalex

    Разработчик


    • Баллы

      1

    • Постов

      138


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

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

  1. Система Быстрых Платежей (СБП Тинькофф) Добавил ashap Добавлено 18.04.2022 Категория Платежные системы Просмотр файла  
    1 балл
  2. Модификатор добавляет поддержку префиксов «catalog» и «product» в ссылках для страниц категорий и товаров. Работает на OpenCart/OcStore 2.x/3.x, поддерживаются SEO_URL/SEO_PRO. SQL запрос для добавления префиксов находится в XML файле. Распространяется as is. product_and_category_prefix_v1.1_oc_v2.x.ocmod.zipproduct_and_category_prefix_v1.1_oc_v3.x.ocmod.zip Изменения в версиях: 1.1 Убрал префикс category для товаров с категориями 1.0 initial
    1 балл
  3. [PMP] - Products module pack Добавил halfhope Добавлено 12.07.2022 Категория Виджеты, Модули Просмотр файла
    1 балл
  4. Версия 1.2

    13 раз скачали

    Описание PMP создает модули для вывода товаров и источники данных к ним (новинки, акции, лидеры продаж и т.д.). Помимо глобального режима работы, реализованного в стандартных модулях движка, в PMP реализованы абсолютный и относительный режимы. Например, "новинки из выбранной категории / производителя", "новинки текущей категории / производителя", "новинки той же категории / производителя, что и текущий товар". Подробности ниже. Возможности Режимы работы Источники данных (новинки, акции, лидеры продаж и т.д.) могут работать в трех режимах. Объясню на примере модуля "Новинки": Абсолютный и Глобальный режимы Новинки из вручную выбранных Вами категорий / производителей. Это Абсолютный режим. Если не выбирать никаких категорий / производителей, это будет Глобальный режим, как у стандартного модуля новинок. Зависит от указанных вручную параметров. Можно указывать одновременно и категорию и производителя. Относительный режим Новинки текущей категории / производителя (где расположен модуль / которую посещает пользователь). Этот режим также работает и на странице товаров, может учитывать одновременно и категорию и производителя товара. Если модуль разместить на главной или любом другом месте, где модулю будет не за что прицепиться (товар, категория, производитель), то модуль сработает в Глобальном режиме. Зависит от расположения модуля. Если расположить один и тот же модуль новинок одновременно на странице категорий, производителя и товара, то он будет показывать разные наборы товаров. Пример есть в демо. Источники данных Абсолютные, Относительные, Глобальные: Новинки; Лидеры продаж; Товары со скидками; Товары по акции; Товары с бонусными баллами; Случайные товары; Самые просматриваемые; Самые обсуждаемые. Кастомные: Свой SQL запрос; Свой PHP код; Глобальные: Выбранные вручную товары. Другие возможности Есть возможность инвертировать выборку для абсолютных/относительных источников данных. Это значит, что будут выбраны товары НЕ входящие в текущую выборку. Есть выбор статусов товара, количества, сортировки, перемешивание товаров, кэширование. Модулем поддерживается режим совместимости с шаблонами. Это значит, что в 99% случаев не стоит беспокоиться об адаптации модуля под шаблон оформления. Этот механизм работает за счет подмены товаров у стандартного модуля "Рекомендуемых товаров". Использует механизм событий, работает без внедрения в файлы. В модуле также реализована возможность подменять шаблон (tpl / twig) на свой. Это позволит выводить товары в любой нужной форме, будь то слайдер/свайпер и т.д. Эта функция работает и в режиме совместимости. Итого имеем (16 (абсолютные + относительные) * 2 (инвертирование выборки)) + 8 (Глобальные) + 3 (Дополнительных источника данных) = 43 варианта выборки товаров. Можно еще умножить полученный результат на количество ваших вариантов настроек. Совместимость OpenCart / ocStore 2.3, 3.x, 4.x. Демо Админка https://pmp.shth.me/admin/ (авто вход) Каталог https://pmp.shth.me/ На демо сайте есть верхнее меню для быстрой навигации. Описание демо На демо сайте создано 3 модуля: Самые просматриваемые - Абсолютный | Most viewed - Absolute Выбран производитель Apple. Размещен только на главной. Новинки - Относительный | Latest - Relative Размещен на страницах категорий, производителей, товаров и главной. На главной модулю не за что прицепиться (товар, категория, производитель), он выбирает новинки из всего магазина (Глобальный режим). Кастомный PHP код | Custom PHP code Размещен на странице товаров, всегда выводит одни и те же товары (3 товара). Установка Установите расширение через стандартный раздел установки дополнений. Перейдите в раздел модулей и установите модуль "[PMP] Products module pack". Руководство Модуль простой, руководство не требуется, все есть в описании и подсказках. Если возникнут любые вопросы, пишите в тему поддержки или личные сообщения. Лицензия Модуль имеет автоматическую активацию. При покупке указывайте домен / тестовый домен. Лицензия распространяется на один магазин / мультимагазин. Описание файлов и контрольные суммы pmp_v1.2_oc_v2.3.ocmod.zip для версий 2.3 a30eb76e67f304b923f2b2d1310dbabc pmp_v1.2_oc_v3.x.ocmod.zip для версий 3.x 1142d2954bdc4cb96486e9e216e6678b pmp.ocmod.zip для версий 4.x a30eb76e67f304b923f2b2d1310dbabc В процессе работ Алгоритм похожих товаров, использующий кластеризацию - DBSCAN / DBSCANPlus. Сходство определяется названием, общими аттрибутами и категориями. Используется косинусное сходство и модифицированная мера Сёренсена. Алгоритм коллаборативной фильтрации для формирования персональных рекомендаций пользователям. Используется DBSCAN / DBSCANPlus. Формируется на основе предыдущих заказов и отзывов. UPD есть существенные задержки в связи с известными событиями. Смотрите также Custom templates Pro - модуль подменяющий tpl / twig шаблоны у любых разделов и модулей в зависимости от условий. Расширенные схемы - расширяет функционал стандартного механизма схем, позволяет управлять видимостью модулей в зависимости от условий. FSMonitor - мониторинг файловой системы - модуль отслеживает новые, измененные и удаленные файлы сайта. Другие модули и услуги с тегом "Гибкость". Лог изменений
    900 ₽
    1 балл
  5. Версия 1.1.2

    14 раз скачали

    Описание Модуль позволяет управлять главным меню и добавляет возможность создавать свое верхнее меню. Верхнее меню можно создавать и выводить для выбранных разделов. Поддерживается встроенная в opencart система контроля доступа к разделам. Преимущества Использует механизм событий, работает без внедрения в файлы. Не заменяет текущее меню, а подхватывает существующие пункты. Не влияет на производительность. Возможности Поддержка HTML кода в названиях пунктов меню. Поддержка назначения JavaScript кода для пунктов меню*. Назначение FontAwesome иконок для каждого пункта*. Пункты меню скрываются, если у текущего пользователя нет прав на просмотр содержимого раздела. Используется встроенная в OpenCart система контроля доступа к разделам ("Система" > "Пользователи" > "Группы пользователей"). Поддерживает генерацию ссылок по роуту. $_GET переменные, $this->config параметры в заголовках, ссылках и JS в виде шорткодов. Верхнее меню можно выводить в выбранных разделах. В верхнем меню можно создавать разделители и заголовки групп. * Для главного меню слева, JavaScript, как и иконки, поддерживаются только у пунктов меню первого уровня. Есть ocmod файл, который решает эту проблему, файл бесплатный, доступен по запросу. Совместимость OpenCart / ocStore 2.3, 3.x, 4.x. Демо Админка https://menu-manager.shth.me/admin/ (авто вход) Каталог https://menu-manager.shth.me/ На демо сайте есть верхнее меню для быстрой навигации. Установка Установите расширение через стандартный раздел установки дополнений. Перейдите в раздел модулей и установите нужный модуль. Руководство Модуль разделен на 2 независимых модуля (главное меню, верхнее меню). В правой панели обоих модулей находятся автоматически сканированные разделы Вашего магазина, из этой панели можно переносить готовые пункты меню. При установке модуля главного меню, меню модуля автоматически заполняется текущими пунктами главного меню. Для главного меню, JavaScript, как и иконки, поддерживаются только у пунктов меню первого уровня. Иконки встроенные - FontAwesome. Верхнее меню можно размещать в выбранных разделах админки, указав роуты нужных страниц через запятую или на всех страницах, если оставить роут пустым. Шорткоды Шорткоды можно использовать в заголовках, ссылках и JavaScript коде. Доступ к $_GET переменным текущей страницы [product_id], [module_id]. Доступ к $this->config параметрам магазина [config|config_language_id]. Генерация ссылок на разделы админки [link|catalog/product]. Если возникнут любые вопросы, пишите в тему поддержки или личные сообщения. Лицензия Модуль имеет автоматическую активацию. При покупке указывайте домен / тестовый домен. Лицензия распространяется на один магазин / мультимагазин. Описание файлов и контрольные суммы menu_manager_v1.1.2_oc_v2.3.ocmod.zip для версий 2.3 d51916f303f960740be404710e5595ae menu_manager_v1.1.2_oc_v3.x.ocmod.zip для версий 3.x 942d3b1823fe37831bda0eb62bec948f menu_manager.ocmod.zip для версий 4.x e908b2b3c5aa56ce5356ef5ecdfcbf39 Смотрите также FSMonitor - мониторинг файловой системы - модуль отслеживает новые, измененные и удаленные файлы сайта. [PMP] - Products module pack - модуль для вывода товаров. Более 43 вариантов выборок товаров. Базовая HTTP авторизация - защита административного раздела базовой авторизацией на уровне сервера. Другие модули и услуги с тегом "Гибкость". Лог изменений
    750 ₽
    1 балл
  6. Версия 1.2.1

    224 раза скачали

    Скрипт добавляет недостающие индексы в БД. Использование индексных полей при выполнении запросов позволяет существенно снизить нагрузку на сервер и ускорить выполнение запросов. Кроме добавления индексных полей, скрипт оптимизирует таблицы функцией OPTIMIZE TABLE (перестроение индексов). Содержит 27 индексов для 14 таблиц. Применение Загрузить файл на сервер в корень сайта Запустить из браузера https://ваш-сайт/indexer.php Если рядом с indexer.php нет файла config.php, то будет показана форма для ввода данных. Другие модули и услуги с тегом "SpeedUp".
    Бесплатный
    1 балл
  7. Менеджер административного меню Добавил halfhope Добавлено 12.07.2022 Категория Меню, Навигация , Прочие Решения Просмотр файла
    1 балл
  8. сталкивался я с этой проблемой лет 10 назад тоже на opencart 1.5 Но никак не могу вспомнить как это исправляется. Если я не путаю, то дело именно в настройках хостинга и конфликте с какими то вещами в opencart. типа magic_quotes_gpc но что-то другое, подобное. и если на не путаю, эта похожая проблема на проблему с поиском русских слов или кавычек
    1 балл
  9. попробуйте поменять название какого-нибудь товара, добавьте кавычки, сохраните пару раз и смотрите, что будет в названии и что фактически в БД
    1 балл
  10. Попробуйте всё же вариант с заменой редактора. Но только теперь не чистите кэш, а откройте магазин в режиме Инкогнито.
    1 балл
  11. сравните файл system\library\request.php с файлом из дистрибутива (если стоит vqmod - то сравнивайте измененный файл, если он там есть)
    1 балл
  12. Приветствую! Думаю, проблема в разросшемся логе ocmod, он не очищается автоматически. Удалите system/storage/logs/ocmod.log. А чтобы он автоматически очищался, в файле admin\controller\extension\modification.php перед строкой: $ocmod = new Log('ocmod.log'); $ocmod->write(implode("\n", $log)); Добавьте: unlink(DIR_LOGS . 'ocmod.log');
    1 балл
  13. Всем привет, дорогие друзья. В этой обновляемой статье я буду выкладывать скрипты для ускорения проведения работ с OpenCart. Скрипты предназначены больше для разработчиков, чем для пользователей. В большинство скриптов встроена авторизация, пароль и другие настройки находятся в начале файла. Log Shortener — скрипт для работы с большими логами ошибок формата OpenCart. DomStats — Скрипт для анализа DOM структуры страницы. Показывает структуру в виде дерева. Modification Editor — Редактор модификаций. PHP Bash — доступ к терминалу средствами PHP. Scan — сканирование изменений в файлах. Показывает новые, измененные, удаленные файлы.
    1 балл
  14. Indexer - добавление недостающих индексов в БД Добавил halfhope Добавлено 09.07.2022 Категория Администрирование , Сжатие, Ускорение, Кэширование Просмотр файла  
    1 балл
  15. В статье представлено описание алгоритма/подхода для очистки от вирусов сайта на OpenCart. Эта статья рекомендована для технически подкованных пользователей, которые хорошо понимают код, а так же способны сами искать и применять широкий ассортимент ПО для решения задач. Если у вас другая CMS/фреймворк, все равно рекомендую ознакомиться, возможно, будет полезно. От автора Если вам нужно очистить сайт от вирусов с гарантией: Краткий алгоритм Делаем бекап сайта; чистим его на локальной машине; меняем все возможные пароли; удаляем файлы и бд с сервера; заливаем обратно очищенные копии файлов и БД; На случай если мы что-то пропустили, то нужно организовать наблюдение: Устанавливаем наблюдение за изменениями в файлах и включаем логи, если они были отключены; если что-то произойдет, то это будет отражено в логах и Вам останется только закрыть пропущенную уязвимость; продолжать наблюдение. Рекомендуемый период наблюдения — 3-4 недели. Подробное описание Подготовка к работе Скачайте файлы сайта и БД на локальный компьютер. Быстрее всего это сделать одним файлом (zip архив). Можно не скачивать папку «image» т.к. она имеет большой размер и там нет исполняемых файлов. Позже это нужно будет проверить (перед загрузкой очищенной копии сайта). Используя OpenServer/WAMP/LAMP или тот же хостинг, создаем новую базу данных и импортируем дамп базы вашего сайта. Разархивируйте файлы в удобную для работы папку. Работа с базой данных Находим таблицу oc_user и удаляем всех пользователей, кроме администратора. Никнейм администратора рекомендую переименовать, это защитит учетку от случайного перебора паролей. Следует изменить пароль администратора. В таблице oc_user, в поле password вставьте md5 хеш пароля, очистите поле salt. На этом все, пароль изменен. Перейдите в таблицу oc_modification, в ней хранятся модификаторы модулей. Проверьте код модификаторов на предмет уязвимостей. С 2020 года некоторые ботнеты используют модификатор заточенный под OpenCart — reverse shell. Работа с файлами В качестве подготовительных работ рекомендую удалить лишний мусор вроде phpinfo, кэш, логи. У OpenCart это так же неиспользуемые темы (кроме default), языки и модифицированные файлы (system/storage/modification). Проверьте файлы на наличие в них вредоносного кода. Для этого можно использовать ai-bolit (revisium), ShellDetector, LMD, антивирусы для ПК и любые другие средства. Ну а вообще для приложений с единой точкой входа, таких как OpenCart, следует искать дополнительные точки входа в приложение (места передачи скрипту инструкций, через $_POST, $_GET, $_COOKIE и т.д.) а так же попытки их обфускации (сокрытия). Если вы просматриваете весь код, то ускорить этот процесс поможет ускорить GIT или Beyond Compare. Они покажут вам новые и измененные файлы, сравнив ваш сайт с оригинальной версией движка. Анализ access логов сервера так же позволит найти инфицированные файлы. Следует искать прямые вызовы файлов. После очистки создайте zip архив с очищенными файлами сайта. Работы на сервере Поставьте заглушку с кодом 503 Service Unvaliable и оставьте доступ только для своего IP адреса, чтобы предотвратить доступ к сайту извне. С такой заглушкой поисковые боты зайдут на сайт позже и вы не потеряете позиции в поисковой выдаче. Смените все возможные пароли — Панель управления, База данных, FTP пользователи, почтовые аккаунты. Удалите старую базу данных и импортируйте очищенную копию. Удалите все файлы сайта с хостинга, кроме папки «image» и заглушки. Из папки image стоит удалить все что не является изображениями, т.е. все исполняемые файлы, их там быть не должно. Загрузите очищенные копии файлов на сервер и обновите пароли в конфиг файлах. Перейдите в раздел администратора магазина и обновите модификаторы. Защитите админку от перебора и излишнего любопытства, добавив дополнительную HTTP авторизацию. Включите логирование запросов, если оно было отключено. Установите наблюдение за изменениями в файлах. Если вы что-то пропустили при очистке, то это будет отражено в логах или в изменениях файлов. По логам можно будет вычислить источник повторного заражения и закрыть уязвимость. Современные ботнеты детектируют удаление своих файлов и перестают «стучаться», чтобы не выдавать расположение всех созданных ими файлов. Они бездействуют несколько дней или недель и стучаться снова. Если какой-то инфицированный код остался, то сайт будет заражен снова. Поэтому период наблюдения стоит увеличить до максимального. Общие рекомендации Не используйте варезные модули; Используйте сложные пароли. Не придумывайте их сами, используйте генераторы; Не используйте имена по-умолчанию, такие, как admin, переименуйте их; Заведите отдельные аккаунты (FTP/админка) для подрядчиков (фрилансеров), по окончании работ отключайте их; Следите за изменениями в файлах; Используйте резервное копирование; Рекомендуемые модули
    1 балл
  16. Привет! В модуле "Последние обновления". Отображаются реальные последние обновленные товары/услуги, модуль работает как надо и отображает последние обновленные товары. У меня, как всегда, статья или товар - являются шалашом. Так что если я вижу, что что-то не так, я лезу исправлять. Но с первого раза не очевидно, что измененный мной контент будет выводиться в этом модуле в начале списка. В общем, я не знаю чего я хочу, но точно не хочу загонять обновленные модули других авторов в низ списка, это какое-то несправедливое и бесплатное преимущество, которым я пользуюсь по неосторожности. Просто уже привычно видеть там новые модули, а не их обновления. Может быть бы лучше сделать два отдельных модуля "Новинки" и "Последние обновления"? Думаю, есть ещё варианты, просто их не вижу.
    1 балл
  17. Всем привет, дорогие друзья! Статья предназначена для разработчиков дополнений. Пишу без воды, сухо и по делу. Немного истории, нюансов, список аргументов для обработчиков событий, также приведу пример простой и понятной реализации большого кол-ва событий в ваших дополнениях для OpenCart 2.3, 3.x, 4.x (скачать примеры модулей можно будет в конце статьи). Как все начиналось Для изменения кодовой базы движка нам всегда нужно было либо вмешиваться в код, либо использовать vqmod. Использование vqmod порождало проблемы при работе нескольких модификаторов с одним участком кода, а также другие, касающиеся поддержки дополнений. Использование хуков помогло бы решить часть из них. Вспоминаю первую, известную мне реализацию «Override Engine» (2012 г), а также тему «hook pre render Идея и примерная реализация«. Начиная с версии 2.0 (2014 г) в движке появился первый встроенный механизм событий (хуков), а концепция vqmod была реализована в самом движке и получила название ocmod. С версии 2.2 (2016 г) в событиях изменились пути триггеров, они стали аналогичны роутам. В версии 3.x (2017 г) механизм событий и ocmod обошлись без существенных изменений. А с версии 4.x поддержки ocmod больше не будет. «Embrace, extend and extinguish«. Однако, у нас всегда будет vqmod. Зачем нужны события? События позволяют запускать пользовательские функции до/после вызова какой-либо функции в парадигме MVCL+Config+Library для изменения входных/выходных данных. По задумке мэйнтэйнера движка они должны заменить vqmod/ocmod. P.S. Я уже переписал некоторые старые модули с использованием событий. Например, раньше модуль «Персонализованные шаблоны» с помощью ocmod внедрялся в код основных разделов каталога и подменял их шаблоны, а теперь его брат «Custom templates Pro» подменять любой шаблон в движке. Так что события очень хорошо решают некоторые типы задач. Нюансы при использовании событий События могут быть добавлены только из контроллеров админки. Удобнее всего делать это при установке модуля, в функции install. Пути всех триггеров начинаются с названия нужного раздела, admin, catalog или library. Разделы admin и catalog содержат controller, view, language и config. В путях триггеров можно использовать знак «*», чтобы назначать триггеры по маске. Например, catalog/view/*/template/common/header/after. Для изменения данных в обработчиках событий config и language используйте $this->config->set(), $this->language->set(), соответственно. Данные полученные из обработчиков событий можно сохранять внутри класса и использовать их в других обработчиках, которые запускаются позднее. Для редактирования событий из админки используйте «Event Manager» или adminer ([сtrl+click], для быстрого редактирования записи). Нюансы для разных версий движка Код события для версии 2.3 должен иметь длину не более 32 символов. Для версий 3.x и 4.x не более 64. В версии 2.3 событиями (регистрация, удаление и т.д.) занимается модель extension/event, у 3.x и 4.x setting/event. В версии 2.3 в разделе catalog пути триггеров представлений (view) before/after будут отличаться. Например, catalog/view/common/header/before, catalog/view/default/template/common/header/after. Это связано использованием шаблонов оформления в разделе catalog. С версии 3.x добавлен порядок сортировки событий. С версии 4.x у каждого события должен быть description. Триггеры для библиотек (library) доступны только с версии 4.x. Передаваемые аргументы В обработчики событий аргументы передаются по ссылке. Т.е. можно менять значения аргументов не заботясь о передаче результата куда-либо еще. 2.3 controller model view language config before $route, $data $route, $args $route, $data, $output $route $route after $route, $data, $output $route, $args, $output $route, $data, $output $route, $output $route 3.x controller model view language config before $route, $args $route, $args $route, $data, $code $route, $key $route after $route, $data, $output $route, $args, $output $route, $data, $output $route, $key, $output $route 4.x controller model view language config library before $route, $args $route, $args $route, $data, $code $route, $prefix, $code $route $route, $args after $route, $data, $output $route, $args, $output $route, $data, $output $route, $prefix, $code, $data $route, $data $route, $args Возвращаемые значения Помимо изменения данных через аргументы, обработчики событий также могут возвращать значения, используя return. Например, если обработчик события controller/common/home/before вернет через return сгенерированный html код, то весь вывод контроллера common/header будет заменен им, а сам контроллер common/header не будет выполнен, но запустится событие after. Т.е. можно подменять данные выполнения функций без их выполнения. 2.3 controller model view before mixed mixed string after mixed mixed string 3.x controller model view before mixed mixed string after mixed mixed string 4.x controller model view before mixed after mixed Простая и понятная реализация <?php class ControllerExtensionModuleSample extends Controller { public function install() { $this->checkEvent(); } public function uninstall() { $this->removeEvent(); } public function index() { # code } private $_events = [ [ 'code' => 'sample_394beb748918d3ce260756703', 'trigger' => 'admin/controller/design/layout/before', 'action' => '/eventControllerDesignLayoutBefore' ], [ 'code' => 'sample_7a2b613ccb07a2c0e9c8cb844', 'trigger' => 'admin/view/design/layout_list/after', 'action' => '/eventViewDesignLayoutListAfter' ], [ 'code' => 'sample_968b25d7939ec60e0008d670c', 'trigger' => 'admin/model/design/layout/getLayouts/after', 'action' => '/eventModelDesignLayoutGetLayoutsAfter' ], [ 'code' => 'sample_172e1deab50793d6c4bec3b42', 'trigger' => 'catalog/model/design/layout/getLayoutModules/after', 'action' => '/filter' ] ]; public function eventControllerDesignLayoutBefore(&$route, &$args) { # code } public function eventViewDesignLayoutListAfter(&$route, &$data, &$output) { # code } public function eventModelDesignLayoutgetLayoutsAfter(&$route, &$args, &$output) { # code } private function checkEvent() { $this->load->model('extension/event'); foreach($this->_events as $event) { if(!$result = $this->model_extension_event->getEvent($event['code'], $event['trigger'], 'extension/module/sample' . $event['action'])) { $this->model_extension_event->addEvent($event['code'], $event['trigger'], 'extension/module/sample' . $event['action']); } } } private function removeEvent() { $this->load->model('extension/event'); foreach($this->_events as $event) { $this->model_extension_event->deleteEvent($event['code']); } } } Примеры 2.3 sample_2.3.ocmod.zip 3.x sample_3.x.ocmod.zip 4.x sample.ocmod.zip
    1 балл
×
×
  • Создать...