Обзор структуры системы ¶
Структура каталога /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 {
}
Если вы хотите изменить логику какого-либо действия контроллера - переопределите его в коде наследованного контроллера.