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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
28 августа 2015, 14:18
0
array_column() появился только в PHP 5.5

Видимо, новый miniShop2 теперь требует PHP 5.5 для работы
Василий Наумкин
28 августа 2015, 13:46
0
Тогда это всё как-то очень странно.

Может, накручено что-то в вызовах? Добавлены какие-то джойны? У нас тут на порядки больше и веток и комментариев, однако никаких ошибок нет.
Василий Наумкин
28 августа 2015, 13:37
0
Значит, уже нужен MAX_JOIN_SIZE = 1.

Сколько же в этом тикете комментариев, что не могут присоединиться? И какая версия Tickets?
Василий Наумкин
28 августа 2015, 13:26
+1
Ты где-то вызываешь что-то с указанием TicketsClass, например pdoResources.

Такого класса в тикетах нет.
Василий Наумкин
28 августа 2015, 13:22
0
Какая версия pdoTools? Начиная в 1.9.6 там SQL_BIG_SELECTS = 1 включено по умолчанию.
Василий Наумкин
28 августа 2015, 13:18
0
Если getProducts умеет делать Inner Joisn товаров к их категориям, то нужно так и сделать.

Пример для pdoResources:
[[!pdoResources?
	&parents=`15`
	&depth=`0`
	&innerJoin=`{
		"Children": {"class":"modResource"}
	}`
	&select=`{
		"Children":"*"
	}`
	&tpl=`@INLINE <p>{{+id}} - <a href="{{+uri}}">{{+pagetitle}}</a></p>`
	&groupby=`modResource.id`
	&showLog=`1`
]]
Берем ресурсы первого уровня, цепляем к ним по одному их потомку и выводим на экран.
Василий Наумкин
28 августа 2015, 12:40
0
Проверь логи сервера, все серьёзеные ошибки php должны быть там.

Возможно включена настройка register_globals в php — от него бывает ошибка 500.
Василий Наумкин
28 августа 2015, 11:29
0
Нормально.

Каждая страница сохраняется в кэш и загружается оттуда быстрее, чем из БД. Если кэш не нужен — его всегда можно отключить в системных настройках.
Василий Наумкин
27 августа 2015, 21:39
0
Ошмётки могут пропасть после очистки кэша, наверное.

В общем, в репозитории сейчас минимально активная версия — 2.2.0-pl, все багрепорты ваши.
Василий Наумкин
27 августа 2015, 17:25
0
Ну тогда нужно не вопросы задавать, а копать самостоятельно. А потом писать всем познавательные заметки, мол смотрите как надо!

А так непонятно, зачем спрашиваешь?
Василий Наумкин
27 августа 2015, 17:13
0
Конечно, например вот добавление и изменение кучи полей при установке Tickets.
Василий Наумкин
27 августа 2015, 16:59
3
+2
В общем, этот конкретный недостаток — суть продолжение достоинств Fenom.

Все ajax запросы eventsCalendar2 отправляются на текущую страницу, где сниппет должен их словить, обработать, выдать ответ и прервать работу парсера. В общем, как написано в этой статье.

И всё отлично работает, за исключение того, что при компиляции шаблона Fenom он прописывает вывод всех данных не в переменную, которую покажет в конце, а выводит их сразу через echo.

Соотвественно, в ответ ajax запроса попадают все сниппеты, обработанные до eventsCalendar2 — и ты видишь их на странице. Это косяк старой архитектуры eventsCalendar2, ведь по уму нужно бы отправлять все запросы на отдельный коннектор или плагин, как в mFilter2 и miniShop2.

Но можно выйти из ситуации и сейчас:
1. Нужно вызывать eventsCalendar2 в шаблоне, перед всеми другими сниппетами, и сохранять его вывод в переменную.
2. А переменную уже выводить на странице. Но не в контенте, а тоже в шаблоне или в чанке, потому что ресурс обрабатывается перед шаблоном и переменная там еще будет пуста.

Тогда при обычной загрузке страницы сниппет отработает, данные сохранятся в переменную и выведутся в нужном месте страницы. А при ajax запросе сниппет отреагирует первым и выдаст чистый ответ, без других сниппетов.

Примерно так:
{set $calendar = $_modx->runSnippet('!eventsCalendar2', [
	...
])}

{$calendar}

Кстати говоря, можно так сохранять и вывод других сниппетов, чтобы вызывать их в одном месте, а показывать в другом.
Василий Наумкин
27 августа 2015, 16:23
+2
eventsCalendar2 сам ловит и отвечает на ajax запросы, так что кэшированным его вызывать вообще нельзя.

А так, он очень старенький и его нужно переписывать — у меня пока ни времени, ни желания. Поэтому пока придётся вызывать его как тег MODX, не зря же такая возможность при использовании Fenom предусмотрена.

И вообще, я с понедельника в отпуске на 2 недели и уже вообще ничего делать не хочется!
Василий Наумкин
27 августа 2015, 15:45
0
mFilter первый давным-давно не поддерживается. Использовать его можно только на свой страх и риск.

Так что, с ним от меня помощи не жди. В магазине лежит надёжный и проверенный mSearch2.
Василий Наумкин
27 августа 2015, 15:27
0
Ну а теперь загляни в исходный код страницы и посмотри, где у тебя вызывается minishop2/js/web/default.js, а где пишется miniShop2Config и подумай, в правильном ли порядке они идут?
Василий Наумкин
27 августа 2015, 15:03
0
Григорий, ну ты бы хоть ссылку дал, где посмотреть на ошибку.

Я уже молчу про подробное описание вызовов сниппетов и чанков на странице — этого вообще ждать не приходится.
Василий Наумкин
27 августа 2015, 14:18
+2
Думаю, пора просто сделать в репозитории версию 2.2.0-pl основной — сразу будет больше тестеров.

Как только Виталий примет вот этот патч и обновит версию в репозитории — можно отключать 2.1.12-pl.
Василий Наумкин
27 августа 2015, 13:30
0
miniShop2Config — это не mFilter выдаёт ошибку.
Василий Наумкин
27 августа 2015, 09:56
0
А это 90% хостингов, если не больше.

Я все свои дополнения заставляю работать на 5.3.
Василий Наумкин
27 августа 2015, 09:55
+4
2 варианта:
1. Вставить прямо в теле статьи вызов чанка\сниппета вручную, если автор текста понимает, что делает и разрешены теги в контенте.
2. Написать простенький фильтр вывода, который будет вставлять вызов чего надо через n тегов p в тексте, и вызывать контент примерно так:
[[*content:advertising]]