Обзор структуры системы

Структура каталога /admin

Панель управления доступна по адресу http://hostname/admin. Ниже приведена структура каталога /admin:

admin/                      каталог Yii Studio
    assets/                 содержит классы для подключения ресурсов приложения   
    base/                   базовые (родительские) классы Yii Studio (Controller, Module, ActiveRecord, ...) 
        admin/              базовые (родительские) классы Yii Studio, для использования только в Панели управления
        api/                базовые (родительские) классы Yii Studio, для использования в приложениях
    behaviors/              встроенные поведения
    commands/               консольные команды
    components/             компоненты системы
    config/                 конфигурационные файлы
        admin.php           конфигурация системы (параметры системного конфига можно заменить в файле your_app/config/web.php)
        console.php         конфигурация консольного приложения
    controllers/            контроллеры
    dumps/                  системные дампы
    mail/                   содержит виды для почтовых отправлений приложения (могут быть переопредены в папке your_app/mail/)
    media/                  содержит css, js, png, ... подключаемые системой
        css/
            admin.css       файл css подключаемый для всей Панели управления
            helpers.css     содержит заготовки стилей
            ...
        img/                картинки
        js/            
            admin.js        файл js автоматически подключаемый для Панели управления
            helpers.js      cодержит частоиспользуемые функции js
            ...
    messages/               файлы переводов для Панели управления
        config.php          конфигурационный файл для генерации файлов переводов
    migrations/             системные миграции
    models/                 модели
    modules/                системные модули
    rbac/                   роли пользователей
    validators/             встроенные валидаторы
    views/                  виды приложения    
    widgets/                виджеты
    AdminModule.php         модуль Панели управления

Соглашение об объектах

Примечание: Принято соглашение, что объекты системы (модели, контроллеры, виды), которые используются в приложениях, определяются в пространствах имен вида namespace admin\...\api и находятся в папках ...api/. Эти объекты следует использовать, наследовать или переопределять в приложении.

Пример некоторых объектов, используемых в приложениях:

admin/                                  каталог Yii Studio
    ...
    controllers/ 
        api/                        
            InstallController.php       Контроллер установки приложения
            SessionController.php       Контроллер работы с переменными сессии
            UserController.php          Контроллер для  регистрации, авторизации, востановления пароля и т.д.
    ...
    models/
        api/  
            LoginForm.php               Модель для авторизации пользователя
            RegistrationForm.php        Модель для регистрации пользователя
            ResetPasswordForm.php       Модель для сброса пароля пользователя
            ...       
    ...
    views/  
        api/
            ...
            user/     
                login.php               Вид используемый для авторизации пользователя
                registration.php        Вид используемый для регистрации пользователя
                resetPassword.php       Вид используемый для сброса пароля пользователя
            ...
    ...

Также, например, вид карточки товара, который подключается по-умолчанию модулем catalog в приложении, находится в папке: admin/modules/catalog/views/*api*/catalog/item.php, а вид карточки товара, используемой для редактирования в Панели управления находится в папке: admin/modules/catalog/views/item/edit.php.

Или, например, контроллер отвечающий за работу комментриев, находится в папке: admin/modules/comment/controllers/*api*/CommentController.php. Для добавления пользователям возможости оставлять комментарии, добавьте виджет комментариев в вид нужной страницы:

<?
    echo admin\modules\comment\widgets\Comment::widget([
        'model' => $item,
        'dataProviderConfig' => [
            'pagination' => [
                'pageSize' => 20
                ],
            ]
        ]);
?>

Затем создайте в папке your_app/controllers/ файл CommentController.php с содержимым (данный контроллер будет обрабатывать действия виджета комментариев):

<?

namespace your_app\controllers;

class CommentController extends \admin\modules\comment\controllers\api\CommentController {
    
}

Если вы хотите изменить логику какого-либо действия контроллера - переопределите его в коде наследованного контроллера.