Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Search the Community

Showing results for tags 'инструкция'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Genaral
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • Opencart 4.x
    • Opencart 4.x: General questions
    • Opencart 4.x: Installing and updating
    • Opencart 4.x: Localization
    • Opencart 4.x: Setting and optimization
    • Opencart 4.x: Sandbox
    • Opencart 4.x: Extension search
    • Opencart 4.x: Bug Reporting
  • Opencart 3.x
    • Opencart 3.x: General questions
    • Opencart 3.x: Installing and updating
    • Opencart 3.x: Localization
    • Opencart 3.x: Setting and optimization
    • Opencart 3.x: Sandbox
    • Opencart 3.x: Extension search
    • Opencart 3.x: Bug Reporting
  • Opencart 2.x
    • Opencart 2.x: General questions
    • Opencart 2.x: Installing and updating
    • Opencart 2.x: Localization
    • Opencart 2.x: Setting and optimization
    • Opencart 2.x: Sandbox
    • Opencart 2.x: Extension search
    • Opencart 2.x / ocStore 2.x: Bug Reporting
  • Реклама и продвижение
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Контекстная реклама
    • Торговые площадки
    • E-commerce tracking и бизнес аналитика
    • Разное
  • Поддержка и ответы на вопросы
    • Общие вопросы
    • Установка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программистам и разработчикам
    • Мобильная витрина
    • Вопросы безопасности
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Создание магазинов под ключ
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая работа по уже существующему сайту
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению

Categories

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Filters
  • Promotions & Pricing
  • Реклама и продвижение
  • Coupons & reward points, affiliate programs
  • Blogs, News & Articles
  • Shopping Cart & Order
  • Product Options
  • Product Attributes
  • Product Combinations
  • Search
  • SEO & Optimization
  • Caching & Server Performance
  • Платежные системы
  • Доставки
  • Editors
  • Design & Navigation
  • Banners, Slideshows & Galleries
  • Email Marketing & SMS Integration
  • Customer Support & Chat
  • Обмен данными
  • Учет в заказе
  • Compare & Wishlist
  • Социальные сети
  • Parsers
  • Модули
  • Tools & Developer Tools
  • Licenses
  • Языковые пакеты
  • Other
  • Отчеты
  • Сборки
    • ocStore
  • Услуги
    • Графика и дизайн
    • Маркетинг

Categories

  • Служебные документы
  • Оплата
  • Документация Opencart

Categories

  • Gereneral questions
  • Purchasing extensions
  • For developer
  • Account
  • Technical support
  • Financial department

Blogs

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • Записи
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Мой копирайтинг
  • SEO боксинг специального назначения
  • Get-Web Dev
  • Seok
  • Блоги sitecreator-а
  • Best practice
  • Vlad-Egorov-Blog
  • Блог spectre
  • commanddotcom
  • Внимание мошенники
  • Наблюдения обычного человека
  • Блог Rassol2
  • Блог Exploits
  • блог для натуралов
  • Настюша, тут есть темы
  • Пропитано рекламой
  • Tutorial
  • ОтВинта
  • Tg chnls
  • Блог
  • Блог sv2109
  • КАК ОРГАНИЗОВАТЬ НОВОСТНЫЕ ПОДПИСКИ НА БАЗЕ API OPENCART 3/0/2
  • VDS/VPS, серверы под Linux: установка, настройка, оптимизация
  • IT блог
  • Блог
  • Opencart SEO
  • Путёвые заметки о работе магазина NiceBike на платформе OpenCart
  • Blondi Blog
  • Полезные статьи, новости.
  • Блог владельца магазина
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer
  • Заметки реалиста

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Сайт


Skype


Город:


Интересы

Found 8 results

  1. В связи с большим количеством однотипных вопросов было решено сделать гайд по настройкам модуля Чтобы нормально работала электронная торговля в аналитике нужно в настройках включить отслеживание электронной торговли и выбрать валюту представления соответствующую вашему магазину А также ОБЯЗАТЕЛЬНО отключить модули и/или модификаторы, которые отправляют данные о торговле в аналитику, иначе данные будут "двоиться" В GA4 ничего дополнительно включать не нужно Здесь 3 разных варианта по настройке электронной торговли, можно их комбинировать, но понимать что делается Ecommerce Google Сделано по документации: Google Инструкция NetPeak https://netpeak.net/ru/blog/kak-nastroit-rasshirennuyu-elektronnuyu-torgovlyu-s-pomoshch-yu-google-tag-manager/ Модуль формирует контейнер dataLayer с параметром ecommerce Для отправки данных в яндекс - нужно наличие на сайте счетчика яндекса с параметром ecommerce Для отправки данных в гугл - нужно наличие на сайте Google Tag Manager, настроенного по документации нетпик (в комплекте с модулем идет готовый контейнер для импорта в тег менеджер, в нем нужно поменять переменную UA ID на свой ID представления) Плюсы метода - работает одновременно гугл и яндекс Минусы - если у человека в браузере стоит adBlock или другой блокировщик рекламы - есть вероятность что данные не попадут в аналитику Ecommerce для Google Analytics 4 Ссылка на документацию Google по которой работает этот метод https://developers.google.com/analytics/devguides/collection/ga4/ecommerce Чтобы работал этот вариант для Google Analytics 4 нужно чтобы на сайте был подключен Global Site Tag (gtag.js). Аналитика не должна быть подключена через Google Tag Manager или еще каким-то способом. В настройки модуля нужно ввести идентификатор Google Analytics 4 (ВМЕСТЕ С G- !) и все Enhanced Ecommerce для Google Analytics - Measurement Protocol Самый крутой вариант реализации для настройки нужно ввести только ID представления, данные попадут в аналитику независимо от наличия блокировщика рекламы у покупателя Чтобы работал этот вариант нужно просто ввести идентификатор представления в настройки модуля ЭТО НЕ ЗАМЕНА СЧЕТЧИКА АНАЛИТИКИ, ДЛЯ ОСТАЛЬНЫХ ДАННЫХ ОН ТОЖЕ ДОЛЖЕН БЫТЬ НА САЙТЕ! javascript-selector для карточки товара - это селектор jquery для карточки товара в списке товаров категории (по нему будет передаваться событие click или select_item для GA4 Не важный параметр
  2. Прошу помочь найти подробную инструкцию по управлению сайтом (http://anna.kz/) Очень надо! Заранее благодарю!!!
  3. Ребят, привет. Несколько дней пытаюсь настроить OpenCart 1.5.6.4, но у меня ничего не выходит. Подскажите, что я делаю не так? В данной теме хочу рассказать свои шаги, выслушать ваши комментарии, и в конечном счете написать полноценный гайд по тому, как с нуля всё настроить. Задачи: 1. Локализовать 2. Настроить рубль 3. Установить ЧПУ 4. Убрать дубли страниц Мои шаги: I. Устанавливаю локальный сервер MAMP Ссылка на сайт: http://www.mamp.info/en/ II. Устанавливаю OpenCart 1.5.6.4 на локальный сервер, префиксы базы данных при установке убираю. III. Скачиваю файл локализации: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=2778 Инструкция под спойлером: IV Настраиваю рубль Инструкция под спойлером V Устанавливаю SeoPro Пробовал по разному: Вариант 1: https://opencartforum.com/topic/20441-ne-rabotaet-chpu-standartnyi-i-seopro/?do=findComment&comment=304152 Вариант 2 (он не подходит для моей версии): https://opencartforum.com/topic/10270-дубли-страниц-seopro/?do=findComment&comment=151097 Вариант 3: http://jul-collection.com/opencart-nastraivaem-chpu-seo-pro-i-deadcow-seo.html У меня не появляются следующие пункты В итоге с SeoPro у меня ничего не получается, нужна ваша помощь! VI. Устанавливаю плагин Paladin 3.8.0 Установку произвожу согласно инструкции: Генерирую ЧПУ, на сайте ссылки меняются, но все они ведут на страницу с ошибкой 404. И так происходит со всеми SEO модулями, которые я ставил. В чем причина возникновения 404 ошибки? Что я делаю не так?
  4. https://promkomm.ru/image/cache/catalog/revolution/payment/visa-50x30.png вот что получилось и не дам ума что сделал не так,так как не я переводил сайт сейчас хочу с нуля перевести чтоб исправить ошибки предшественника.Буду благодарен за любую информацию желательно детальную и для ребенка В заранее спасибо.
  5. Version 1.0

    Добавить скачиваемый файл к товару Данный модуль позволяет привязать к товару, предварительно загруженный файл. Это может быть инструкция по эксплуатации, дополнительное описание, файл спецификаций продукта и многое другое. Модуль поддерживает привязку следующих типов файлов: pdf, zip, doc, docx, xls, xlsx, ppt, pptx, txt. Для Opencart 2.x дополнительно поддерживаются rar, rtf Как связать файл с товаром: 1. Загрузите файлы, которые вам потребуется привязать в любую директорию внутри папки /images. (Для Opencart 2.x вы сможете загрузить файлы напрямую из админки) 2. При редактировании товара, на вкладке Данные появится раздел Файл для товара. Кликните по ссылке Обзор и выберите необходимый файл. 3. Нажмите Сохранить. После этого на странице товара появится ссылка, для скачивания данного файла. Название анкора ссылки вы можете изменить в настройках модуля. Локализация: Русский, English Работа модуля была протестирована с Opencart версии 1.5.6.4 и 2.2.0.0, но с большой уверенностью будет работать и на более ранних версиях. Если вы найдете ошибку, напишите нам об этом и мы ее исправим в кратчайшее время.
    $10
  6. Здравствуйте! Подскажите, где взять инструкцию полноценную, детальную по настройке магазина. Чтобы было понятно, где и куда нажать, чтобы пропала определенная опция, строка, или где что подредактировать, чтобы изменился текст. Текущая инструкция на заглавной странице с дублированием названия поля, вместо пояснений - ну смешно...
  7. 700 9 Скачать/Купить дополнение Добавление скачиваемого файла к товару Добавить скачиваемый файл к товару Данный модуль позволяет привязать к товару, предварительно загруженный файл. Это может быть инструкция по эксплуатации, дополнительное описание, файл спецификаций продукта и многое другое. Модуль поддерживает привязку следующих типов файлов: pdf, zip, doc, docx, xls, xlsx, ppt, pptx, txt. Для Opencart 2.x дополнительно поддерживаются rar, rtf Как связать файл с товаром: 1. Загрузите файлы, которые вам потребуется привязать в любую директорию внутри папки /images. (Для Opencart 2.x вы сможете загрузить файлы напрямую из админки) 2. При редактировании товара, на вкладке Данные появится раздел Файл для товара. Кликните по ссылке Обзор и выберите необходимый файл. 3. Нажмите Сохранить. После этого на странице товара появится ссылка, для скачивания данного файла. Название анкора ссылки вы можете изменить в настройках модуля. Локализация: Русский, English Работа модуля была протестирована с Opencart версии 1.5.6.4 и 2.2.0.0, но с большой уверенностью будет работать и на более ранних версиях. Если вы найдете ошибку, напишите нам об этом и мы ее исправим в кратчайшее время. Добавил LIAL Добавлено 07.03.2016 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 2.2 2.1 2.0 1.5.6.4 1.5.6.3 ocStore 2.3 2.2 2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
  8. Сегодня мы разберем такую штуку как OCMOD-модификаторы, странно, но более-менее нормального мануала в сети нет, попробуем исправить этот недостаток так чтобы даже школьник понял как оно работает. Какие-то неочевидные баги, особенности и приколы мы не будем рассматривать, оставим это удовольствие тем кто решит все-таки пойти дальше и писать свои модули Итак, OCMOD-модификатор это простой XML-файл, который изменяет PHP-файлы и/или tpl/twig- файлы шаблонов. Вообще модификатор - это zip-архив с расширением ocmod.zip в нем могут быть папка upload - в которой файлы для загрузки на сервер файл install.xml - сам XML-модификатор который изменяет файлы файл install.php - php-файл который выполняется во время установки модификатора иногда install.sql - то же самое, только для запросов в бд Это очень небезопасная штука и 90% вирусни на опенкарте - это следствие того что украли админку и загрузили опасные файлы прямо через установщик расширений, я бы отключал вообще этот функционал, а для модулей существуют методы install и uninstall Но мы будем рассматривать только модификатор, который меняет код в файлах и будем называть его OCMOD-модификатором Как оно работает Есть 2 варианта применить модификатор, первый - положить в папочку system файлик с расширением .ocmod.xml, второй - загрузить файл через установщик дополнений. Первый вариант предпочтительнее, т.к. его легче править, прямо фтп-клиентом и можно уже обновлять кеш, в базе - есть всякие онлайн-редакторы, мне они не нравятся, потому что: a) есть ограничение на размер файла (правится размером поля в бд, но можно все провтыкать); б) иногда их блокируют всякие modsecurity; в) просто тупо неудобно в браузере Также нужно учитывать что порядок применения модификаторов таков - сначала применяются файлы из папки system по алфавиту, потом файлы из базы по названию или дате добавления То есть что делать мы уже знаем, чтобы сделать модификатор нам надо сделать xml-файлик и положить его в папку system Базовая структура OCMOD-файла такая <?xml version="1.0" encoding="utf-8"?> <modification> <name>Name Of Mega Modification - название нашего супер модуля</name> <code>name_of_mega_modification - внутренний код модификатора</code> <version>1.0 2.3.x-3.0.x - можно написать версию файла, для каких версий подходит, ну так, чтоб понятно было</version> <author>spectre - ваш супер ник</author> <link>https://freelancer.od.ua/ - ваш суперсайт</link> Здесь будет основное колдунство </modification> Как и в любом XML-файле все теги должны быть открыты и закрыты после содержания Ну, раз мы уже начали делать модификатор, давайте придумаем что он будет делать и по дороге обратим внимание на то как можно делать в OCMOD а как не надо. Вот прямо сразу вспомнилось что часто просят новички и спрашивают в какой код что нужно вставить чтобы если товар закончился на складе надпись на кнопке "купить" менялась на какую-то. Теперь у них будет возможность сделать это самостоятельно. Сделаем радиокнопочку, которая будет включать и выключать наше творение, а также надпись на какую собственно будет заменяться кнопка "купить", обычную, не мультиязычную, когда научитесь писать модификаторы- научитесь брать готовые части кода, благо в опенкарте уже есть все примеры) Делать будем на последней версии OcStore 2.3.0.2.4 Структура операции в OCMOD файле очень простая <file path="Путь к файлу"> <operation error="действие при ошибке"> <search><![CDATA[что ищем]]></search> <add position="операция"><![CDATA[ что вставляем или меняем ]]></add> </operation> </file> Путь к файлу, который мы будем модифицировать Можно написать несколько путей через | <file path="catalog/controller/common/home.php|catalog/controller/common/column_left.php"> В пути можно использовать звездочки и скобочки * - это любой символ в пути {} - это набор файлов, подробнее опишу дальше Сейчас мы делаем админку для нашего модификатора и нам понадобятся файлы admin/controller/setting/setting.php admin/view/template/setting/setting.tpl т.е. операция примет вид <file path="admin/view/template/setting/setting.tpl"> <operation error="skip"> <search><![CDATA[<label class="col-sm-2 control-label" for="input-admin-limit"><span data-toggle="tooltip" title="<?php echo $help_limit_admin; ?>"><?php echo $entry_limit_admin; ?></span></label>]]></search> <add position="before"><![CDATA[ ]]></add> </operation> </file> действие при ошибке - необязательно, но я предпочитаю писать skip - просто пройти дальше мимо можно писать abort (не надо, это оборвет исполнение всей цепочки) или log (писать в лог, но вроде и так все пишется) Нам нужна радиокнопка которая вкл-выкл действие и сама надпись для этой кнопки Откроем файл шаблона настроек магазина admin/view/template/setting/setting.tpl и найдем похожий кусочек с радиокнопкой на вкладке "Опции", а заодно и текстовое поле Откроем консоль по ф12 и посмотрим как называется этот элемент и заодно соседний Окей, найдем в tpl-файле этот кусочек кода (для простоты перед ним и будем вставлять наши настройки) Теперь подумаем куда нам прицепиться. Самое главное для OCMOD файла - найти УНИКАЛЬНЫЙ ЭЛЕМЕНТ к которому мы будем привязываться, не к <?php echo $text_yes; ?>, не к <div class="form-group required"> а к чему-то что с малой вероятностью будет изменено коллегами-конкурентами-вашими программистами Просто запомните, перед тем как идти дальше, проверьте что то что вы указываете в элементе search встречается один раз и ровно там где вам нужно, если нет - ищите дальше куда можно влезть чтобы вас потом не проклинали. На этом примере мы можем прицепиться к <legend><?php echo $text_product; ?></legend> Если нужно будет вставлять куда-то в середину - то можно выбрать другой элемент, хотя давайте так и сделаем, вставим наш модификатор после вкл выкл кол-во товаров Смотрим, нам нужно вклиниться вот сюда Закрывающий див не подходит, form-group тоже, мы не планируем считать какой это обязательный блок во всем файле я вижу уникальную конструкцию это название блока "кол-во элементов в админке" - туда и пойдем Берем всю строчку и указываем что ее нужно искать (надо вставлять без переносов и пробелов в начале и в конце <search><![CDATA[<label class="col-sm-2 control-label" for="input-admin-limit"><span data-toggle="tooltip" title="<?php echo $help_limit_admin; ?>"><?php echo $entry_limit_admin; ?></span></label>]]></search> search понимает параметр index , то есть если написать <search index="3"><![CDATA[</label>]]></search> то наш код будет исполняться около 4(!) вхождения </label> на странице - первый элемент это index="0". Старайтесь не использовать это без особой необходимости, кто-то вставит раньше похожий кусочек и все сломается, ваша задача максимально оградить себя от внешних влияний. Без параметра index - операция применится ко всем вхождениям искомой строки в файле Можно искать по части строки, но старайтесь по целой Еще search понимает атрибут trim, но обычно это не применяется на практике Теперь будем наконец-то вставлять код. Берем просто копипастим радиокнопку вместе с текстовым полем и переименовываем переменные в 1 - то что нам надо, 2 - чтобы тот кто откроет после вас понял что имеется ввиду Получается что-то такое Теперь нам нужно вставить это перед блоком, но там div с классом form-group используем before offset="1" - это значит что операция начнет применяться на 1 строку выше той которую мы ищем точно так же работает after - это вставка после искомой строки replace - заменяет искомую строку на то что мы напишем несколько строк одновременно в одной операции поиска искать нельзя! У нас получится такая операция и с этим файлом мы закончили теперь нужно вдохнуть жизнь в переменные У нас здесь 2 переменные настроек это $config_replace_cart_button и $config_replace_cart_button_text а также языковые переменные открываем admin/controller/setting/setting.php и ищем там 2 места где добавляются языковые переменные и непосредственно сохраняются настройки, ищем config_product_count у нас будет 2 операции (можно в одной, но лучше текстовые переменные туда где текстовые, а настройки к настройкам, чтобы выглядело "как родное" Точно так же копипастим код, переименовываем переменные и получаем что-то такое Здесь offset нам не нужен, просто вставляем до и после Всегда проверяйте что то, к чему привязываемся - уникально! Теперь нам нужно добавить языковые переменные, для настроек их можно и тупо в коде написать, но надо стремиться к тому чтобы ваш код не отличался от соседнего и был похож на тот который используется в Opencart. Язык админки у нас может быть разный, но мы сделаем так чтобы везде появились эти языковые переменные и попробуем символ * в пути <file path="admin/language/*/setting/setting.php"> Это значит что наш модификатор пробежится по всем папкам в admin/language и поищет в каждой файл setting/setting.php Можно написать так <file path="admin/language/*/*/set*.php"> или так <file path="admin/*/*/*/setting.php"> Если нужны конкретные языки, давайте попробуем ру и англ и увидим как работают скобочки <file path="admin/language/{ru-ru,en-gb}/setting/setting.php"> это явное указание нескольких папок-файлов в пути в них обоих есть // Text поэтому не будем мудрствовать лукаво И, о чудо, админку для модуля мы написали и она даже работает! Теперь будем делать самое главное - чтобы это все работало Начнем с товара, это контроллер product/product и шаблон по такому же пути В контроллере нам нужно получить статус нашей модификации и текст для кнопки (а еще количество товара на склада) Получаем тут все по отдельности, поэтому статус замены мы можем объединить. Условие будет такое что кол-во не больше 0 и в админке мы включили настройку, нет смысла в шаблоне делать условия, старайтесь все вообще максимально упрощать в разумных пределах $data['replace_cart_button_status'] = $this->config->get('config_replace_cart_button') && $product_info['quantity'] <= 0 ; Все, все данные у нас уже есть, теперь нужно сделать чтобы магия работала в шаблоне Будем считать что мы нашли уникальный элемент во всех шаблонах и используем путь catalog/view/theme/*/template/product/product.tpl Поищем кнопку купить <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button> Пробуем <?php echo $button_cart; ?> , не подходит, оно используется еще в рекомендуемых товарах и если изменится кнопка в товаре - на всех рекомендуемых получим "под заказ" Заменим все целиком и там где название просто выведем нужный текст в зависимости от наших условий, лучше использовать короткий if чтобы оно и смотрелось нормально и не нагромождать if else и тп в и без того длинной строчке обратите внимание - replace - тупо заменяет искомое на требуемое, поэтому я рекомендую если вы меняете что-то в одной строке или ее части, так тоже можно - смотрите чтобы оно было без пробелов и переносов, т.к. поломаете верстку и вас никто не будет любить. Также с большой осторожностью используйте offset в replace - он заменяет нижние строки полностью, потренируйтесь на каком-то простом файле Вуаля. Опять работает когда количество 0 Ну, мы уже опытные модулеписатели. Айда провернем то же самое в категориях А заодно на страничке товаров производителя, поиске и акциях, т.к. контроллеры и шаблоны у них практически идентичны А еще заодно в рекомендуемых товарах на страничке самого товара <file path="catalog/controller/product/*.php"> это значит мы будем искать во всех контроллерах в папке product можно и так <file path="catalog/controller/product/{category,manufacturer,search,special,product}.php"> Напомню, нам нужно получить статус замены текста на кнопке и, собственно, сам текст Итого 5 контроллеров, ищем строки которые встречаются во всех Возьмем к примеру 'name' => $result['name'], это название товара, встречается везде, навредить мы не сможем <file path="catalog/controller/product/*.php"> <operation error="skip"> <search><![CDATA['name' => $result['name'],]]></search> <add position="after"><![CDATA[ 'replace_cart_button_status' => $this->config->get('config_replace_cart_button') && $result['quantity'] <= 0, 'replace_cart_button_text' => $this->config->get('config_replace_cart_button_text'), ]]></add> </operation> </file> Сразу скажу что это не лучший вариант, текст и статус модификации лучше получить где-то до этого цикла товаров и в шаблоне использовать переменные, но наша сейчас цель - понять как работают модификаторы и мы немного уже углубились) Теперь каждый товар будет знать заменять ли текст на кнопке и если заменять то на какой Точно так же ищем кнопку "купить" и заменяем ее на похожую конструкцию за исключением того что у нас будет не просто $replace_cart_button_status а $product['replace_cart_button_status']. В нормальных шаблонах эти места одинаковые, поэтому будем считать что у нас идеальные условия. <file path="catalog/view/theme/*/template/product/*.tpl"> <operation error="skip"> <search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>]]></search> <add position="replace"><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $product['replace_cart_button_status'] ? $product['replace_cart_button_text'] : $button_cart; ?></span></button>]]></add> </operation> </file> вуаля Упс, в карточке товара рекомендуемые используют чуть другой код (разницы в 1 символе хватит чтобы мод не сработал), ничего, мы добавим аналогичную операцию к product.tpl <operation error="skip"> <search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button>]]></search> <add position="replace"><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><span class="hidden-xs hidden-sm hidden-md"><?php echo $product['replace_cart_button_status'] ? $product['replace_cart_button_text'] : $button_cart; ?></span> <i class="fa fa-shopping-cart"></i></button>]]></add> </operation> Как-то это сильно просто Давайте добавим то же самое еще и в модули В опенкарте 4 стандартных дефолтных модуля (последние, рекомендуемые, хиты продаж и акции), проделываем с ними то же самое О, ухты! В модулях используется для названия товара то же самое 'name' => $result['name'], Сделаем по-умному, изменим путь контроллера там где делали в категориях на <file path="catalog/controller/{extension/module,product}/*.php"> и теперь модификатор поищет по обоим путям и добавит переменные везде где нам нужно С шаблоном такое не прокатило, для модулей делаем отдельно <file path="catalog/view/theme/*/template/extension/module/*.tpl"> <operation error="skip"> <search><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>]]></search> <add position="replace"><![CDATA[<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $product['replace_cart_button_status'] ? $product['replace_cart_button_text'] : $button_cart; ?></span></button>]]></add> </operation> </file> Все сделали и ой Почему-то это еще с версии 1.5 живет и никто не осмеливается это менять в контроллере рекомендуемых - не $result а $product_info Делаем исключение и добавляем туда отдельно <file path="catalog/controller/extension/module/featured.php"> <operation error="skip"> <search><![CDATA['name' => $product_info['name'],]]></search> <add position="after"><![CDATA[ 'replace_cart_button_status' => $this->config->get('config_replace_cart_button') && $product_info['quantity'] <= 0, 'replace_cart_button_text' => $this->config->get('config_replace_cart_button_text'), ]]></add> </operation> </file> Все работает, и это было совсем не больно И вот у нас уже готовый модификатор который немного изменив под свои хотелки можно продать за 300р)) super_mod.ocmod.xml Итого краткое резюме: - Всегда проверяйте свое условие search чтобы оно было уникальным и никому не мешало, не привязывайтесь к $category_info или $data['heading_title'] - Используйте offset осторожно, а в replace вообще не используйте - Старайтесь использовать меньшее количество кода, но оставляйте его читаемым - есть еще search regex но это совсем другая история Если что-то сломалось после применения модификатора из папки system нужно всего лишь переименовать его, скажем, в .ocmod.xml_ , т.е. изменить расширение и обновить кеш модификаторов Если сломалась страница обновления модификаторов - нужно очистить папку storage/modification (путь к ней можно подглядеть в config.php) тогда, страничка откроется Это работает если ничего не правилось в кеше модификаторов - но у кого так - тот и сам знает все боли и их не обновляет Это все основано на моем опыте и является моим личным мнением и видением методики написания модификаторов, если у вас есть советы-пожелания - добро пожаловать в комменты Спасибо за внимание, ваш spectre
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.