Контроллеры, Помощники действий или Просмотр помощников для многоуровневого интерфейса с вкладками - PullRequest
0 голосов
/ 25 ноября 2010

Этот вопрос связан с вопросом здесь , касающимся наилучшей практики работы с интерфейсами с вкладками. В нем упоминалась запись в блоге под названием «Почему Zeta Framework Actionsck is Evil», в которой говорилось, что вы должны использовать частичные компоненты и просматривать помощники для элементов, которые будут использоваться повторно. Это нормально, пока элемент не обработает какой-либо ввод, и в этом случае помощники представления не являются ответом. Именно здесь вы используете помощников действий, Мэтью Вейер О'Пинни рассказывает об одном случае использования этого в своем блоге под названием «Использование помощников действий для реализации многократно используемых виджетов».

После прочтения этих точек зрения мне кажется, что я не совсем понимаю, как лучше всего работать с моим интерфейсом. Сайт будет состоять из трех основных вкладок: «Случаи», «Персонал» и «Отделы». Каждая из этих вкладок будет иметь похожий макет, состоящий из таблицы выбора / поиска, сводки (Case | Staff | Department), а затем другой области с вертикальным меню вкладок. Основные вкладки будут иметь некоторые элементы вертикальной вкладки, которые идентичны, за исключением отображаемой информации.

Вопрос в том, как мне структурировать представления, помощники и контроллеры вокруг этого интерфейса. Я думал о наличии индекса, дела, персонала и контролера отдела. Создание помощника действий, который будет повторно использовать представление для каждой основной вкладки, но использовать данные запроса для определения выбранного в данный момент (Case | Staff | Department). Использование отдельных контроллеров вкладок для обработки jQuery ajax-запросов на содержимое вертикальной вкладки и передачи вывода вспомогательному представлению, которое будет повторно использовать общее представление. А также используйте отдельные контроллеры вкладок для обработки операций jQuery ajax crud.

Это лучший способ сделать это, или есть более эффективные методы?

1 Ответ

1 голос
/ 25 ноября 2010

Я бы создал отдельные контроллеры для каждой из трех ваших основных вкладок. Описанные вами вертикальные вкладки будут соответствовать действиям на этих контроллерах.

Для рендеринга всех этих навигационных вкладок - верхнего уровня и вертикали - звучит как ответ .... Zend_Navigation ( больше информации ).

Вы можете поместить все структурированные навигационные данные - возможно, прочитанные из INI-файла, из XML-файла или даже из структурированного массива - в один контейнер Zend_Navigation и затем отобразить «активную» ветвь.

...