Как перенести виджет голосования?

  • strict warning: Declaration of views_handler_field_user_name::init() should be compatible with views_handler_field_user::init(&$view, $data) in /var/www/shvabrashvabr.ru/sites/all/modules/views/modules/user/views_handler_field_user_name.inc on line 61.
  • strict warning: Declaration of views_handler_argument_many_to_one::init() should be compatible with views_handler_argument::init(&$view, $options) in /var/www/shvabrashvabr.ru/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc on line 169.


Долго искал в коде, но так и не нашел - каким образом можно перенести виджет голосовалки из $content в $links, т.е. чтобы он отображался не слева от содержимого, а внизу?

Комментарии

У меня такой баг выскочил:
В списке материалов коллективного блога, вверху виджет почему-то отображается два раза? Как бы включено голосование за группы. Ниже по списку всё нормально? ХМ.
В настройках модуля отображение виджета выключил.
Кто-нибудь сталкивался? Как убрать эту пакость?
Ниже скрин:

Ммм... ну значит ты разрешил юзерам голосовать и за посты в блог, и за группы. Нужно запретить голосовать за группы, то есть снять соответствующую галку в настройках vote_up_down. А сайт твой в интернете уже лежит? Интересно посмотреть...

Ну я и снял эту галку. Эта функция в самом модуле работает нормально.
Если убрать из node.tpl.php функции вывода виджета и включить в модуле отображение в ноде, то все нормально.
Самое интересное, что эта пурга возникает только, при переносе виджета в ноду, и только в списке материалов группы почему-то?
Как бы получается нода в ноде что-ли?
Я думал, что может при отключении голосований за группу, остается в кеше что-то?
Проверил, запустил на денвере чистый друпал, всё установил, то же самое.
Как решение, можно конечно оставить дефолтный виджет и поправить его с помощью css, но вот только ни как не пойму, как вытащить вывод поинтов из links.
Сайт в сети, на начальном этапе разработки, делаю для жены. Не очень хочу пока освещать, дам тебе url на друпал.ру в личных сообщениях.

Ром, не по теме, но я не понял, на друпал.ру работают личные сообщения или нет?
Я тыкал, тыкал, не фига не понял, нет отправленных и принятых как раньше, видимо с изменением темы есть пока проблемы, ну да то, удачной вам работы.
Если всё работает ответь да, если нет, то нет.
Если нет, то я по e-mail тебе сообщение напишу.
ОК. Спасибо.

В папке с темой в файле template.php (если его нет, то его нужно создать) размести функцию:

function _phptemplate_variables($hook, $vars) {
switch($hook) {
case 'node':
$vars['storylink_url'] = check_url($vars['node']->vote_storylink_url);
if (arg(1) != 'add' && arg(2) != 'edit') {
$style = variable_get('vote_up_down_widget_style_node', 0) == 1 ? '_alt' : '';
$vars['vote_up_down_widget'] = theme("vote_up_down_widget$style", $vars['node']->nid, 'node');
$vars['vote_up_down_points'] = theme("vote_up_down_points$style", $vars['node']->nid, 'node');
}
$vars['vote_storylink_via'] = theme('vote_storylink_via', $vars['node']->vote_storylink_url);
if (arg(1) == 'top') {
static $count;
$count = is_array($count) ? $count : array();
$count[$hook] = is_int($count[$hook]) ? $count[$hook] : 1;
$vars['seqid'] = $count[$hook]++;
}
break;
}
return $vars;
}

Затем в шаблоне node.tpl.php в нужном месте вставь код:

<?php print $vote_up_down_widget ?>

Как темизировать виджет я уже писал, поищи по сайту по ключевому слову vote_up_down.

Ром, сделал все по твоему руководству. Трабла случилось в том, что у меня создались дубли виджетов. А старые (дефолтные) местоположения виджетов остались на месте.
Как их кастрировать?

Так, ё-моё, выключи отображение виджетов в настройке модуля и всё.

Эта мысль меня посещала. Проблема в том, что у меня на сайте голосовать можно лишь за определенные типы нодов. За другие - нельзя.
Вот-с... при таких раскладах они у меня сейчас выводятся у всех нод :(

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

Шаблон для всех нодов один единственный. Как это сделать?

Чтобы задать уникальный шаблон для определенного типа контента нужно взять стандартный файл node.tpl.php, сохранить его под именем node-NAME.tpl.php, например node-story.tpl.php, и внести в новый файл необходимые изменения. Кроме того, можно для каждой ноды задавать собственные шаблоны, используя файлы с именем node-NID.tpl.php.

Ромка, ты супер! Пасиба :)

Темизация - я разобрался, проблема была именно с переносом, причем в node.tpl.php я все правильно вставил, а вот насчет определения переменных в template.php не сообразил.. Спасибо!

Back to top