Лучшая практика создания динамической боковой панели с Zend Framework - PullRequest
5 голосов
/ 07 января 2009

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

Ответы [ 4 ]

8 голосов
/ 07 января 2009

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

//$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>

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

0 голосов
/ 07 января 2012
0 голосов
/ 27 октября 2009

Да, ребята, я уверен, что ответ от Code Igniter - правильный подход. На самом деле полезно посмотреть, как это делает КИ, и провести сравнение. Это в основном то же самое в ZF, за исключением того, что вместо «именованного представления» у ZF есть «Partials».

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

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

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

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

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

Пожелай мне удачи Кит

0 голосов
/ 07 января 2009

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