OG: как скрыть вкладку, если материал отсутствует?

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

Аватар пользователя flecus flecus 10 января 2010 в 18:52

Подскажите, как сделать, чтобы вкладка, созданная на странице группы через node/%/blog появлялась только когда в группе имеются записи в блогах.

Комментарии

Аватар пользователя Dan Dan 10 января 2010 в 23:12

Ну примерно так:

/**
 * Implementation of hook_menu_alter()
 */

function ИМЯ_МОДУЛЯ_menu_alter(&$items) {
  $items['node/%/blog']['access callback'] = 'ИМЯ_МОДУЛЯ_blog_access';
}

/**
 * Helper function for blog access check
 */

function ИМЯ_МОДУЛЯ_blog_access($string, $account = null, $reset = false){
  $view = views_get_view('имя_списка');
  $output = $view->execute_display('имя_дисплея', array('аргумент'));
  return !$view->result? false : user_access($string, $account, $reset);
}

Где:

  • ИМЯ_МОДУЛЯ - имя созданного вами модуля
  • имя_списка - имя views, в котором Вы создали дисплей с адресом node/%/blog
  • имя_дисплея - default, page_1, block_1 и т.д.
  • аргумент - если используете их
Аватар пользователя Antoniy Antoniy 15 мая 2012 в 8:44

Dan wrote:
Ну примерно так:

Посмотрел еще так же темы на орге, как скрыть табы. Пока пробую, не работает. Вывожу через Views табами поля Content Prfile, списки нод, созданных пользователем. У некоторых пользователей содержимого нет и табы пустые.