Сортировка модулей выводимых в конце документов...

Главные вкладки

Аватар пользователя Poqa Poqa 9 сентября 2008 в 7:59

У меня в конце документов выводятся несколько модулей:
- социальные закладки
- подписка
- голосование

Нужно как-то поменять их местами, допустим, голосование переместить на самый верх. Не могу нигде найти в самих модулях, ни в настройках Друпала. Может модуль есть какой занимающийся этим?

Комментарии

Аватар пользователя direqtor direqtor 9 сентября 2008 в 8:47

Если модули выводят блок, то на странице управления блоками, можно установить их порядок по весам.

Если же надо организовать вывод блока выше основного контента страницы, то подыщите тему в которой есть регион Content top. Можно посмотреть как это там сделано и взять нужный код. Либо справка http://drupal.org/node/29140

Аватар пользователя Geldora Geldora 9 сентября 2008 в 11:34

"Poqa" wrote:
- социальные закладки
- подписка
- голосование

Если я правильно понимаю, это все выводится как линкс в конце ноды. Для того чтобы поменять их местами, можно использовать сниппеты. http://drupal.org/node/134442

Аватар пользователя Poqa Poqa 9 сентября 2008 в 17:18

Такое дело, что в самой ноде обычно идет текст, а после всего модули ставят свои данные, вот адрес для примера - пример, там после текста идёт список сервисов закладок, после идет ссылка на добавление страницы в подписки (наверное только у зареганых пользователей, не уверен), а ниже идет голосовалка в виде звездочек. Выглядит не очень, хотелось бы поменять местами.

Аватар пользователя Poqa Poqa 9 сентября 2008 в 21:20

Я искал вес, вручную нигде нет, ни в настройках самих модулей, не в обычных настройках Друпала. А программно я не потяну, не разбираюсь. Я вот думаю, что есть всё же модуль для таких дел, может кто встречал?

Аватар пользователя direqtor direqtor 10 сентября 2008 в 5:00

Посмотрел код модуля service_links. Как и ожидалось ссылки в ноду добавляются через реализацию хука hook_nodeapi и засовываются в поле ноды content с весом 10. Наверное решить это можно написанием своего модуля с этим хуком, в котором ты и пересортируешь все как нужно...

Аватар пользователя Poqa Poqa 10 сентября 2008 в 6:51

direqtor wrote:
Посмотрел код модуля service_links. Как и ожидалось ссылки в ноду добавляются через реализацию хука hook_nodeapi и засовываются в поле ноды content с весом 10. Наверное решить это можно написанием своего модуля с этим хуком, в котором ты и пересортируешь все как нужно...

Вы могли бы помочь в этом вопросе?

Аватар пользователя direqtor direqtor 10 сентября 2008 в 7:39

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

Создание модуля http://www.drupal.ru/node/10035
Описание хука http://api.drupal.ru/api/function/hook_nodeapi/5

Создайте на сайте ноду нужного типа и запомните ее nid (для экспериментов). Создайте оболочку своего модуля (файлы имямодуля.info и имямодуля.module). В последнем напишите примерно так:

function имямодуля_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if($node->type=="ваш тип ноды" && $node->nid==нидвашейноды && $op=="view") {
    drupal_set_message (htmlspecialchars(print_r($node, true)))

 }
}

После включайте модуль и смотрите, что друпал покажет вам при просмотре этой ноды. Вы должны увидеть ее структуру. После этого напишите код, который изменит веса нужных вам полей. Вставляете его вместо drupal_set_message и убираете из условия $node->nid==нидвашейноды && чтобы функция обрабатывалась при просмотре всех нод нужного типа.

На мой взгляд должно сработать.
Но что скажут местные гуру???

Чуть не забыл, все эксперименты, только на тестовом хостинге!!!