Как организовать модуль так, чтобы его можно было удобно администрировать?

Привет. Хочу сделать модуль новостей, ибо готового решения не нашел (есть блоги, это да). Задачи модуля ясны из названия.

Возникает вопрос как его потом администрировать. В админке в разделе "Новости" ясно, что будет какой-то список новостей, можно будет нажать на новость и отредактировать ее. Я бы хотел добавить возможность предварительно просмотреть новость, то есть показать заголовок, текст новости и теги, но без комментариев, лайков и прочей фигни, которая должна быть в нормальном view новости для посетителя на сайте.

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

За получение пользователем новости будет отвечать action вроде fullAction(), а за редактирование что-то вроде editAction(). Разные контроллеры, разные view.

Проблема в том, что придется копи-пастить view одного action в view другого. А если редактировать дак вообще жесть. Поменял что-то в одном, придется поменять и в другом.

В итоге вопрос: как нужно организовать такой модуль, чтобы не нужно было копировать вьюхи (ибо это не круто и ваще) или как можно подключать в одном вью другой. И сделать как бы еще один вью, хелпер, в котором будет чисто новость выводится, в edit просто выводить этот хелпер, а в full выводить хелпер + комменты + еще что-то (слово хелпер использовано без понимания того, что значат хелперы в zf2, просто подходит по смыслу, кажется).
  • Вопрос задан
  • 2629 просмотров
Пригласить эксперта
Ответы на вопрос 1
viktorvsk
@viktorvsk
Ну вообще, то, что вы описываете, похоже на partial шаблонизатора
С php знаком слабо. В Rails все понятно.
В php простейшие "партиалы" у меня получались так:
class View{
public function render($template, $locals=array()){
ob_start();
extract($locals);
$View = new View();
include("/path/to/partials/${template}.php");
return ob_get_clean();
}
}

fullAction:
echo $View->render('news', array('action'=>'edit));


Можно рендерить партиал в партиале.
Только замечу, что решение ужасное, т.к. не особо в теме. Но вот в Rails эти вещи решают хелперы form builder и шаблонизаторы. Думаю, в любом php фреймворке есть что-то аналогичное
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы