Ты можешь создать контроллер AdminController.php для админки Не вижу проблемы, я вообще по отдельному контролеру на таблицу использую (когда надо операции создания, удаления, изменения). В общем контролеров у тебя может быть много.
А что с AJAX тебе непонятно? Ты можешь запрашивать аяксом любой урл…
например мне нужно получить какието JSON данные index.php?r=site/getjson, получается что мне нужно в контролере SiteController.php написать функцию getjson?
Как то гладко все получается, заюзай сколько хочешь контролеров, настройки лупи для всех одни те же, компонетный сами подтянутся. Осталось получать от этого только профит.
Просто называй контролеры админки как-то так, что бы тебе было понятно, что там админка, и используй в них проверки на авторизацию и наличие нужных прав.
Допустим, Я вижу в этом здравый смысл, все таки админка использует много чего своего, например, свою тему, которая не связана Frontend’ом.
Поэтому я в корне создал директорию admin и туда положил config/admin.cfg.php (конфигурация, для админа) и index.php
define('MAINDIR', dirname(__FILE__));
$yii = MAINDIR.'/../framework/yii.php';
$config = MAINDIR.'/config/admin.cfg.php';
defined('YII_DEBUG') or define('YII_DEBUG',true);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
require_once($yii);
Yii::createWebApplication($config)->run();
Вопрос в следующем, как сделать единую авторизацию для Backend и Frontend ? Для Backendа она принудительная и только администраторы могут входить, а для Frontend она по желаю пользователя.
Уважаемый Unsiker! Вдумчивое прочтение мануалов (возможно не однократное) гарантировано снимет массу вопросов. Проверено на себе. Абсолютно точно с этого надо начинать.
Гайд + API - держать "под рукой", постоянно заглядывать.
Не помешает разобрать (не просто просмотреть, а повторить, самостоятельно сделать по описанию) пару-тройку демо-приложений (не только из официальных, в том числе и демо-блог, но и распространяемых… сейчас, благо таких достаточно)
Один из простых вариантов организации админки (на мой взгляд) - модулем.
modules/admin - создать при помощи gii модуль админ
Все контроллеры админки наследовать от, например, AdminController (в нём задать accessControl, при необходимости переопределять его в дочерних контроллерах)
Редактирование моделей (например, категорий) - admin/categories - генерировать CRUD при помощи gii (не забыть указать admin/ - тогда генератор разместит код в соответствующий модуль)