Как отключить статистику для определенного типа материала?

Аватар пользователя -NIK- -NIK- 5 ноября 2013 в 21:27

Есть тип материалов: "Basic page"; на нем необходимо исключить показ просмотров, так-как используются только для страниц типа: главная, правила пользования.
Как это возможно сделать?
Используется модуль "Statistics"(в ядре, который) + Google Analytics Counter.

Комментарии

Аватар пользователя -NIK- -NIK- 8 ноября 2013 в 19:58

sergeybelya, вставляю в template.php код:

<?phpfunction themename_preprocess_node(&$vars) {
  if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info' , 'forum')))
  print render($vars['content']['links']['statistics']['#links']['statistics_counter']['title']);
}?>

Счетчик по прежнему отображается на страницах типа page.

Аватар пользователя sergeybelya sergeybelya 9 ноября 2013 в 2:45

-NIK- wrote:
sergeybelya, вставляю в template.php код:

<?phpfunction themename_preprocess_node(&$vars) {
  if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info' , 'forum')))
  print render($vars['content']['links']['statistics']['#links']['statistics_counter']['title']);
}?>

Счетчик по прежнему отображается на страницах типа page.

Вместо themename должно быть имя вашей темы, сбросить кеш. Ну и
unset($content['links']['statistics']['#links']['statistics_counter']['title']);

вместо вашего
print render($vars['content']['links']['statistics']['#links']['statistics_counter']['title']); - откуда вы вообще это взяли?

Аватар пользователя -NIK- -NIK- 9 ноября 2013 в 20:26

sergeybelya,

<?phpfunction themename_preprocess_node(&$vars) {
  if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info', 'forum')))
  unset($content['links']['statistics']['#links']['statistics_counter']['title']);
}?>

Имя темы естественно свое вставляю, кэш чистил, счетчик по прежнему везде отображается.
Счетчик должен отображаться на всех типах материала кроме page.

Аватар пользователя sergeybelya sergeybelya 9 ноября 2013 в 20:31

-NIK- wrote:
sergeybelya,

<?phpfunction themename_preprocess_node(&$vars) {
  if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info', 'forum')))
  unset($content['links']['statistics']['#links']['statistics_counter']['title']);
}?>

Имя темы естественно свое вставляю, кэш чистил, счетчик по прежнему везде отображается.
Счетчик должен отображаться на всех типах материала кроме page.

Перед if добавьте $node = $vars['node'];

Аватар пользователя -NIK- -NIK- 9 ноября 2013 в 21:29
<?phpfunction themename_preprocess_node(&$vars) {
$node = $vars['node']; if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info', 'forum')))
unset($content['links']['statistics']['#links']['statistics_counter']['title']);
}?>

так тоже не работает

Аватар пользователя sergeybelya sergeybelya 9 ноября 2013 в 23:49

-NIK- wrote:

<?phpfunction themename_preprocess_node(&$vars) {
$node = $vars['node']; if (in_array($node->type, array('news', 'article', 'video', 'blog', 'info', 'forum')))
unset($content['links']['statistics']['#links']['statistics_counter']['title']);
}?>

так тоже не работает

ну не знаю уже как вам объяснить. Попробуйте для начала без условия, потом удаляйте только для page, скорее всего элементарно ошибаетесь синтаксически.

Аватар пользователя -NIK- -NIK- 10 ноября 2013 в 0:25

"sergeybelya" wrote:
Попробуйте для начала без условия

Я так понял что без условия счетчик должен удалиться со всех материалов?
Вставляю просто:

<?phpfunction themename_preprocess_node(&$vars) {
  unset($content['links']['statistics']['#links']['statistics_counter']['title']);
}?>

Ничего не меняется, счетчик по прежнему присутствует

Аватар пользователя -NIK- -NIK- 10 ноября 2013 в 0:56

"sergeybelya" wrote:
Попробуйте просто unset($vars['content']['links']['statistics'])

Вот так заработало, счетчик исчез со всех материалов, как бы теперь туда проверку вставить правильно?

<?phpfunction themename_preprocess_node(&$vars) {
  unset($vars['content']['links']['statistics']);
}
}?>
Аватар пользователя sergeybelya sergeybelya 10 ноября 2013 в 0:57

-NIK- wrote:
"sergeybelya" wrote:
Попробуйте просто unset($vars['content']['links']['statistics'])

Вот так заработало, счетчик исчез со всех материалов, как бы теперь туда проверку вставить правильно?

<?phpfunction themename_preprocess_node(&$vars) {
  unset($vars['content']['links']['statistics']);
}
}?>

if ($vars['node']->type == 'page') {...}

Аватар пользователя -NIK- -NIK- 10 ноября 2013 в 1:03

sergeybelya,

<?phpfunction themename_preprocess_node(&$vars) {
  $node = $vars['node']; if (in_array($node->type, array('page','webform')))
  unset($vars['content']['links']['statistics']);
}?>

Вот так все получилось. Спасибо вам огромное за такое подробное разъяснение!