Создание нового шаблона для блока (на основе «Мой профиль»)

Создание нового шаблона для блока (на основе «Мой профиль»)

Стандартная функциональность CS-Cart и Multi-Vendor включает блок «Мой профиль» , который содержит:

  • Быстрый доступ к заказам и загрузкам
  • Кнопки для регистрации и авторизации покупателей
  • Отслеживание заказа
  • Полезные ссылки для покупателей

Блок “Мой профиль” может быть отображен как:

Всплывающий блок Простой блок в любом месте сайта

Что будем делать

Мы создадим новый шаблон для блока «Мой профиль» на основе существующего. У блока будет два шаблона, выбор шаблона будет доступен в панели администратора. Новый шаблон блока будет выполнять одну единственную функцию — отследить заказ.

Другими словами новый шаблон, будет обрезанной копией существующего шаблона. Однако это не помешает вам добавить по данному любой код в новый шаблон.

Обычный шаблон Дополнительный шаблон

В панели администратора:

Было Стало

Чем будет полезен данный урок?
  1. Как формируются и подключаются блоки и шаблоны блоков.
  2. Как создавать свои блоки или шаблоны на основе стандартных блоков.
  3. Как расширить сущестующий блок с помощью модуля.

Анализ

Каждый блок в CS-Cart или Multi-Vendor имеет:

Шаблон который отображается на витрине

Содержит информацию о блоке, необходима чтобы блок стал доступен в платформе.

Анализируем существующий блок «Мой профиль» Поиск TPL шаблона

Нам нужно найти как формируется и отображается существующий блок «Мой профиль», чтобы потом сделать его дубликат и изменить содержимое.

Проходим в «Редактирование макетов» панели администратора.

Верхнее меню → Дизайн → Макеты

Создаём новый блок «Мой профиль» или находим существующий:

Открываем параметры блока, нажав на шестерёнку.

Нас интересует настройка «Шаблон». Данная настройка позволяет выбрать шаблон из доступных. По умолчанию шаблон всего один.

Да, шаблон называется «Мой профиль», однако если посмотреть код, то можно узнать фактическое название и расположение подключаемого шаблона.

Смотрим код списка.

Значение value для элемента списка равно blocks/my_account.tpl

Таким образом мы узнали какой шаблон будет подключен на витрине.

Все шаблоны дизайна витрины находятся в папке:

Проходим в данную папку.

Как мы узнали ранее, нас интересует шаблон blocks/my_account.tpl .

Находим и открываем файл:

Добавим <p>Test</p> , чтобы проверить правильный ли блок мы нашли.

Проверяем отображение на витрине:

Слово Test появилось. Отлично, нужны шаблон найден.

Обязательно включите “Автоматическую очистку кэша” или очищайте кэш вручную.

Поиск PHP схемы блока

PHP схема описывает настройки блока и шаблона. Без PHP схемы блок не будет работать и не будет доступен в панели администратора.

PHP схемы стандартных блоков находятся в папке:

PHP схемы блоков и шаблонов которые добавляют модули и аддонов находятся в папке:

Приступим к поиску PHP схемы блока «Мой профиль»:

Проходим в папку:

Схемы блоков содержатся в файле blocks.php

Видим массив с данными блоков. Находим ячейку с информацией о блоке «Мой профиль». Так как мы знаем название шаблона, то ищем по названию шаблона my_account . Названия ячеек соответствуют типу блока, поэтому найти нужный не сложно.

Проверим, правильно ли мы нашли схему.

Логично что, за подключение шаблонов отвечает ячейка templates . Она представляет из себя массив с перечисленными шаблонами (по умолчанию один). Добавим ещё одну строчку, по аналогии с существующей.

Проверяем в параметрах блока панели администратора. Должен появится ещё один шаблон:

Он пока не имеет названия, поэтому называется исходя из схемы.

Схема найдена. Возвращаем всё к первоначальному виду. Дальше будем вносить изменения с помощью нового модуля.

Результат анализа

В результате мы определили, что для блока «Мой профиль» используется:

  1. Шаблон /design/themes/[название_темы]/templates/blocks/my_account.tpl
  2. PHP схема app/schemas/block_manager/blocks.php которая подключает данный шаблон и создаёт новый блок.

Приступим к модификации.

Модификация

Мы будем добавлять новый шаблон для блока «Мой профиль» с помощью модуля «Мои изменения».

«Мои изменения» — стандартный модуль для ваших модификаций и расширений. По умолчанию данный модуль не выполняет никаких функций, новые функции можете добавлять вы.

  1. Создадим новый шаблон который будет отображаться на витрине.
  2. Расширим PHP схемы, чтобы у существующего блока «Мой профиль» появился новый шаблон.
  3. Добавим несколько языковых переменных, чтобы названия шаблона правильно отображались.
Создадим новый шаблон

Все шаблоны модулей расположены в папке:

Как узнать id модуля читайте тут: Создание модуля

Пройдите в папку /design/themes/[название_темы]/templates/addons/

Создайте папку my_changes , для шаблонов модуля «Мои изменения» (если ещё не создана).

Создайте папку blocks в папке my_changes , чтобы в итоге получилась структура:

Создайте новый файл track_orders.tpl в только что созданной папке.

Чтобы получился новый файл расположенный в:

Откройте файл и вставьте тестовый код. Полный код вставим позже, когда всё будет работать.

Шаблон создан, теперь необходимо создать схему для подключения нового шаблона.

Расширим PHP схему

Ранее мы выяснили, что нужно расширять схему app/schemas/block_manager/blocks.php

Откройте папку модуля «Мои изменения»:

Нам нужно повторить структуру папок аналогично app/schemas/block_manager/ , только app заменится на путь модуля.

Создайте новый файл blocks.post.php .

Делаем вывод о логике и закономерности для расширения любой схемы:

Оригинал app/schemas/block_manager/blocks.php Расширение app/addons/my_changes/schemas/block_manager/blocks.post.php

Открываем созданный файл и вставляем код для расширения стандартной схемы:

Работаем как с обычными php массивами.

Проверяем. Для этого используем функцию fn_print_r() .

Перезагружаем страницу “Редактирования макета” в панели администратора.

Должны отобразится две схемы, во второй должен быть путь к новому шаблону, который мы добавили.

Убираем отладочные функции fn_print_r .

Всё схема расширена.

Открываем параметры блока «Мой профиль» в панели администратора.

Смотрим список шаблонов, должен появится наш новый шаблон.

Как видите, сейчас он называется my_block_track_orders , такое “неправильное” название связано с тем что:

Шаблон новый и нет языковой переменной для названия блока.

Когда мы создали тестовый шаблон, мы указали:

именно данная строчка сообщает платформе, какую языковую переменную использовать для шаблона.

Создадим языковую переменную my_block_track_orders с помощью модуля «Мои изменения».

Добавим строки, которые создают языковые переменные при установке модуля.

Преустановите и включите модуль «Мои изменения» в панели администратора.

Опять открываем параметры блока «Мой профиль» в панели администратора.

Смотрим список шаблонов, должно появится правильное название.

Также, языковую переменную можно просто создать в панели администратора, на странице «Переводы».

Создадим новый блок с новым шаблоном и разместим его в левой колонке.

Вид блока «Мои профиль», назовём его «Отлеживание заказов» и выберем шаблон «Мой шаблон: Отслеживание заказов»

Проверяем новый блок на витрине.

Всё правильно, отобразился текст который мы добавили в наш новый шаблон.

Приступаем к редактированию нового шаблона, добавим форму отслеживания.

Добавляем форму отслеживания в новый шаблон

Мы создали схему для нового шаблона и заготовку самого шаблона. Пока там только простой текст. Добавим необходимую форму.

Форму мы возьмём из стандартного блока «Мой профиль».

Открываем стандартный шаблон блока «Мой профиль».

Находим блок кода отвечающий за отображения формы отслеживания заказа.

Открываем созданный нами шаблон «Отслеживание заказов».

Вставляем код формы, чтобы шаблон получился такого вида:

Переходим на витрину и проверям новый блок.

Результат

Новый шаблон для блока «Мой профиль», который вы можете использовать в любом месте вашего сайта.

По аналогии возможно создание новых блоков и расширение существующих блоков.

📎📎📎📎📎📎📎📎📎📎