Какова наилучшая практика создания динамических боковых панелей или других мест размещения без содержания с помощью рамки 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>