У меня в конце документов выводятся несколько модулей:
- социальные закладки
- подписка
- голосование
Нужно как-то поменять их местами, допустим, голосование переместить на самый верх. Не могу нигде найти в самих модулях, ни в настройках Друпала. Может модуль есть какой занимающийся этим?
Комментарии
Если модули выводят блок, то на странице управления блоками, можно установить их порядок по весам.
Если же надо организовать вывод блока выше основного контента страницы, то подыщите тему в которой есть регион Content top. Можно посмотреть как это там сделано и взять нужный код. Либо справка http://drupal.org/node/29140
Если я правильно понимаю, это все выводится как линкс в конце ноды. Для того чтобы поменять их местами, можно использовать сниппеты. http://drupal.org/node/134442
Что значит "в конце документов выводятся несколько модулей"?
Уже два ответа, а автор молчит.
Такое дело, что в самой ноде обычно идет текст, а после всего модули ставят свои данные, вот адрес для примера - пример, там после текста идёт список сервисов закладок, после идет ссылка на добавление страницы в подписки (наверное только у зареганых пользователей, не уверен), а ниже идет голосовалка в виде звездочек. Выглядит не очень, хотелось бы поменять местами.
Можно попробовать изменить вес. Если не получится вручную, то программно
Я искал вес, вручную нигде нет, ни в настройках самих модулей, не в обычных настройках Друпала. А программно я не потяну, не разбираюсь. Я вот думаю, что есть всё же модуль для таких дел, может кто встречал?
Посмотрел код модуля service_links. Как и ожидалось ссылки в ноду добавляются через реализацию хука hook_nodeapi и засовываются в поле ноды content с весом 10. Наверное решить это можно написанием своего модуля с этим хуком, в котором ты и пересортируешь все как нужно...
Вы могли бы помочь в этом вопросе?
Я даже не уверен, что этот хук можно применять для этого. Он вроде бы для добавления разного содержания в ноду. Но попробуйте сами.
Создание модуля http://www.drupal.ru/node/10035
Описание хука http://api.drupal.ru/api/function/hook_nodeapi/5
Создайте на сайте ноду нужного типа и запомните ее nid (для экспериментов). Создайте оболочку своего модуля (файлы имямодуля.info и имямодуля.module). В последнем напишите примерно так:
if($node->type=="ваш тип ноды" && $node->nid==нидвашейноды && $op=="view") {
drupal_set_message (htmlspecialchars(print_r($node, true)))
}
}
После включайте модуль и смотрите, что друпал покажет вам при просмотре этой ноды. Вы должны увидеть ее структуру. После этого напишите код, который изменит веса нужных вам полей. Вставляете его вместо drupal_set_message и убираете из условия $node->nid==нидвашейноды && чтобы функция обрабатывалась при просмотре всех нод нужного типа.
На мой взгляд должно сработать.
Но что скажут местные гуру???
Чуть не забыл, все эксперименты, только на тестовом хостинге!!!
Блин, как сложно для меня это, но спасибо большое за участие