2010-04-06 3 views
1

В приложении, которое я создаю, я хотел бы иметь приятный нижний колонтитул с данными из базы данных (теги) и контактной формы. Все части написаны сценарием, но теперь я хотел бы собрать их все вместе. Элементы нижнего колонтитула одинаковы для каждой загруженной страницы, только контент отличается.Как заставить Zend визуализировать динамический нижний колонтитул на каждой странице?

Как я могу это сделать, не накладывая слишком много кода на каждый контроллер?

ответ

1

view helpers. Создайте помощник для каждой динамической информации, например тегов. И тогда вы можете получить его вывод непосредственно на представление. Это позволяет избежать ненужного кода в контроллере.

Вот пример тегов. Создать Tags.php файл, содержащий:

class Zend_View_Helper_Tags extends Zend_View_Helper_Abstract { 

    public function tags() { 
     // build an array with all the tags and return it 
    } 
} 

И теперь на вашем footer.phtml вы можете использовать это как:

<?php $allTags = $this->tags(); 
foreach ($allTags as $tag) { ?> 
    <a href="<?php echo $tag['url']; ?>"><?php echo $tag['name']; ?></a> 
<?php } ?> 

Вы можете использовать partialLoop(), чтобы получить более чистый вид.

+0

Спасибо за очень полезный ответ! Я сделал это так :-) – koko

0

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

0

Лучший способ сделать это - фактически использовать компонент Zend_Layout для реализации двухэтапного шаблона просмотра. Это означает, что вы выполняете обычный просмотр в обычном режиме, но затем у вас есть Zend_Layout, чтобы получить этот вывод и разместить его в общем шаблоне. Этот общий шаблон будет содержать ваш нижний колонтитул. Zend_Layout Quick Start

Смежные вопросы