Виджет "Недавно вы смотрели"

+22
2.05K


Показывает список недавно просмотренного контента.
Отображает только заданный тип контента.
+1
Shuma Shuma 5 лет назад #
Интересно, а его легко допилить для компонента "Знакомства"?
0
Arguzov Arguzov 5 лет назад #
работает со стандартными типами контента, как там в знакомствах реализовано - неизвестно
+2
SE7EN SE7EN 5 лет назад #
Отображает только заданный тип контента.- это плохо, если б наоборот указывать из какого контента не показывать было бы лучше.
Но за виджет +
+1
Arguzov Arguzov 5 лет назад #
Можно поставить несколько виджетов с разным типом контента.
Хотя... Посмотрим по отзывам - если это востребовано, то сделаю обновление для нескольких типов контента в одном блоке
+1
Dorimen Dorimen 5 лет назад #
Это было бы востребовано больше ) Мне кажется.
+1
MegaRostov MegaRostov 5 лет назад #
Думаю лучше будет когда на самом деле "Недавно вы смотрели" будут выводится со всех разделов.
Или вообще выбор в компоненте разделение кому как удобнее.
А есть компонент "Недавно просмотренные" для всех пользователей с выводом виджета на главную.
Все равно возьму. +++
0
MegaRostov MegaRostov 5 лет назад #
А есть компонент "Недавно просмотренные" для всех пользователей с выводом виджета на главную.

Это был вопрос!, такой виджет мне бы не помешал..
0
SALIK SALIK 5 лет назад #
Лучше для нескольких типов контента joke Тогда и мне пригодится =))
А за идею +++ Хороший виджет)))
+2
Arguzov Arguzov 5 лет назад #
Вот смотрите, к примеру будет в типа контента перемешано: объявления и допустим статьи. Мне кажется будет путаница. Лучше сделать 2 блока: просмотренные объявления и отдельно просмотренные статьи.
0
MegaRostov MegaRostov 5 лет назад #
Да возможно вы и правы!!
0
MegaRostov MegaRostov 5 лет назад #
А если в виджете сделать выбор какой контент показывать?
Так это же совсем будет ГУД.
к примеру:
В объявлениях - объявления, статьи
В новостях - статьи, новости, посты.
И так далее.
0
Alex AV Alex AV 5 лет назад #
Отлично. То что нужно было. Только почему то текст не обрезает на указанное число знаков.
0
Arguzov Arguzov 5 лет назад #
отправил обновление
0
Alex AV Alex AV 5 лет назад #
Обновился, теперь всё работает. Ставлю плюс.
0
Денис Васильевич Денис Васильевич 5 лет назад #
Я бы в виджете вывел множественный выбор типов контента.
0
Денис Васильевич Денис Васильевич 5 лет назад #
Вернее в настройках виджета.
+2
Arguzov Arguzov 5 лет назад #
в работе
0
MegaRostov MegaRostov 5 лет назад #
Буду ждать обновления!
+1
Arguzov Arguzov 5 лет назад #
Обновление вышло и разослано, теперь множественный выбор контента!
скриншоты в каталоге обновлены
0
MegaRostov MegaRostov 5 лет назад #
Хороший компонент!
Вопрос Сможете или есть компонент "Недавно смотрели" для всех пользователей. Что смотрели пользователи на сайте.
С удовольствием приобрел бы.
0
Capitan Capitan 2 года назад #
Давно не пользовался. Установил и выдало ошибку
Notice: Undefined index: lvTime in //////system/widgets/lastvisited/widget.php on line 11 и 12 и 25
вот код
Код PHP:
  1. <?php
  2. class widgetLastvisited extends cmsWidget {
  3. public $is_cacheable = false;
  4. public function run(){
  5. $op=$this->options;
  6. $opfields=array();
  7. $arr=$_SESSION['lvTime'];
  8. $arrd=$_SESSION['lvData'];
  9. //print_r($op);
  10. if ($arr) {
  11. $arr=cmsModel::yamlToArray($arr);
  12. $arrd=cmsModel::yamlToArray($arrd);
  13. //print_r($arrd);
  14. } else {
  15. $arr=array();
  16. $arrd=array();
  17. }
  18. foreach($op['ctypes'] as $v) {
  19. $opfields[$v]=array('title'=>$op['title-'.$v],
  20. 'image'=>$op['image-'.$v],
  21. 'teaser'=>$op['teaser-'.$v]);
  22. }
  23. // print_r($opfields);
  24. $core = cmsCore::getInstance();
  25. if ($core->controller == 'content'){
  26. $uri_segs = explode('/', $core->uri);
  27. $ctype_string = $uri_segs[0];
  28. $slug = !mb_strstr($core->uri, '.html') ? mb_substr($core->uri, mb_strlen($ctype_string)+1) : null;
  29. $matches = array();
  30. if (preg_match('/^([a-z0-9_]+)$/', $ctype_string, $matches)){
  31. $ctype_name = $matches[0];
  32. } else
  33. if (preg_match('/^([a-z0-9_]+)-([a-z0-9_]+)$/', $ctype_string, $matches)){
  34. $ctype_name = $matches[1];
  35. }
  36. $model = cmsCore::getModel('content');
  37. $tree = $model->getContentTypes();
  38. $clist= array_collection_to_list($tree, 'name', 'title');
  39. if (in_array($ctype_name,$op['ctypes']) ) {
  40. $slug = mb_substr($core->uri, mb_strlen($ctype_name)+1);
  41. $slug = mb_substr($slug,0,mb_strlen($slug)-5);
  42. if ($slug) $a=$model->getItemByField('con_'.$ctype_name, 'slug', $slug);
  43. if($a) {
  44. $arr[$ctype_name.$a['id']]=mktime();
  45. $arrd[$ctype_name.$a['id']]=array_merge($a,array('visit'=>date('Y-m-d H:i:s',$arr[$ctype_name.$a['id']]),
  46. 'simage'=>cmsModel::yamlToArray($a[$opfields[$ctype_name]['image']]),
  47. 'steaser'=>$a[$opfields[$ctype_name]['teaser']],
  48. 'ctype'=>$ctype_name,
  49. 'ctitle'=>$clist[$ctype_name]
  50. ));
  51. arsort($arr);
  52. $newarr=array_slice($arr,0,$op['limit'],true);
  53. $_SESSION['lvTime']=cmsModel::arrayToYaml($newarr);
  54. $neward=array();
  55. foreach($arr as $k=>$v) $neward[$k]=$arrd[$k];
  56. $_SESSION['lvData']=cmsModel::arrayToYaml($neward);
  57. unset($neward[$ctype_name.$a['id']]);
  58. } else $neward=$arrd;
  59. }
  60. }
  61. if($style){
  62. $this->setTemplate('list_'.$style);
  63. } else {
  64. $this->setTemplate($this->tpl_body);
  65. }
  66. $neward=$neward ? $neward : $arrd;
  67. return array(
  68. 'hide_except_title' => $hide_except_title,
  69. 'teaser_len' => $op['teaser_len'],
  70. 'title_field' => 'title',
  71. 'image_field' => 'simage',
  72. 'teaser_field' => 'steaser',
  73. 'is_show_details' => $op['show_details'],
  74. 'style' => $style,
  75. 'items' => $neward,
  76. 'show_ctitle' => $op['show_ctitle']
  77. );
  78. }
  79. }
  80. ?>

Еще от автора

Виджет "Реавторизатор"
[addon]469[/addon] Виджет позволяет администратору быстро перелогиниться под любого пользователя без ввода пароля UPD. Сразу обновление!
Компонент "Оригинальные тексты"
Компонент добавляет ваш текст в Оригинальные тексты Я.вебмастера.
Модуль "Мой гороскоп"
Модуль "Мой гороскоп" - работает в связке с компонентом "Гороскоп", выводит в режиме js-слайдера ваши гороскопы на сегодня (дата б
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.