Павел Левин

Павел Левин

С нами с 30 августа 2013; Место в рейтинге пользователей: #150
Павел Левин
20 августа 2016, 15:21
0
Здесь мои знания ограничиваются, возможно кто-то сможет помочь, но как было написано выше, есть альтернатива (их множество).
Павел Левин
19 августа 2016, 23:48
+1
Код который использую на своем сайте:
<?php
/*
&limit — лимит отображаемых и записываемых id страниц, по умолчанию 10
&show — отображать страницы или нет (0/1), по умолчанию 0 (будет записывать, но не отображать)
&snippet — наименование сниппета, с помощью которого будут выводиться данные (pdoResources, getResources и т.п.), по умолчанию 0 (false, то будет выводить данные с помощью modResource)
&parents — id родительского документа, по умолчанию 0
&tpl — наименования чанка с шаблоном, по умолчанию tpl.LastView.
&except — id исключаемых документов через запятую, по умолчанию 0.
&message — вывод сообщения, когда истории нет.

Пример:
// [[!LastView? &limit=`10` &show=`1` &snippet=`0` &parents=`0` &tpl=`tpl.LastView` &except=`[[++site_start]],404,502`]]
*/
$id = $modx->resource->id;

if (!isset($limit)) {$limit = 10;}
if (!isset($show)) {$show = 0;}
if (!isset($snippet)) {$snippet = 0;}
if (!isset($parents)) {$parents = 0;}
if (!isset($tpl)) {$tpl = 'tpl.LastView';}
if (!isset($except)) {$except = 0;} else {$except = split(",",$except);}
if (!isset($message)) {$message = '';}

// Проверяем исключения
if ($except != false) {
    $add = 1;
    foreach ($except as $value) {
        if($value == $id) {$add = 0;}
    }
}

// Добавляем просмотренную страницу
if ($add != false) {
    if (!isset($_SESSION['viewed'])) {
    	$_SESSION['viewed'] = array($id);
	} else {
		if (in_array($id, $_SESSION['viewed'])) {
			$key = array_search($id, $_SESSION['viewed']);
			unset($_SESSION['viewed'][$key]);
		}

		if (count($_SESSION['viewed']) > $limit) {
			array_shift($_SESSION['viewed']);
		}
		
		$_SESSION['viewed'][] = $id;
	}
}

// Предварительные проверки
if ($show == '1') {
    if (!isset($_SESSION['viewed'])) {return $message;}
	$ids = array_reverse($_SESSION['viewed']);
    if (empty($ids)) {return $message;}
}

// Выводим просмотренные страницы без вызова сниппета
if ($show == '1' && $snippet == false) {
    $output = '';
    foreach ($ids as $tsID) {
        if($tsID != $id) {
            $page = $modx->getObject('modResource', $tsID)->toArray();
            $output .= $modx->getChunk($tpl, $page);
        }
    }
    // Вывод результат в плейсхолдер или в результат работы
    if (isset($toPlaceholder)) {
        $modx->toPlaceholder(($toPlaceholder!=false?$toPlaceholder:'view'),$output,'last');
    } else {
        return ($output?$output:$message);
    }
}

// Выводим просмотренные страницы через вызов сниппета
if ($show == '1'  && $snippet != false) {
	$config = array(
		 'resources' => '-'.$id.','.implode(',', $ids)
		,'parents' => $parents
		,'limit' => $limit
		,'tpl' => $tpl
	);
    // Вывод результат в плейсхолдер или в результат работы
    if (isset($toPlaceholder)) {
        $modx->toPlaceholder(($toPlaceholder!=false?$toPlaceholder:'view'),$modx->runSnippet($snippet, $config),'last');
    } else {
        $output = $modx->runSnippet($snippet, $config);
        return ($output?$output:$message);
    }
}
Чанк:
<a href="[[~[[+id]]]]" data="[[+id]]">[[+pagetitle]]</a>
У меня все стабильно работает, никаких ошибок не возникало.
Павел Левин
28 июля 2016, 17:49
0
Ага, понял. Спасибо =)
Я просто пытался найти суть/цель/назначение в начале статьи.
Павел Левин
28 июля 2016, 16:57
0
т.е. вся суть дела это сортировка комментариев?
Павел Левин
28 июля 2016, 00:50
0
Я ничего не понял, а где глянуть рабочий пример для понимания дела?
Павел Левин
08 июля 2016, 15:47
+1
С сегодняшнего дня, писать во все разделы, кроме «Вопросов», «Объявлений о работе» и «Дополнений», могут только пользователи с рейтингом 30+.
Да, я ошибся, опустил «кроме». Болезнь беглого чтения.
Павел Левин
08 июля 2016, 14:49
0
Таких решений тонна.
Включая последнее: modstore.pro/packages/other/looked
Павел Левин
08 июля 2016, 14:39
0
Видел в email рассылке от магазина, думал взять, но потом увидел некую простоту, т.е. сортировка идет чисто по переходам.
Будет ли усовершенствование процесса сортировки/рейтинга, по мимо ручного указания явной связи. М.б. учет ключевых слов?

Причина такого мышления:
Если сайт состоит из статей и любая статья из любой категории корневого ресурса может быть неким образом связана с текущей, то вероятность рандомного попадания в выдачу довольно ничтожна, а пользователи за неимением лучшего, будет заходить в первые статьи, а если их всего 3-6 в выдаче?

Вот решил подождать следующего обновления, вдруг что-то с этим решат.
Павел Левин
08 июля 2016, 14:32
0
Думаю, что «Объявлений о работе» довольно ясно отображает весь смысл, а ограничение может несколько уменьшить поток заказов, а это уже денежка. Точные цифры покажет статистика.
Павел Левин
20 июня 2016, 12:35
+1
Это не был сарказм :) реакция неожиданная.
Прости меня, если тебя это сильно затронуло.
Павел Левин
19 июня 2016, 15:22
+1
Данная новость касается услуг модэкс клаба, их услуги.
Павел Левин
18 июня 2016, 20:54
-16
Сейчас будет неприличное сравнение логотипа =)
Павел Левин
18 июня 2016, 20:30
+6
Facepalm, столько много времени прошло с «новой парадигмы», а ты так и не изменился =)
Павел Левин
17 июня 2016, 15:03
0
Хорошая новость.
Снижение издержек за счет смены офиса?, а что будет если офиса не будет вовсе)? Удаленка.
ps: К стати гдет год назад Jivosite переехал на Тульскую м.б. это один из их офисов (рядом с трешкой БЦ).
Павел Левин
14 июня 2016, 14:44
0
Точка с запятой в конце функции, зачастую библиотеки минифицируются и точку с запятой удаляют, получается ошибка т.к. следом идет наименование следующей функции или переменной и т.п.

По коду ничем более помочь не смогу.
Павел Левин
14 июня 2016, 10:30
0
Чтоб работало корректно, стоит закрывать функции ; иначе будет синтаксическая ошибка.
Павел Левин
08 июня 2016, 18:47
0
Еще есть вариант сделать расширение для платного дополнения msearch2 по сути, выдавая первые варианты результатов поиска и как-то туда пропихивать приоритеты, но тут не знаю. М.б. все тяжело работать будет.
Павел Левин
08 июня 2016, 17:33
0
Как вариант заполнять поле «ключевые слова», тогда там можно найти некую схожесть + учитывать клики и получится довольно релевантные результаты. Как мне кажется.
Павел Левин
08 июня 2016, 14:23
0
Резонный вопрос =)
Это было бы зверски удобно. Помню на некоторых форумах, бот сразу отвечает ссылками с заголовками тем форума.
На самом деле подобное расширение достойно быть платным — яб купил.