Управляем заголовками вкладок

В декабре рассказывал о том, как распихать поля, отображаемые в нодах, по красивым вкладкам с помощью модуля Field Group. В одной из вкладок были, в частности, размещены комментарии к ноде и форма добавления новых комментариев.

А теперь возникла нужда управлять заголовком вкладки, в зависимости от наличия комментариев к ноде. Делается это так:

/**
* Implements hook_field_group_pre_render_alter().
*
* @param Array $elements by address.
* @param Object $group The Field group info.
*/
function mymodule_field_group_pre_render_alter(& $element, $group, & $form) {
  if ($element['#title'] == 'Comments') {
    $node = $element['comments']['#node'];
    if ($node->comment_count == 0) {
      $element['#title'] = t('Be first to leave a comment!');
    } else {
      $element['#title'] = t('Comments (!count)', array('!count' => $node->comment_count));
    }
  }
}

Аналогичным образом можно управлять заголовками любых других вкладок или иных видов групп полей Field Group.

Решение, кстати, дополнительно ценно тем, что благодаря великолепной документированности opensource-проектов потратил на написание этих десяти строчек — несколько часов.

Комментарии