Нужен блок с последними просмотренными товарами.
Есть такой модулёк http://www.ubercart.org/forum/support/4357/recently_viewed_products_list
Не хочется ставить доп.модуль,верю,что можно реализовать вьюсам (всё равно уже стоят)
Я пробовал через вид "Access log",но там недоступно поле вывода ССК поля,а мне позарез нужна картинка
Вот вид:
<?php
$view = new view;
$view->name = 'recently_viewed';
$view->description = 'Shows Recently Viewed Nodes';
$view->tag = 'recentlyviewed';
$view->view_php = '';
$view->base_table = 'accesslog';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE;
$handler = $view->new_display('default', 'Recently Viewed', 'default');
$handler->override_option('relationships', array(
'uid' => array(
'label' => 'uid',
'required' => 0,
'id' => 'uid',
'table' => 'accesslog',
'field' => 'uid',
'relationship' => 'none',
),
));
$handler->override_option('fields', array(
'title' => array(
'label' => '',
'display_as_link' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'accesslog',
'field' => 'title',
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'timestamp' => array(
'order' => 'DESC',
'id' => 'timestamp',
'table' => 'accesslog',
'field' => 'timestamp',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'path' => array(
'operator' => 'contains',
'value' => 'node',
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'case' => 1,
'id' => 'path',
'table' => 'accesslog',
'field' => 'path',
'relationship' => 'none',
),
'uid_current' => array(
'operator' => '=',
'value' => 1,
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'uid_current',
'table' => 'users',
'field' => 'uid_current',
'relationship' => 'uid',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('title', 'Recently Viewed');
$handler->override_option('empty', 'No pages have been viewed since this feature has been enabled.');
$handler->override_option('empty_format', '2');
$handler->override_option('distinct', 1);
$handler->override_option('style_options', array(
'grouping' => '',
));
$handler = $view->new_display('block', 'Block', 'block_1');
$handler->override_option('block_description', 'Recently Viewed');
$handler->override_option('block_caching', -1);
?>
Кто что отсоветует?
Комментарии
К чему эти горы кода?
Что мешает завести в сессии массив, и добавлять туда/считывать оттуда ссылки на ноды?
При загрузке ноды проверяется, есть ли ссылка на нее в этом массиве, и если нет -- добавляется.
Потом создаете сблок с похапе-сниппетом (или дописываете код в шаблоне), который читает из сессии массив и выводит список ссылок. Усё. Никаких запросов к базе.
Звучит хорошо,но между концептом и готовым кодом большая разница...
kyky описал очень хорошее решение для вас. объём кода будет небольшой, запросов к БД не будет. я бы даже сказал идеальное решение.
Хорошее решение для меня - копи/паст готового.А так это пустая болтовня про сессии,массивы и проч.Я не программер и не собираюсь им быть.Собствено,создавая топик,подразумевалось,что найдётся именно лучшее из готового.
Ладно,поставлю модулёк
http://www.drupal.ru/node/39012
А можно обойтись без написания модулей если есть flags, rules и views.
Вот статейко(перевод) и оригинал.