Лучшая практика создания динамической боковой панели с помощью zend framework

Какова наилучшая практика создания динамических боковых панелей или других мест размещения без содержания с помощью рамки zend. В этот момент я создал контроллер, который я назвал WidgetsController. В этом контроллере я определил некоторые действия с сегментом ответа «боковой панели» для моей боковой панели, а в IndexController я вызываю их с помощью $ this-> view-> action (); но я не думаю, что это лучшая практика для создания динамической боковой панели. Спасибо за ваши ответы.

У вас вопрос не содержит много деталей. Как правило, я бы сказал, загрузите боковую панель в виде шаблона просмотра, используя рендеринг / частичные методы представления. Итак, изнутри вид:

//$data is dynamic data you want to pass to the sidebar echo $this -> partial('/path/to/sidebar.phtml',array('menuitems' => $data)); 

И тогда боковая панель может обрабатывать эти динамические данные:

 //sidebar.phtml <div id="sidebar"> <?php foreach($this -> menuitems as $item) : ?> <a href="<?php echo $item['url']; ?>"><?php echo $item['title']; ?></a> <?php endforeach; ?> </div> 

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

Это работает для ZF 1.11: реализация динамической боковой панели в Zend Framework

Да, люди, моя ставка заключается в том, что ответ от людей с воспламенением кода – правильный подход. На самом деле его полезно видеть, как CI делает это просто, и проводить сравнения. Это в основном то же самое в ZF, за исключением того, что вместо «named view» ZF имеет «Partials».

ZF просто имеет более навязываемую дисциплину, такую ​​как макеты + представления + частичные части и более внутренние механизмы для ее реализации, что на самом деле заставляет ее работать в два раза быстрее, тогда как код-воспламенитель просто сглаживает весь этот аппарат на «именованные виды».

(Я еще не решил, стоит ли ZF переваривать его или некоторые стейки CI должны оставаться сырыми в середине).

Если вы используете $ navigation-> setPartial (blah blah), тогда массив leadup (технически этот вид данных представляет собой «модельную» часть объекта MVC) и становится доступным для частичного.

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

Я как раз собираюсь пойти на это сам, я сделал поиск по частичным в разделе помощников в Справочнике Zend, чтобы найти это, хотя примеры немного тонкие.

Желаю мне удачи Кейт

Мы хотели бы получить более подробную информацию, например, какой контент отображается в боковых панелях, как вы их показываете (например, используя <ul> , <div> или что-то еще), это содержимое, полученное из базы данных и т. Д.

В CodeIgniter, который также использует формат Model, View, Controller , мы создаем представление под названием «sidebar.php», а в представлении « Header мы включаем вызов этого вида боковой панели, то есть:

 <html> <head>.......</head> <div id="header">....</div> <?php $this->load->view('sidebar');?> 

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

 <ul> <?php $items=$this->some_model->getMenuItems(); foreach ($items as $item): ?> <li><a href="<?=$item['url'];?>"><?=$item['text'];?></li> <?php endforeach;?> </ul>