Понадобился мне для проекта модуль fivestar. Модуль понравился, но нашлось несколько шероховатостей, которые пришлось исправлять изменением кода модуля.
Во-первых я не нашел как можно изменить заголовок, который располагается над звездочками. Я завел несколько критериев голосования для одного материала (tags) и мне не нужно было слово Среднее в заголовка. Достаточно было просто название tag.
Для этого пришлось подправить функцию
function fivestar_form(&$form_state, $content_type, $content_id, $tag) { ... $settings = array( 'stars' => variable_get('fivestar_stars' . $suffix, 5), 'allow_clear' => variable_get('fivestar_unvote' . $suffix, FALSE), 'style' => $star_display, 'text' => $text_display, 'content_type' => $content_type, 'content_id' => $content_id, 'tag' => 'vote', 'autosubmit' => TRUE, 'title' => variable_get('fivestar_title' . $suffix, 1) ? NULL : FALSE, 'title' => $tag, // XA 'feedback_enable' => variable_get('fivestar_feedback' . $suffix, 1), 'labels_enable' => variable_get('fivestar_labels_enable' . $suffix, 1), 'labels' => variable_get('fivestar_labels' . $suffix, array()), 'tag' => $tag, ); }
Добавлена строка 'title' => $tag, // XA
Второй момент, который не смог никак решить без редактирования кода - это как избавиться от тега vote. Не включишь его - другие теги не отображаются, а как другие включишь, то этот не выключается. Да и вообще по коду нижеприведенной функции видно, что без него почему-то никак. Решение вот в этой функции:
function fivestar_get_tags() { $tags_txt = variable_get('fivestar_tags', 'vote'); $tags_exploded = explode(',', $tags_txt); $tags = array(); $got_vote = false; foreach ($tags_exploded as $tag) { $tag_trimmed = trim($tag); if ($tag_trimmed) { $tags[] = $tag_trimmed; if ($tag_trimmed == 'vote') { $got_vote = true; } } } $got_vote = true; // XA if (!$got_vote) { $tags[] = 'vote'; } return $tags; }
Если я Вам помог, то меня можно поблагодарить.
Отправить комментарий