CMS Drupal

Понадобился мне для проекта модуль 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;
}

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".