Реализация динамической боковой панели в Zend без вызова дополнительного действия - PullRequest
1 голос
/ 30 ноября 2009

В настоящее время пытаюсь найти «лучшую практику» для сайта ZF, которая будет элегантной и эффективной. То, что я пытаюсь сделать, это просто сгенерировать данные для боковой панели.

В паре связанных вопросов и в других источниках был выбран следующий метод: вызвать другое действие из части боковой панели вашего макета или добавить действие боковой панели в помощник стека действий. Они казались очень элегантными, но добавляли дополнительный запрос к циклу диспетчеризации, который очень плохо работал.

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

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

Если под боковой панелью подразумевается навигация, ознакомьтесь с относительно новым компонентом Zend_Navigation , который поставляется с помощником вида .

2 голосов
/ 30 ноября 2009

Привет, есть много разных способов. Я бы использовал плагин FrontController, который отправляет содержимое боковой панели в скрипт макета. Примерно так:

/**
 * layout script
 */
<?php echo $this->sidebar; ?>

/**
 * Plugin
 */
class My_Plugin_Sidebar extends Zend_Controller_Plugin_Abstract {

    /**
     * preDispatch()
     *
     * @return void
     */
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        $layout = Zend_Layout::getMvcInstance();

        $nav = new My_Model_Menu();
        $entries = $nav->getEntries();

        $html = '<h2> my sidebar </h2>';

        foreach ($entries as $e) {
            $html .= '<li>' . $e . '</li>';
        }

        $layout->sidebar = $html;

    }

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