Олег

Олег

С нами с 31 октября 2016; Место в рейтинге пользователей: #87
Олег
18 июля 2017, 16:15
0
{ignore} зачастую не отрабатывает, помогает только пробел после фигурной скобки
Олег
18 июля 2017, 15:19
0
Да, не подумал.
Олег
07 июля 2017, 19:30
0
Я на всякий случай не рисковал так делать, но вроде работает :)
Спасибо, надеюсь так и продолжится.
Олег
07 июля 2017, 12:54
0
Я бы попробовал создать новый сайт, туда поставить modx и залить туда последний бэкап.
Олег
07 июля 2017, 12:51
0
modstore.pro/packages/other/tvsuperselect

Вот такое может?
Олег
06 июля 2017, 16:09
0
Попробуй в lk_company_item_new_tpl добавить вызов какого-либо сниппета, будет ли он обрабатываться?
Олег
06 июля 2017, 16:06
0
Необходимо сделать плагин на событие onDocFormSave (вроде так называется), в котором будет проверяться что публикуется и если то, что надо — письмо отправляется автору.
Вообще задачка не замороченная, можно быстро сделать.
Олег
06 июля 2017, 16:05
0
Есть специальное дополнение inheritTemplate, можно использовать его
Олег
05 июля 2017, 09:41
0
1) Благодарю, помогло!
2) Тогда на странице компонента будет путаница, мне кажется.
Олег
03 июля 2017, 16:43
+2
Автор, окстись!
Очень плохой код.

Как это сейчас работает: сначала через getCollection забираются 2000+ ресурсов, которые опубликованы. Далее мы получаем их id и для каждого делаем запрос к бд!
Это очень плохая идея.
Как минимум те же id можно получить через newQuery — так будет быстрее.
А во вторых желательно сделать 1 запрос к бд, а не 2001.

Почитай мануалы.

А вообще я бы примерно так сделал (вообще не гарантирую, что будет работать, пишу на глазок).
$mounth = 2629743;
$date = strtotime('now')-$mounth;
$where = array(
	'parent' => 19,
	'publishedon:<' => $date,
	'comments:>' => 20
	//тут надо добавить что-то про hits, но для этого сделать join таблицы modTemplateVar
);

$q = $modx->newQuery('modResource', $id);
$q->leftJoin('TicketThread','TicketThread', "`TicketThread`.`name` = 'resource-{$id}'");
$q->leftJoin('TicketComment','TicketComment', "`TicketThread`.`id` = `TicketComment`.`thread`");
$q->select('COUNT(`TicketComment`.`id`) as `comments`');
$q->where($where);

if ($q->prepare() && $q->stmt->execute()) {
    	$data = $q->stmt->fetch(PDO::FETCH_COLUMN);
	foreach ($data as $res) {
		//тут код вывода
	}
}
Вариант такого типа будет работать в сотни раз быстрее
Олег
03 июля 2017, 15:58
+1
Вы путаете, newQuery — это создание запроса xPDOQuery, а getCollection и getIterator получение результата на основании параметров (это может быть и обычный массив и xPDOQuery)

В случае getCollection и getIterator вы получаете объекты xpdo, из которых вы можете получить подготовленные данные через метод get.
Как я понял — объекты не нужно получать, ведь там просто вывод результатов.

Я вчитался в код и офигел… Сначала выбираются минимум 2000 страниц, после чего для каждой из них идет запрос к базе.

Да, тут вообще вопрос в другом — как избавится от такого количества запросов.
Олег
03 июля 2017, 15:13
0
Я не уверен, конечно, но лучше использовать newQuery. С getIterator почти нет опыта, но читал, что меньше всего нагрузка именно при newQuery.
Олег
03 июля 2017, 15:11
0
Глаза резануло название.

Я бы глянул в сторону FastUploadTV.
Вообще по migx что-то такое было, по-моему по запросу migx-галерея.

Будет пример ajax-галереи с мультизагрузкой.
Олег
03 июля 2017, 11:28
0
Отлично! Спасибо большое!
Олег
03 июля 2017, 11:07
0
Я думаю в таком случае будет правильнее сделать форму отдельной страницей и подгружать ее через ajax, тогда лишняя информация не будет индексироваться поисковиками, да и страница будет поменьше весить.
Олег
03 июля 2017, 10:52
+1
Я как понимаю раздел не тот выбран, тут раздел с вопросами.
Олег
03 июля 2017, 10:50
0
Я так понимаю [[+id]] пустой, потому выводит все товары.
Попробуй убрать параметр parents или заменить [[+id]] на [[*id]]
Олег
30 июня 2017, 11:53
0
Я думаю стоит включить лог и посмотреть, что происходит.
Олег
30 июня 2017, 11:45
0
В чанке нужно сделать вывод через GetImageList
Олег
26 июня 2017, 10:25
0
Попробуйте вернуть в форму блок с нужным id, тогда все должно работать.