@Otrivin
junior full-stack сисадмин

Как вывести модуль «Fivestar» в кастомном tpl.php для таксономии?

Здравствуйте!

Есть сайт на Drupal 7, появилась необходимость добавить рейтинг к страницам, являющимся терминами таксономии. Установил модуль Fivestar, настроил, теперь нужно вывести его на фронтэнд.

Разработчик создавал для страниц терминов отдельный шаблон. Пытаюсь вывести модуль в нём, нашел пример кода для этого:

<?php
$settings = array(
    'content_type' => 'profile2',
    'content_id' => $profileView->pid,
    'entity' => $profileView,
    'stars' => 5,
    'field_name' => 'field_profile_rating',
    'autosubmit' => TRUE,
    'allow_clear' => FALSE,
    'langcode' => 'und',
    'text' => 'none', // options are none, average, smart, user, and dual
    'tag' => 'vote',
    'style' => 'average', // options are average, dual, smart, user
    'widget' => array( 'name' => 'oxygen', 'css' => drupal_get_path('module', 'fivestar') . '/widgets/oxygen/oxygen.css' )
);
print render(drupal_get_form('fivestar_custom_widget', $profileView->field_profile_rating['und'][0], $settings));
?>


Пытаюсь допилить его для себя, но не имею достаточного опыта работы с Drupal и возникли вопросы
<?php
$term = taxonomy_term_load(arg(2));
$settings = array(
    'content_type' => 'taxonomy_term', // Видимо, тип материала. Для таксономий такое понятие существует?
    'content_id' => arg(2), // arg(2) достаточно для передачи id материала?
    'entity' => $term, // Что сюда нужно передавать? В примере указан объект. 
    'stars' => 5,
    'field_name' => 'field_rating_term',
    'autosubmit' => TRUE,
    'allow_clear' => FALSE,
    'langcode' => 'und',
    'text' => 'average', // options are none, average, smart, user, and dual
    'tag' => 'vote',
    'style' => 'average', // options are average, dual, smart, user
    'widget' => array( 'name' => 'basic', 'css' => drupal_get_path('module', 'fivestar') . '/widgets/basic/basic.css' )
);
print render(drupal_get_form('fivestar_custom_widget', $term->field_rating_term['und'][0], $settings));
?>


Вопросы:
1) 'content_type' – Какой тип материала указывается для термина?
2) 'content_id' – arg(2) достаточно для передачи id материала?
3) 'entity' – Что сюда нужно передавать? Объект текущего термина или название типа сущности ( 'term' )?

Или, может, я не в ту сторону копаю и есть другой метод вывода (находил еще пару, но они либо не работают, либо работают на Drupal 6)?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
andead
@andead
друпал девелопер, фрилансер
Рейтинг fivestar это обычное поле. Выводить как любое другое поле:

echo render($content['field_name']);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы