Как правильно создать новую опцию страницы?
Я хочу показывать комментарии узла на отдельной странице, а не на странице узла. Поскольку это всего лишь "архив комментариев", а не активный, я хотел бы получить простое решение без большого модуля или большого количества кода.
Я могу "взломать" node--mytype.tpl.php страница для отображения комментариев, когда "?архив" находится в URI:
$uri = check_plain($_SERVER['REQUEST_URI']);
if (strpos($uri, '?archive') > 0){
print render($content['comments']);
}
else {
print l('View Comment Archive', $uri.'?archive');
}
Это прекрасно работает, даже с пейджером комментариев. Мне любопытно, как будет выглядеть "правильный" способ в Drupal.
2 answers
Я бы использовал для этого модуль Views. Даже если вы не хотите использовать "большой модуль", но представления используются почти на каждом сайте Drupal и позволят вам сделать это без специального кода.
Вот быстрые шаги:
1) Создайте новое представление комментариев с типом отображения "страница" и URL-адресом "узел/%/архивирован"
2) Добавьте контекстный фильтр, который использует "идентификатор содержимого из URL" в качестве аргумента по умолчанию 3) Добавьте "вкладку меню", щелкнув меню и озаглавив его "Заархивирован".
Виола! На ваших узлах будет заархивированная вкладка со всеми комментариями.
Самый простой способ использовать Представления.
Вы можете создать представление над комментариями или создать представление над содержимым, а затем добавить связь к комментариям узла. И у того, и у другого есть свои преимущества и недостатки. Вам просто нужно поиграть с ними, чтобы понять, что лучше всего подходит для вашей ситуации.
С помощью любого метода вы можете использовать любое из обычных средств для добавления представления на свой сайт.