"Самый популярный" вид
Я создал представление, в котором должны быть перечислены 5 самых популярных историй на моем сайте, поэтому я отсортировал их по статистике узлов: общее количество просмотров и включил несколько типов контента в фильтры. Единственная проблема заключается в том, что представление проверяет только истории в первом выбранном типе контента и игнорирует все остальные. Есть ли что-то, что я делаю неправильно?
Вот экспорт представления:
$view = new view;
$view->name = 'popular';
$view->description = '';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'created' => array(
'label' => '',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'date_format' => 'small',
'custom_date_format' => '',
'exclude' => 0,
'id' => 'created',
'table' => 'node',
'field' => 'created',
'relationship' => 'none',
),
'title' => array(
'label' => '',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'totalcount' => array(
'order' => 'DESC',
'id' => 'totalcount',
'table' => 'node_counter',
'field' => 'totalcount',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'news' => 'news',
'story' => 'story',
'opinion' => 'opinion',
'video' => 'video',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => 'type_op',
'label' => 'Node: Type',
'use_operator' => 0,
'identifier' => 'type',
'optional' => 1,
'single' => 1,
'remember' => 0,
'reduce' => 0,
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('items_per_page', 5);
$handler = $view->new_display('block', 'Block', 'block_1');
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);
2 answers
Убедитесь, что подсчет просмотров содержимого включен в настройках журнала доступа (admin/reports/settings
). Если это не включено, все представления содержимого будут равны 0
.
Возможно, вы захотите рассмотреть модуль радиоактивности Модуль радиоактивности , который дает более точное и актуальное представление о текущем популярном контенте на сайте.
Проблема с использованием общих просмотров заключается в том, что со временем самый старый контент всегда будет отображаться в верхней части списка, поскольку он существует дольше. В то время как с модулем радиоактивности он использует систему баллов и радиоактивность "halflife" для ранжирования контента. Таким образом, это даст истинное отражение о текущих тенденциях вашего сайта.
Здесь есть удобное видео , которое все это объясняет.
Надеюсь, это поможет!