Господа, буду рад услышать ваши советы и критику (что я делаю неправильно).
Значит начал писать приложение (сгенерировал каркас через yiic).
В приложение будет доступ только после авторизации.
Нашел, что это можно сделать так
class Controller extends CController {
protected function beforeAction($action) {
parent::beforeAction($action);
$url = $this->id . '/' . $action->id;
$lurl = is_array(Yii::app()->user->loginUrl) ? Yii::app()->user->loginUrl[0] : Yii::app()->user->loginUrl;
$lurl = ltrim($lurl, '/');
if (Yii::app()->user->isGuest && $url !== $lurl) {
Yii::app()->user->loginRequired();
}
return true;
}
}
Создал контроллер авторизации
class AuthController extends Controller {
public $layout = '//layouts/loginForm';
/**
* Displays the login page
*/
public function actionLogin() {
$model = new LoginForm;
// if it is ajax validation request
if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') {
echo CActiveForm::validate($model);
Yii::app()->end();
}
// collect user input data
if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if ($model->validate() && $model->login())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login', array('model' => $model));
}
public function actionLogout() {
Yii::app()->user->logout();
$this->redirect(Yii::app()->homeUrl);
}
}
В контроллере авторизации переопределил $layout = ‘//layouts/loginForm’;
В этом макете отображается только форма авторизации, больше на странице ничего нет.
После авторизации пользователь попадает в закрытую часть
class SiteController extends Controller {} //стандартный код сгенерированный yyic
Так вот. Когда я только сгенерировал каркас приложения, все работало очень быстро.
Сейчас, когда уже немного переделал, как-то страницы заметно загружаться начали. А я ведь в принципе ничего еще и не сделал.
Скажите, может я что-то непраильно делаю (из того, что я показал)?
Да, и еще, работаю с собственной темой (themes/sd-theme).