Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
24 мая 2015, 12:12
+1
1. Они так и должны выводиться, по menuindex. Но нужно понимать, что выводится не дерево, а именно категории, и к ним уже добираются раздельно их родители.
То есть, отсортированы по menuindex именно категории, без своих родителей.

2. Если у ресурсов указана дата отмены публикации, то нужно использовать поле unpub_date, а не createdon.
Василий Наумкин
24 мая 2015, 12:08
0
Ну я не знаю, может начать всё-таки с getTickets, который выводит тикеты и поддерживает все нужные плейсхолдеры и параметры?
Василий Наумкин
24 мая 2015, 11:34
0
mFilter2 не может работать со всеми сниппетами на свете. Они должны, как минимум, иметь параметр &returnIds=`1`, при включении которого будет возвращен список подходящих id ресурсов.

Ну и я вообще не понимаю, как именно могут фильтроваться результаты сниппетов TicketLatest (смысл которого выводить последние тикеты или комменты, в порядке их появления) или pdoCrumbs (который выводит хлебные крошки в строго определённом порядке).

На мой взгляд, если возникают подобные идеи — на сайте что-то очень не так.
Василий Наумкин
24 мая 2015, 03:35
+1
Вывести, если оно уже получено сниппетом, примерно так же как и раньше:
{$tvname}

А получить прямо из шаблона или чанка можно так
{$modx->getObject('modResource', 15)->getTVValue('tvname')}

Если ресурса с id 15 нет, то будет ошибка. Поэтому, безопаснее вот так:
{set $resource = $modx->getObject('modResource', 15)}
{if $resource}
	{$resource->getTVValue('tvname')}
{/if}
Василий Наумкин
24 мая 2015, 03:29
+1
Не знаю, так повелось.

Большинство функционала Tickets нагло позаимствовано с Хабра, а там с этим строго.
Василий Наумкин
23 мая 2015, 15:19
0
Какие id,class должны быть
Посмотри в родных чанках галереи, это несложно.
Василий Наумкин
23 мая 2015, 11:41
+1
Этот сайт похож на блог?

Он сделан на Tickets.
Василий Наумкин
23 мая 2015, 06:27
0
То, что сначала нужно установить стабильную версию, я потом её обновить — нормально. Сейчас действительно доступны 2 ветки, причем вторую для рабочих сайтов устанавливать не рекомендуют.

А вот косяк с раздвоением поправил.
Василий Наумкин
22 мая 2015, 15:51
+1
Да там 10 разу уже всё поменялось, так что не получится.

Скоро будет платное дополнение для вывода погоды с Яндекс, можно будет прикупить.
Василий Наумкин
22 мая 2015, 14:59
0
Что-то мне надоело угадывать, что ты имел в виду.

Давай дальше сам.
Василий Наумкин
22 мая 2015, 14:53
0
Ну а эта конструкция, по твоему, как-то магически данные получает, без запросов в БД?

Бери плейсхолдер [^t^], делай разные запросы и замеряй производительность.
Василий Наумкин
22 мая 2015, 13:22
0
Это же наоборот круто, больше не будет пустых или кривых тегов, от которых может повеситься парсер MODX.

В конце концов, любые изменения оформления сайта — это разработка, и её нужно проверять.
Василий Наумкин
22 мая 2015, 12:55
0
Ну а тут разницы особой и быть не может, потому что с одной стороны разбор тега MODX и создание из него объекта, что занимает милисекунды, а с другой — компиляция шаблона или вытаскивание его из кеша.

Что там, что там в итоге вызывается метод MODX и дальше всё время уходит ему. Поэтому используй что удобнее.

Мне больше нравится новый синтаксис, потому что там нормальные массивы и типы переменных.
Василий Наумкин
22 мая 2015, 11:26
+1
Нет, ты неправильно понимаешь.

Раньше &cache_key указывал только префикс для кэша — директорию куда его складывать. Сейчас префикс по умолчанию default, если указывается свой &cache_key. Если не указывается, то для pdoPage генерируется ключ по старому алгоритму, который отправляет его в кэш ресурса.

То есть, указав произвольную строку можно получить кэширование сниппета для всех страниц сайта. Но в случае с pdoPage это не имеет смысла, потому что контент меняется в зависимости от номера страницы, поэтому там лучше оставить автоматическую работу.

Но, если вдруг тебе необходимо на разных страницах сайта выводить один и тот же контент, с одной и той же постраничной навигацией, то теперь можно сделать и так:
[[!pdoPage?
	&parents=`0`
	&ajaxMode=`default`
	&cache=`1`
	&cache_key=`pdopage/page1-[[!#request.page]]`
]]
Еще раз повторяю — раньше такого не было, ты просто менял директорию для хранения кэша, а внутри там всё равно были пути к ресурсам.

Сейчас всё гораздо круче:


Ибо когда +300 страниц, и на каждой странице (?page=) будет время 3-10 секунд
У нас здесь тысячи страниц выводятся без кэша — и нет проблем. Как так?
Василий Наумкин
22 мая 2015, 11:07
0
Подтверждаю. Видимо, Chrome обновился =)
Василий Наумкин
21 мая 2015, 14:15
+1
Нашел в чем дело, в новой версии будет исправлено.

А пока можно просто переписать на Fenom вот так:
{$modx->getChunk($modx->resource->id == 1 ? 'chunk1' : 'chunk2')}
Василий Наумкин
21 мая 2015, 13:56
0
Да, похоже парсер MODX где-то успевает подлезть.

Попробую разобраться.
Василий Наумкин
21 мая 2015, 13:33
0
Нет, Fenom работает как PHP. Если условие не срабатывает — ничего внутри не запускается.

Можно смело делать вот так:
{if $.get.test == 1}
    [[!pdoResources?
        &parents=`0`
    ]]
{else}
    [[!pdoMenu?
        &parents=`0`
    ]]
{/if}
И проверять страницу, передавая параметр ?test=1 или ?test=0

А пример у тебя неверный, не знаю, где ты такое вычитал.