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

Лидеры

  1. Blast

    Blast

    Разработчик


    • Баллы

      2

    • Постов

      76


  2. mpn2005

    mpn2005

    Разработчик


    • Баллы

      1

    • Постов

      566


  3. halfhope

    halfhope

    Разработчик


    • Баллы

      1

    • Постов

      48


  4. matroskin92

    matroskin92

    Разработчик


    • Баллы

      1

    • Постов

      18


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

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

  1. Версия 1.0.0

    311 раз скачали

    Простое решение для реального упрощения процесса оформления заказа, с настройкой которого разберется любой чайник. Модуль разделен на блоки, содержание (поля, методы) которых можно настроить индивидуально (например, для каждой группы доставки указать свои поля, а для самовывоза и вовсе их отключить). При разработке модуля был использован опыт и требования к оформлению заказа реальных интернет-магазинов с высокой конверсией продаж. ДЕМОНСТРАЦИЯ: Opencart - demo \ demo УСТАНОВКА: Установите модуль через стандартный установщик Перейдите к настройкам модуля "Оформление заказа Custom" Осуществите первичную настройку модуля Обновите кэш модификаторов (Встроенный модификатор осуществляет переадресацию со стандартных страниц корзины и оформления заказа на настраиваемую.) ЧТО ВНУТРИ: Модуль имеет 8 основных блоков на одной странице: Оформить как - (с регистрацией, без регистрации и авторизация) Корзина (с набором колонок, необходимых для отображения на странице) Личные данные (настройка полей для каждой группы пользователей) Доставка (поля, с отметкой для каких методов осуществлять отображение) Оплата (методы и группы пользователей для отображения) Поле комментария Модули (таких как подарочные сертификаты, купоны) Итоговая таблица Данное решение удовлетворит большинство магазинов, которым необходимо простое и быстрое оформление заказа, но нет желания устанавливать сложные модули. ИЗМЕНЕНИЕ ОФОРМЛЕНИЯ: Вы можете самостоятельно изменить оформление и изменить расположение блоков на свое усмотрение. Для сохранения работоспособности модуля сохраняйте уникальные идентификаторы (id) и названия полей и методов (name). В планах добавить в модуль различные темы оформления для быстрого старта. ВНИМАНИЕ! Техническая поддержка по бесплатному модулю не осуществляется. Все вопросы игнорируются, модуль работает стабильно, если у вас что-то не получается, то с вероятностью 95.5%, что проблемы заключаются в неправильной настройке (забыли проставить группы пользователей, например), либо не обновили кеш модификаторов. ПОДДЕРЖКА: Пишите в тему поддержки, при наличии свободного времени отвечу или возможно кто из коллег поможет.
    Бесплатный
    1 балл
  2. Отправка форм в Telegram Добавил Blast Добавлено 14.03.2024 Категория Письма, Рассылки, sms Просмотр файла  
    1 балл
  3. Версия 1.1

    0 раз скачали

    Модуль позволяет отправлять любые формы (обратная связь, обратный звонок, контактная форма, быстрый заказ и т.д.) в телеграм в личный чат, либо в группу(удобно, если у вас несколько менеджеров). Возможности: Создавать неограниченное количество экземпляров модуля и привязывать их к разным формам с различными настройками. Использовать разные чаты для разных форм. Привязываться к форме или кнопке (кнопка ОБЯЗАТЕЛЬНО должна быть внутри формы) по CSS-селектору. Задавать индивидуальный формат сообщений для каждой формы. Отправлять в чат картинки и другие файлы. Отображать пользователю уведомления об успешной отправке или ошибке. Собственный код валидации/проверки полей. По умолчанию модуль не проверяет ошибки, а сразу отправляет сообщение. Принцип работы: Модуль находит кнопку или форму, которая указана в поле "Селектор формы или кнопки" и вешает обработчик события click (на кнопку) или submit(на форму). Внутри обработчика вызывается метод validate (вы можете самостоятельно написать код для проверки полей в настройках модуля), который по умолчанию возвращает true. Если валидация прошла успешно, то форма сериализуется (именно поэтому кнопка должна быть внутри тега <form>, если в качестве селекторы вы указываете кнопку) и отправляется запрос AJAX на контроллер модуля, который с учетом заполненного в админке формата уведомлений формирует сообщение и отправляет его в чат. Если в качестве селектора указана форма, то удостоверьтесь, что она реально отправляется на сервер(происходит submit). Если же этого не происходит, то лучше привязывать отправку к кнопке. Установка: 1. Зайдите в административную панель своего интернет-магазина. 2. На вкладке Модули/Расширения выберите пункт Установка расширений. 3. Нажмите на кнопку Загрузить и выберите архив formInTelegram.ocmod.zip. 4. После процесса установки перейдите на вкладку Модули/Расширения - Модификаторы и обновите модификаторы. 5. Перейдите на вкладку Модули/Расширения - Модули/Расширения. 6. В выпадающем списке выберите тип расширения - Модули. 7. В списке модулей найдите [AppDevStudio] Отправка форм в Telegram и активируйте модуль. 8. Нажмите на кнопку редактирования [AppDevStudio] Отправка форм в Telegram, введите данные формы, токен бота и идентификатор чата и нажмите Сохранить. 9. В меню Дизайн/Макеты выведите созданный модуль на той же странице, где имеется данная форма или поставьте галочку "Форма находится на всех страницах", если форма реально присутствует на всех/многих страницах сайта. Как зарегистрировать бота и получить токен: 1. Найти в телеграме юзера @botfather 2. Возле окна ввода текста нажать кнопку Меню и выбрать "/newbot" или ввести эту же команду в поле ввода и отправить сообщение. 3. Вам будет предложено ввести название бота, а затем его имя пользователя, заканчивающееся на "bot". 4. Ввести требуемые данные. 5. В ответном сообщении после строки "Use this token to access the HTTP API:" будет написан токен в формате "цифры:символы" 6. Скопировать и сохранить куда-нибудь токен. 7. Открыть настройки модуля и ввести туда токен в соответствующее поле. Как узнать ид личного чата: 1. Найти своего бота в телеграме по имени пользователя. 2. Написать ему произвольное сообщение. 3. Перейти в браузере по URL https://api.telegram.org/bot<token>/getUpdates где вместо <token> нужно вписать полученный ранее токен. Браузер Firefox отображает данные структурированно, а не просто текстом. Это удобнее для поиска информации. 4. Если не видно сообщений, то обновить страницу, возможно написать повторно сообщение. 5. В разделе "chat" будет подраздел "id". Это и есть ваш chat_id (Идентификатор чата). Копируем его и вставляем в настройки модуля. Как отправлять сообщения в группу: 1а. Создать группу в телеграм через стандартное меню, найти на шаге добавления пользователей своего бота и добавить его к группе. 1б. Если группа уже существует, то найти своего бота в телеграме по имени пользователя. В меню справа нажать кнопку "Добавить в группу" и выбрать соответствующую группу. 2. Написать в группе сообщение латиницей, начинающееся со знака "/". 3. Перейти в браузере по URL https://api.telegram.org/bot<token>/getUpdates где вместо <token> нужно вписать полученный ранее токен. Браузер Firefox отображает данные структурированно, а не просто текстом. Это удобнее для поиска информации. 4. Если не видно сообщений, то обновить страницу, возможно написать повторно сообщение. 5. В разделе "chat" будет подраздел "id". Это и есть ваш chat_id (у группы он начинается со знака "-" и далее содержит цифры). Копируем его полностью вместе со знаком "-" и вставляем в настройки модуля. Модуль не заменяет стандартные файлы. Не требуется IonCube. Условия использования: 1 покупка = 1 доменное имя. Если возникают проблемы с установкой/настройкой пишите - помогу. Демо: Фронт - https://oc302.appdevstudio.ru/ Админка - https://oc302.appdevstudio.ru/admin/ demo / demo Модуль тестировался на OpenCart / OcStore / Opencart Сlub edition/ Русской сборке 3.0 на стандартном шаблоне. С другими шаблонами тоже должен работать.
    750 ₽
    1 балл
  4. Если всё сделали верно, то будет работать. В этом плане сборка ни чем не отличается от штатного OpenCart.
    1 балл
  5. Всем привет, дорогие друзья! Статья предназначена для разработчиков дополнений. Пишу без воды, сухо и по делу. Немного истории, нюансов, список аргументов для обработчиков событий, также приведу пример простой и понятной реализации большого кол-ва событий в ваших дополнениях для 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 балл
×
×
  • Создать...