Максим Кузнецов

Максим Кузнецов

С нами с 01 июля 2013; Место в рейтинге пользователей: #27
Максим Кузнецов
02 марта 2017, 03:52
+1
При помощи сниппетов getTickets и getComments, с применением параметра &where:
&where=`{"createdby": [[!+modx.user.id]]}`
Максим Кузнецов
02 марта 2017, 02:28
+1
На почту из профиля… которой нет)

Максим Кузнецов
02 марта 2017, 02:21
+1
Вот нечто похожее: раз, два. Попробуйте обновить MODX до последней версии, или откатите настройки php с 7.0 до 5.6.
Максим Кузнецов
02 марта 2017, 02:18
+2
1. Создаете общую страницу для списка пользователей (users)
2. С помощью кастомной маршрутизации на событие OnPageNotFound перехватываете запрос пользователя и, если он подходит под формат страницы пользователя (/users/$username), то подменяете страницу:
$tmp = explode('/', $request);
	
if (end($tmp) == '') {
	array_pop($tmp);
}
if (count($tmp) >= 2) {
	switch ($tmp[0]) {
		//Профиль пользователя
		case 'users':
			//манипуляции с именем пользователя:
			//1. ищете подходящего пользования
			//2. если он не существует - возвращаем 404, если существует - идем дальше
			//3. приводим адресную строку к единому формату ('имя, Имя, ИМЯ' -> 'Имя')
			//4. Заносите в плейсхолдер (user_id, user_name) значение пользователя
			//5. подменяете страницу при помощи sendForward на страницу users

			//опционально: здесь же можно проверять наличие 3-ей и более подстрок запроса
			//(posts, comments, favorites и тд) 
	...

3. На странице users проверяете наличие соответствующих плейсхолдеров (user_id, user_name) — если они есть, то отображаете шаблон страницы пользователя, если их нет — общую страницу пользователей
Максим Кузнецов
01 марта 2017, 04:05
+2
$_modx->user.id == '[[*createdby]]
=>
$_modx->user.id == $_modx->resource.createdby
Максим Кузнецов
21 февраля 2017, 01:30
0
TicketLatest выводит список тикетов, для вывода последних комментариев воспользуйтесь сниппетом getComments.
Максим Кузнецов
21 февраля 2017, 01:26
+2
Возможно, у кого-то они есть, да..)

Документация по mFilter2 (чанки и оформление) — создаете нужные чанки (с необходимыми классами и стилями) и прописываете их в вызове mFilter2.
Максим Кузнецов
21 февраля 2017, 01:24
0
ms|vendor:country
Данная структура передает параметры в виде «кодовое_имя_таблицы/поле: фильтр» (документация).

Из коробки (помимо прочих) доступен фильтр vendors, а фильтр country — нет. Поэтому, если вы хотите отфильтровать товары по стране производителя, вам необходимо расширить класс фильтрации, дописав в нем соответствующую логику.
Максим Кузнецов
21 февраля 2017, 01:15
+2
Нет, нельзя — на каждое тв нужно вызывать по getImageList.

Как альтернатива, если у вас включен fenom, можно разложить тв-поле на месте вообще без сниппета:

{foreach $_modx->resource.migx_tv_name | fromJSON as $item}
	{$item['idx']}
	{$item['name']}
	...
{/foreach}
Максим Кузнецов
20 февраля 2017, 13:06
+1
Если вы о том, как приджоинить voteforms к вызову (pdoTools), то так:
[[!pdoResources?
	&loadModels=`voteforms`
	&leftJoin=`{
		"VoteFormThread": {
			"class": "VoteFormThread",
			"on": "modResource.id = VoteFormThread.resource AND VoteFormThread.form = 1"
		}
	}`
	&select=`{
		"modResource": "*",
		"VoteFormThread": "rating AS rating"
	}`
	...
	//айди формы и желаемые поля для выборки указать под себя

Если вас интересует, как именно реализовать это в связке с getProducts/другим сниппетом, не поддерживающим возможность присоединения таблиц, то потребуется отредактировать сниппет voteforms и при изменении рейтинга дублировать необходимое вам значение в тв-поле ресурса.

В противном случае — сниппет внутри сниппета, но это так себе вариант: лучше перейти на pdoTools.
Максим Кузнецов
20 февраля 2017, 12:44
0
Упс, извиняюсь — все намного проще: на ночь глядя не обратил внимание, что речь о getResources.
Максим Кузнецов
20 февраля 2017, 01:16
0
Да, давненько.)

Ну, каких-то недоделанных фич ждать не приходится (то же голосование анонимами). Но для системы рейтингов у ресурсов лично мне его хватает.)
Максим Кузнецов
19 февраля 2017, 23:58
+2
modstore.pro/packages/utilities/voteforms

Вопрос с вызовом сниппета внутри getResources решается путем leftJoin'a нужных таблиц.
Максим Кузнецов
19 февраля 2017, 12:35
+3
1251 — однобайтовая кодировка, UTF-8 — 2-6 байтовая (для русских символов — 2).

Другое дело, что разница на большинстве типичных проектов совершенно незначительна (если у вас проект размеров вконтакта — тогда другой разговор), а уж экономить на названии чанков — что-то совсем сродни паранойи.
Максим Кузнецов
17 февраля 2017, 16:02
+1
UPD: также в дополнении выводятся форматы дат в разном виде (для свежесозданных документов — в timestamp, для уже созданных в формате даты), из-за чего в одном из случаев дата возвращается в виде 1970 года.

Решение:
— перед строкой
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", $lmimsDate);

-добавить:
if (!is_numeric($lmimsDate)) {
	$lmimsDate = strtotime($lmimsDate);
}
Максим Кузнецов
17 февраля 2017, 15:37
+1
Попробовал. Last-Modified возвращает не время последней модификации ресурса, а время сервера (попробуй пообновлять запросы через сервис проверки).
Максим Кузнецов
16 февраля 2017, 16:27
0
Лично я взял исходники из первого варианта, второй не попадался на глаза. На первый взгляд выглядят одинаково, разве что табуляцией строк отличаются..)
Максим Кузнецов
16 февраля 2017, 15:40
1
+1
Небольшая сводка информации по работе lmims:
1. Дополнение работает с https, а вот представленный здесь сервис проверки last-modified.com/ru/ — нет. (рабочая альтернатива)
2. Дополнение перестает отдавать актуальную информацию, если на сайте используется MinifyX или любые сниппеты, возвращающие случайные переменные, как то:
— плейсхолдеры вида [^t^]
— любые функции рандома
— капча
— …

Способ решения проблемы:
— Заключаем актуальную информацию (без перечисленных элементов из пункта 2) в тег main:
<main role="main"></main>

— В плагине lmims заменяем строку
$hash = sha1($html);
на строку:
preg_match("'<main role=\"main\">(.*?)</main>'si", $html, $html_clear);
    
    if (strlen($html_clear[1]) > 0) {
    	$hash = sha1($html_clear[1]);
    }
    else {
    	$hash = sha1($html);
    }

3. Вероятно, у плагина есть проблемы с возвращением результата при 404/403 ошибки.