Модули

Встроенные модули системы

Каталог admin\modules\catalog\CatalogModule

Иерархическая структура категорий и элементов. Настройка произвольных свойств категорий и элементов.

Корзина admin\modules\shopcart\ShopcartModule

Работа с корзиной, оформление заказа, управление своими заказами. Изменение статусов заказа в Панели управления, отправка уведомлений пользователю.

Службы доставки admin\modules\delivery\DeliveryModule

Создание, удаление, редактирование служб доставки, привязка способов оплаты к службам доставки, ограничение по минимальной цене заказа при использовании службы доставки.

Способы оплаты admin\modules\payment\PaymentModule

Ручной - без онлайн-оплаты, статус "Оплачено" меняется только через Панель управления; Автоматические: прием денег через Яндекс.Деньги, Яндекс.Касса.

Акции admin\modules\sale\SaleModule

Управление акциями магазина, автоматическое создание баннера акции.

Страницы admin\modules\page\PageModule

Управление страницами сайта, название, текст, SEO.

Комментарии и оценки admin\modules\comment\CommentModule

Пользовательские комментарии с привязкой к комментируемому объекту, модерация комментариев администраторами, "star" рейтинг, от 0 до 5 баллов.

Экспорт/импорт admin\modules\yml\YmlModule

Импорт каталогов в формате YML, импорт категорий, элементов, новостей, пользователей в формате Excel, экспорт каталога в Excel, YML.

SEO admin\modules\seo\SeoModule

SEO шаблоны для title, h1, description, keywords.

Карта сайта admin\modules\sitemap\SitemapModule

Автоматическая генерация карты сайта.

Статьи admin\modules\article\ArticleModule

Иерархическая структура разделов и статей, краткий текст, полный текст, количество просмотров, прикрепление тегов, прикрепление фотографий.

Новости admin\modules\news\NewsModule

Иерархическая структура новостей, краткий текст, полный текст, количество просмотров, прикрепление фотографий.

Обратная связь admin\modules\feedback\FeedbackModule

Форма обратной связи, ответ из Панели управления, заказ обратного звонка.

Вопросы и ответы (FAQ) admin\modules\faq\FaqModule

Раздел частозадаваемых вопросов.

Файлы admin\modules\file\FileModule

Управление публикуемыми файлами, доступ, формирование ссылки на скачивание.

Фотогалерея admin\modules\gallery\GalleryModule

Модуль управления фотогаллереями.

Гостевая книга admin\modules\guestbook\GuestbookModule

Записи на сайте, модерация.

HTML-блоки admin\modules\block\BlockModule

Произвольный HTML-код, поддержка "live-edit".

Карусель admin\modules\carousel\CarouselModule

Фотогаллерея на главной странице с различными эффектами прокрутки.

E-mail рассылка admin\modules\subscribe\SubscribeModule

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

Страница управления модулями в Панели управления.

Страница управления модулями в Панели управления

Создание модулей

Для добавления модуля в интерфейс Панели управления системы, перейдите Панель управления - Модули, кнопка Создать. Укажите код, название, путь к классу и иконку модуля.

Страница основных настроек модуля в Панели управления.

Страница основных настроек модуля в Панели управления

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

Стандартные модули системы размещается в директории admin\modules\. Модули приложения можно разместить в директории your_app\modules\.

Структура стандартного модуля системы (например, модуль Корзина):

shopcart/                   корневая папка модуля    
    api/                    API-объекты модуля (для поддержки Live-edit)
    commands/               консольные команды модуля
    controllers/            контроллеры модуля
    export/
    helpers/                хелперы модуля    
    mail/                   содержит виды для почтовых отправлений модуля (могут быть переопредены в папке your_app/mail/)
    media/                  содержит css, js, png, ... подключаемые модулем
    messages/               файлы переводов
    migrations/             миграции модуля
    models/                 модели модуля   
    views/                  виды модуля
    ShopcartModule.php      файл класса модуля (в нем определяются настройки модуля)

Классы модулей

Каждый модуль объявляется с помощью уникального класса, который наследуется от \admin\base\Module.

Пример класса модуля Корзина:

<?
namespace admin\modules\shopcart;

class ShopcartModule extends \admin\base\Module
{
    public $settings = [
        'notifyAdmin' => true,
        'subjectNotifyAdmin' => 'Новый заказ №##order_id##',
        'templateNotifyAdmin' => '@admin/modules/shopcart/mail/ru/notify_admin',
        'subjectNotifyUser' => 'Заказ №##order_id##',
        'templateNotifyUser' => '@admin/modules/shopcart/mail/ru/notify_user',
        'frontendShopcartOrderRoute' => '/shopcart/order',
        'frontendShopcartRoute' => '/shopcart',
        'enableName' => true,
        'enablePhone' => true,
        'templateShopcartIndex' => '@admin/modules/shopcart/views/api/shopcart/index',
        'templateShopcartOrder' => '@admin/modules/shopcart/views/api/shopcart/order',
        'templateShopcartOrders' => '@admin/modules/shopcart/views/api/shopcart/orders',
        'templateShopcartSuccess' => '@admin/modules/shopcart/views/api/shopcart/success',
        'templateShopcartSuccessGuest' => '@admin/modules/shopcart/views/api/shopcart/success_guest',
        'templateShopcartSuccessPayment' => '@admin/modules/shopcart/views/api/shopcart/success_payment',
        'templateShopcartFast' => '@admin/modules/shopcart/views/api/shopcart/fast',
        'modelExportOrderToExcel' => 'admin\modules\shopcart\export\OrderToExcel',
    ];

    public static $installConfig = [
        'title' => [
            'en' => 'Orders',
            'ru' => 'Заказы',
        ],
        'icon' => 'shopping-cart',
        'order_num' => 101,
    ];
}