anrn@drupal.org: Блог

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

votingapi tag как nid

2 августа 2009 в 13:17

Может кто подскажет, что не так. По сути, хочу просто привязать тег к id ноды, но результат (к примеру, сумму) votingapi считать не хочет, никак не могу понять почему...

создается голос
<?php
$votes[] = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
'value' => $value,
'tag' => $nid,
);
votingapi_set_votes($votes);
?>

подсчет суммы

кнопки-картинки для формы

9 июля 2009 в 19:17

Странный момент, если делаю две кнопки картинками, то всегда присваивается значение второй...
Пример кода:

<?php

$form['submit1'] = array(
'#type' => 'image_button',
'#src' => 'sites/all/themes/mysite/1.png',
'#value' => 'foo1',
);

$form['submit2'] = array(
'#type' => 'image_button',
'#src' => 'sites/all/themes/mysite/2.png',
'#value' => 'foo2',
);
$form['#submit'][] = 'mymodule_form_submit';
?>
потом идет проверка

<?php

function mymodule_form_submit($form, &$form_state) {

$clicked = $form_state['clicked_button']['#value'];

switch ($clicked) {
case 'foo1': $example= 10; break;
case 'foo2': $example= -10; break;
}

?>

Вот это и не работает, на выходе всегда имеем значение foo2. Если переключить на обычные кнопки (submit) — все окей.
В чем может быть проблема?

[РЕШЕНО] hook_comment

25 мая 2009 в 1:01

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

<?php
/* хук комментария во время публикации, API говорит что к этому времени комментарий уже
находится в таблице, и следовательно имеет ID
*/

function tcomment_comment($comment, $op) {
switch ($op) {
case 'publish':
tcomment_add_votes($comment->cid);

}
}
/*я использую модуль Voting API для внесения данных, и здесь должна
произойти запись, но вот cid не прописывается, пустое значение.
*/

function tcomment_add_votes($cid){

$votes[] = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
'value' => 1,
);
votingapi_set_votes($votes);
}
?>

Где может быть ошибка?

votingapi запись данных

23 мая 2009 в 23:47

Делаю модуль, чтобы ловить разные кнопки на форме комментария, и, соответственно, сразу проставлять оценку. Для дальнейшей работы с баллами использую модуль VotingAPI. По умолчанию (и вроде как описанию в нем) он должен прописывать все данные сразу с привязкой к контенту в свою таблицу, но, почему-то, так не получается.
<?php
// валидация формы
function tcomment_vote($form, &$form_state, $nid) {

$clicked = $form_state['clicked_button']['#value'];

switch ($clicked) {

case 'yes':
$votes[] = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
'value' => 1,
);
break;

case 'no':
$votes[] = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
'value' => -1,
);
break;
}
votingapi_set_votes($votes);
$criteria = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
);
}

// потом вывод на каждом комментарии (висит на хуке вывода комментариев)

function tcomment_select_votes() {

$criteria = array(
'content_type' => 'comment',
'content_id' => $cid,
'value_type' => 'points',
);

$results = (int)votingapi_select_single_result_value($criteria);

drupal_set_message('результат' . $results);
}
// проблема в том, что здесь считывается только последний результат и приписывается всем комментариям.

}
?>

Пожалуйста, если кто знает, подскажите в чем может быть проблема?