Как позволить Zend отображать динамический нижний колонтитул на каждой странице? - PullRequest
1 голос
/ 06 апреля 2010

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

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

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

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

Вот пример для тегов. Создайте файл 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 голосов
/ 06 апреля 2010

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

0 голосов
/ 06 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...