Как управлять меню сайта

Допустим, я хочу добавить на сайт пункт меню "Register", что для этого надо сделать ?

Я понимаю, что для данного пункта надо будет создать в соответствующих папках:

  • модель,

  • действие контроллера,

  • представление.

Но что надо сделать, чтобы этот новый пункт меню засветился на сайте ?

С уважением - Новичек.

Скорее всего в layout’е надо будет добавить такую штуку




<?

if(Yii::app()->user->isGuest) {

?>


<a href="/register">Register</a>


<? } ?>



ну а дальше пиши экшен который будет обрабатывать это действие, и все остальное что надо )

Я видел, конечно, в шаблоне main.php как пункты меню попадают на браузер, но думал,

что yii предусматривает какие-то механизмы автоматической генерации изменений в шаблон…

Если все реализовано так, как вы сказали, то получается, что низший "атомарный", так сказать,

элемент в yii представлен шаблоном…

Очень хорошо, большое вам спасибо.

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

Большое спасибо.

Если у вас есть время, намекните, где копать в такой вот ситуации(два часа уже бодаюсь…)

Рассматриваю пример создания блога, действие - контакт.

Здесь предусмотрена верификация - captcha.

У меня почему-то не генерируется сам код верификации - там, где должен быть код, пусто.

Запускаю то же самое в testdrive - все нормально.

Взял из testdrive и полностью скопировал в blog файлы контроллера, модель для контакта и представление для контакта.

Не помогает…

Смотрю в представление и вижу код, отвечающий за вывод captcha -

<?php if(extension_loaded(‘gd’)): ?>

&lt;div class=&quot;row&quot;&gt;


    &lt;?php echo &#036;form-&gt;labelEx(&#036;model,'verifyCode'); ?&gt;


    &lt;div&gt;


    &lt;?php &#036;this-&gt;widget('CCaptcha'); ?&gt;


    &lt;?php echo &#036;form-&gt;textField(&#036;model,'verifyCode'); ?&gt;


    &lt;/div&gt;


    &lt;div class=&quot;hint&quot;&gt;Please enter the letters as they are shown in the image above.


    &lt;br/&gt;Letters are not case-sensitive.&lt;/div&gt;


&lt;/div&gt;


&lt;?php endif; ?&gt;

Получается, что этот метод-

$this->widget(‘CCaptcha’);

не выдает то, что от него требуется…

Но почему все работает в testdrive ?

С уважением - Новичек.

Вы уверены, что не срабатывает widget? Может все-таки не подключено PHP расширешение GD?

PHP расширешение GD - Подключено !

Решение просто поразительное - гляньте, пожалуйста пой пост "Просто чудеса…"

С уважением - Новичек.