Как мне получить ссылку на родительский узел в комментариях к узлам в drupal 6?

Я знаю, что идеальное место, чтобы спросить, - это. Я разместил свой вопрос на форуме поддержки drupal и в модуле nodecomments как проблему. Я также последовательно размещал этот вопрос один раз в день в течение последних 3 дней в IRC-канале поддержки drupal.

Нет ответа.

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

drupal-6.12
fivestar-6.x-1.15
nodecomment-6.x-1.2rc2
cck-6.x-2.3
votingapi-6.x-2.0-rc2
views-6x-2.6

Я выполнил инструкции в http://drupal.org/node/234681, хотя модули, которые они использовали были немного устаревшими. Я получил то, что хотел, работая. У меня есть тип узла продукта и тип узла обзора. Затем я использовал nodecomment, чтобы тип узла обзора отображался как комментарий к продукту.

Все идет нормально.

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

Я не возражаю, чтобы родительский узел (узел продукта) отображался в виде хлебной крошки, если есть обратная ссылка на узел продукта. Я купил книгу «Использование drupal», но мне не нравится, как в ней учат выбирать список продуктов для создания обзора. Некоторое время я пытался искать и наткнулся на nodecomment, иерархию узлов и относительность узлов. После долгих экспериментов я остановился на nodecomment, но мне нужна родительская ссылка.

Пожалуйста, порекомендуйте.


person Kim Stacks    schedule 20.06.2009    source источник


Ответы (2)


Вы можете адаптировать метод, описанный в этом руководстве, к своим потребностям: http://www.lullabot.com/articles/photo-galleries-views-attach

Вместо использования nodecomment используйте тип контента 'обзор' с полем ссылки узла CCK на узел 'продукт' (URL ссылки на узел добавит удобную ссылку на узел продукта в форму добавления отзыва с уже установленной ссылкой на узел продукта). Ссылка на узел появится в вашем узле обзора в виде поля с названием продукта, связанного с узлом продукта.

Прикрепить просмотры позволит вам добавить список обзоров в узел продукта.

person gapple    schedule 23.06.2009
comment
Ух ты! спасибо GApple! думать, что использование drupal было написано колыбельными людьми. почему они вообще не использовали метод URL nodereference в этой книге? в любом случае, хотя я не полностью протестировал ваше решение из-за нехватки времени, но я думаю, что это именно то, что я ищу, просто посмотрев видео! у вас есть другие платные ресурсы, или мне стоит поискать кого-нибудь вроде меня в изучении drupal? Я немного знаю php и drupal, но знаю asp.net. Я создаю сайт обзора, который позволяет подключаться к facebook. - person Kim Stacks; 24.06.2009
comment
Использование Drupal было опубликовано в декабре, а модули URL-адресов Views Attach и Nodereference вышли только в январе. Я тоже новенький. Использование Drupal было отличным началом и представило несколько очень полезных модулей. Я нахожусь в процессе разработки Pro Drupal, и, похоже, это будет отличным справочником, но пока у меня было мало времени, чтобы применить его на практике. Видео и подкасты Lullabot также содержат полезную информацию о передовых методах работы. Лучше всего для меня было просто экспериментировать, большинство вещей сложно сломать безвозвратно. - person gapple; 24.06.2009
comment
какие еще книги или ресурсы вы порекомендуете по темам? - person Kim Stacks; 25.06.2009

Патч, на который вы указывали, предназначен для версии 6.x-2.x-dev (когда-нибудь будет nodecomment 2.0 для Drupal 6), и поэтому в вашем случае от него мало пользы, извините.

Вы могли бы просто сделать что-нибудь вроде

<?php print l('Back to product', 'node/' . $node->comment_target_nid); ?>

в вашем node-comment.tpl.php, чтобы получить обратную ссылку на продукт.

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

Вот хороший ресурс по функциям предварительной обработки: Настройка переменных для использования в шаблоне (функции предварительной обработки).

person mikl    schedule 22.06.2009
comment
привет Микл, спасибо за ответ. я уже пробовал это. но это не сработало. ‹? Php print l ('Вернуться к продукту', 'node /'. $ Node-› comment_target_nid); ? ›Есть идеи, почему? - person Kim Stacks; 24.06.2009
comment
спасибо за ответ mikl. Я должен сказать, что ради обучения я хотел бы, по крайней мере, сделать так, чтобы ваше решение тоже работало. могу я спросить, где ИМЕННО вы поместили эту строку в node-comment.tpl.php? ‹Div class = content› ‹? Php print $ content?› ‹? Php print l ('Вернуться к продукту', 'node /'. $ Node-› comment_target_nid); ? ›‹/Div› Я положил это сюда. на самом деле, я тоже пробовал несколько мест. не работает. - person Kim Stacks; 24.06.2009
comment
Что ж, позиция не имеет значения, поскольку переменная доступна в любом месте файла шаблона. - person mikl; 24.06.2009
comment
потом тем более странно, что не получилось. файл, который я изменил, - это sites / all / modules / node-comment / node-comment.tpl.php, это правильный обряд? - person Kim Stacks; 25.06.2009
comment
Нет, если вы меняете файлы шаблонов, вам следует сделать копию и поместить ее в папку своей темы, чтобы убедиться, что она имеет приоритет :) - person mikl; 09.07.2009