Настройка представлений администратора — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Настройка представлений администратора

2020-04-01 137
Настройка представлений администратора 0.00 из 5.00 0 оценок
Заказать работу

Для вывода ссылок для администраторских действий необходимо проверка является ли пользователь администратором. Так как администратор всего один в системе и разделение прав не используется, то достаточно лишь проверки на авторизованность пользователя: if(Yii::app()->user->isGuest).

После того как были выведены все ссылки, были доработаны представления форм с учетом специфики моделей и правил валидации. Для этого использовались статические методы CHtml, ответственные за вывод полей ввода формы. Наиболее часто используемые методы CHtml для форм:

1. CHtml::activeLabelEx(<модель>,<имя св-ва>) - выводит заголовок поля ввода, где заголовок берется из метода attributeLabels модели, а так же помечает его красной *, если оно обязательное(имеет валидатор required).

2. CHtml::activeTextField(<модель>,<имя св-ва>) - выводит текстовое поле ввода.

.   CHtml::activeTextArea(<модель>,<имя св-ва>) - выводит textarea-поле ввода.

4. CHtml::submitButton(<имя кнопки>) - выводит кнопку для отправки формы на сервер.

Для добавления фотографий использовалось расширение SwfUpload, использование которого подробно описано на странице руководства.

Настройка кэширования, многоязычности и «красивых» ссылок

 

После того как все основные действия по доработке каркаса выполнены, осталось добавить поддержку больших нагрузок (кэширования), настроить многоязычность и красивые ссылки.

Для активации кэширования в файле конфигурации было добавлено описание компонента приложения cache с классом CFileCache, отвечающим за хранение кэша в локальных файлах.

Для настройки кэширования в контроллерах использовался компонент COutputCache, описанный в методе filters контроллера:

array(

// Компонент отключен для администраторских действий

'COutputCache -create, update, upload',

// Срок годности

'duration'=>24*3600*365,

// зависимости

'dependency'=>array(

'class'=>'CChainedCacheDependency',

'dependencies'=>array(

// по глобальному изменению pm_time

new CGlobalStateCacheDependency('pm_time'),

// по глобальному изменению cu_time CGlobalStateCacheDependency('cu_time'),

),

),

// данные в кэше отличаются по категории, сортировке, страницам, языку

'varyByParam'=>array('category','sort','page','lang'),

// и по статусу авторизованности пользователя

'varyByExpression'=>'Yii::app()->user->isGuest',

// кэш используется только для GET-запросов

'requestTypes'=>array('GET'),

),

где cu_time - последнее время обновления категорий, а pu_time - товаров и меняются по событию сохранения модели.

Так как, по-умолчанию, приложение уже поддерживает многоязычность с помощью класса CPhpMessageSource, который хранит переводы в php-файлах перевода, то в проекте использовался именно этот способ хранения.

Каждое сообщение перевода относится к какой-либо категории. Сообщения переводов хранятся по следующему пути: protected/messages/<код языка>/<имя категории>.php. Файлы переводы содержат в себе ассоциативный массив, где ключем является фраза на исходном (английский) языке, а значение - переведенное для данного кода (русский, например).

Для перевода сообщения, фреймфорк yii предоставляет статический метод Yii::t(<имя категории>,<сообщение>), а для хранения текущего языка в ссылке в файл конфигурации было подключено стороннее расширение в качестве компонента приложения urlManager: LangUrlManager.

Для активации «красивых», человекопонятных ссылок компонент приложения urlManager был настроен следующим образом:

'urlManager'=>array(

'class'=>'application.extensions.urlManager.CLangUrlManager',

//формировать ссылку в формате /route/p1/v1/p2/v2/...

'urlFormat'=>'path',

'rules'=>array(

// код языка всегда расположен впереди ссылки

'<lang:(en|ru|ro)>'=>'/price',

'<lang:(en|ru|ro)>/<_c>'=>'<_c>',

'<lang:(en|ru|ro)>/<_c>/<_a>'=>'<_c>/<_a>',

'<lang:(en|ru|ro)>/text/index/<page:.*>'=>'text/index',

),

// не выводить index.php в ссылке

'showScriptName'=>false,

),

а в корневой папке сайта (www) был добавлен файл.htaccess с активацией и настройкой mod_rewrite в web-сервере apache:

Options +FollowSymLinks*/*on%{REQUEST_FILENAME}!-f%{REQUEST_FILENAME}!-d. index.php


ЗАКЛЮЧЕНИЕ

 

В Yii вложено много возможностей которые выделяют этот фреймворк на фоне остальных и делают разработку с его помощью очень быстрой и приятной.

Вот небольшой список который стоит выделить:

1. Отличная поддержка. Для русскоязычных пользователей на официальном форуме фреймворка создан собственный раздел где вы всегда можете получить ответы на свои вопросы. Плюс к этому мною было созданно русскоязычное сообщество <http://groups.google.com/group/yii-framework/> которое постоянно пополняется новыми материалами.

.   Помощь от разработчика фреймворка. Большой плюс поддержки Yii - это возможность в любой день пообщаться и задать вопросы разработчику Yii на форуме. Было замечено что он практически каждый день просмотривает и отвечает на вопросы на форуме, помогает советами и полезными "фишками". Вы всегда можете написать ему личное сообщение и быть уверены что получите самый правильный ответ по вашему вопросу. К сожалению, разработчик фреймворка плохо знает русский язык, поэтому сообщения просим излагать ему на английском или китайском.

.   Полная поддержка ООП. Фреймворк полностью заточен под пятую версию php что позволяет поддерживать весь функционал при обьектно ориентированном программировании. Разработчики не пошли на поддержку php4 в ущерб гибкости и удобства ооп. В связи с этим фреймворк не будет работать на php4, но зато отлично покажет себя на php5! Если вы знаете что такое ООП и умеете его использовать в php - тогда Yii лучший выбор для вас.

.   Генератор кода. Yii предоставляет отличный встроенный генератор исходного кода. Указав лишь основные параметры - Yii генерирует для вас общую структуру приложения которая будет содержать все необходимые модели/контроллеры/отображения для старта. В yii версии 1.1 обещают браузерный генератор кода с еще большим функционалом!

.   Темы. Благодаря встроенной поддержке тем вы можете изменять дизайн вашего приложения в пару нажатий клавиш.

.   Защита. Все стандартные классы Yii заточены под высокий уровень безопасности что при умелом обращении позволяет полностью обезопасить свой сайт от Sql-Inj, XSS, CSRF и других атак.

Если честно то перечислять можно долго, и пятнадцатью пунктами список естественно не ограничится. Много из того что написанно выше - и стало для меня стимулом перейти на Yii Framework.


БИБЛИОГРАФИЯ

 

1. Джордж Шлосснейгл.Профессиональное программирование на PHP,2006.

2. Максим Кузнецов, Игорь Симдянов, Сергей Голышев.PHP 5 на примерах. БХВ-Петербург.2005, ISBN: 5-94157-670-6

3. А.Кухарчик. PHP: обучение на примерах. 240 стр., 2004 г. Издательство: Новое знание. ISBN 985-475-050-7

4. Леон Аткинсон, Зеев Сураски. PHP 5. Библиотека профессионала,2006

5. Джон Коггзолл. PHP 5. Полное руководство,2006.


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.