Как правильно создать новую опцию страницы?


Я хочу показывать комментарии узла на отдельной странице, а не на странице узла. Поскольку это всего лишь "архив комментариев", а не активный, я хотел бы получить простое решение без большого модуля или большого количества кода.

Я могу "взломать" 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.

 1
Author: kiamlaluno, 2012-04-13

2 answers

Я бы использовал для этого модуль Views. Даже если вы не хотите использовать "большой модуль", но представления используются почти на каждом сайте Drupal и позволят вам сделать это без специального кода.

Вот быстрые шаги:

1) Создайте новое представление комментариев с типом отображения "страница" и URL-адресом "узел/%/архивирован" enter image description here

2) Добавьте контекстный фильтр, который использует "идентификатор содержимого из URL" в качестве аргумента по умолчанию enter image description here 3) Добавьте "вкладку меню", щелкнув меню и озаглавив его "Заархивирован".

Виола! На ваших узлах будет заархивированная вкладка со всеми комментариями.

enter image description here

 3
Author: acouch, 2012-04-13 20:08:33

Самый простой способ использовать Представления.

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

С помощью любого метода вы можете использовать любое из обычных средств для добавления представления на свой сайт.

 3
Author: mpdonadio, 2012-04-13 20:06:23