Створення портлетів користувальницького меню ============================================ Грунтуючись на аналізі вимог, нам необхідні три портлети: «користувальницьке меню», «хмара тегів» та «останні коментарі». Ми реалізуємо їх, розширивши віджет [CPortlet](http://www.yiiframework.com/doc/api/CPortlet), що входить до складу Yii. У цьому розділі ми розробимо свій перший портлет — портлет користувальницького меню, який відображає список пунктів меню, доступних тільки аутентифікованим користувачам. Меню містить чотири елементи: * Ухвалити коментар: гіперпосилання, що веде до списку коментарів, які очікують схвалення; * Створити новий запис: гіперпосилання, що веде до сторінки створення запису; * Управління записами: гіперпосилання, що веде до сторінки управління записами; * Вихід із системи: кнопка, при натисканні на яку поточний користувач виходить із системи. Створення класа `UserMenu` ------------------------- Ми створюємо клас `UserMenu` для представлення логічної частини портлетів користувальницького меню. Клас зберігається у файлі `/wwwroot/blog/protected/components/UserMenu.php`: ~~~ [php] Yii::import('zii.widgets.CPortlet'); class UserMenu extends CPortlet { public function init() { $this->title=CHtml::encode(Yii::app()->user->name); parent::init(); } protected function renderContent() { $this->render('userMenu'); } } ~~~ Клас `UserMenu` успадковується від класу `CPortlet` із бібліотеки `zii`. Він перевизначає методи `init()` та `renderContent()` класу `CPortlet`. Перший встановлює імʼя поточного користувача у якості заголовку портлета, а другий генерує зміст портлета, рендерингом представлення `userMenu`. > Tip|Підказка: Зауважимо, що ми явним чином підключаємо клас `CPortlet`, викликаючи `Yii::import()` до першого звернення до нього. `CPortlet` є частиною офіційної бібліотеки розширень `zii`, класи якої не підключаються автоматично з міркувань продуктивності. Створення представлення `userMenu` ---------------------------------- Потім ми створюємо представлення `userMenu`, збережене у файлі `/wwwroot/blog/protected/components/views/userMenu.php`: ~~~ [php]