Quote from: krasotina at Sep 22, 2010, 09:40 AM
и даже работает.. но как-то криво
Все работает так, как и должно. Для начала «кешируемый вызов дитто на некешируемой странице» - это иллюзия, если страница не кэшируется, все сниппеты на ней тоже не кэшируются, то есть выполняются каждый раз. При этом сниппеты [[ ]] выполняются всегда первыми, а [! !] – всегда после них. То есть сначала выполнился Ditto, а только потом start_for_filter. В момент выполнения Ditto в переменной $_SESSION ничего нет, но при перезагрузке страницы в переменной оказываются данные, записанные при первой загрузке start_for_filter и Ditto выдает верный результат.
Кстати, вряд ли приведенный пример работает. Для начала в [Ditto? &tpl= пропущена вторая квадратная скобка: [[. Кроме того, вложение [[…[[ ]]…]] не должно работать, так как при разборе скобок не учитывается вложения – только [[…[! !]…]] или [!…[[ ]]…!] (на практике применить можно только последний вариант).