Камиль
Гит
Evgeniy
https://github.com/evolution-cms/evolution/pulls
Evgeniy
Пусто
Камиль
Нет
Камиль
Твои репозиторий плагин под 1.4
Evgeniy
о0
Andrey
Напугал людей =)
Evgeniy
Воу. Тестировалось?
Evgeniy
Evgeniy
Да нет у меня времени ставить и тестировать
Evgeniy
С какой целью добавлен MODX_BASE_PATH. Куда раньше кеш падал и куда теперь?
Evgeniy
Простые вопросы для того, кто отправил PR. Почему аудитор должен гадать
Камиль
Камиль
Он почему то в некоторых случаях его не видет
Камиль
Честно не знаю в чем проблема но абсолютный пусть решил вопрос
Evgeniy
Pathologic
а, ну вообще да
Evgeniy
Но вообще, нужно больше инфы давать при составлении PR
Pathologic
как раз там такой случай
Evgeniy
И если нет понимания почему не работает. То описывать хотя бы как воспроизвести ошибку. Сейчас даже имея на руках ссылку на компонент с которым ошибка отталкиваться не от куда.
Evgeniy
Смотрю сюда https://github.com/Pathologic/Comments/blob/blade/assets/snippets/Comments/ajax.php
Evgeniy
<?php
define('MODX_API_MODE', true);
include_once(dirname(__FILE__) . "/index.php");
$modx->db->connect();
/** Принудительно обновляем конфиг */
$modx->config = array();
unlink(MODX_BASE_PATH.'assets/cache/siteCache.idx.php');
$modx->getSettings();
$modx->documentMethod = "id";
$modx->documentIdentifier = isset($_REQUEST['pageID']) ? (int)$_REQUEST['pageID'] : 1;
$modx->documentObject = $modx->getDocumentObject('id', $modx->documentIdentifier);
$modx->invokeEvent("OnWebPageInit");
Evgeniy
Что-то типо такого в ajax файлах должно быть. Ибо есть плагины завязанные на OnWebPageInit и дергают там как раз таки documentMethod, documentIdentifier, или documentObject. В итоге могут быть непредвиденные ошибки
Pathologic
а они и так будут
Evgeniy
Очень вероятно, что это и приводит к неправильному тут https://github.com/AgelxNash/EvoBlade/blob/master/assets/plugins/blade/events/OnWebPageInit.php
Yaroslav
пожскажите как вывести на одной странице, разные блоки pagebuilder ?
EVO bot Лёшка
Anonymous
Evgeniy
Yaroslav
Pathologic
Pathologic
в общем-то API_MODE уже предполагает, что не будет documentObject и всего такого, там и парсер-то не выполняется
Evgeniy
Я не помню когда в первый раз столкнулся с подобной проблемой на OnWebPageInit. С тех пор в своих скрптах всегда определяю эти данные
Pathologic
а я проверяю в плагинах ((:
Evgeniy
😊
Pathologic
но вообще ты сам и предложил эту инициализацию и с тех пор никто не жаловался
Evgeniy
Я жаловался, дорабатывал. Но после этого проблем больше небыло
Pathologic
ну в статью свою ты тем не менее дополнений никаких не вносил, в публичных решениях тоже ничего такого не наблюдается
Evgeniy
Кароче 100% в этом проблема
Evgeniy
Pathologic
а кэш зачем удалять при каждом запросе?
Evgeniy
Не помню)
Pathologic
покажи лучше, зачем тебе понадобился documentObject в onWebPageInit если его в этот момент не может быть вообще
Pathologic
он загружается позже вызова этого события
Evgeniy
https://github.com/evolution-cms/evolution/blob/1.4.x/manager/includes/document.parser.class.inc.php#L2855
Evgeniy
Чуть выше смотри и увидишь, что до вызова этого события - инициализируется documentIdentifier
Pathologic
documentIdentifier да
Evgeniy
Ну вот от этого и пляшем
Evgeniy
documentIdentifier есть, а DocumentObject пуст
Evgeniy
При этом куча скриптов вместо $modx->documentIdentifier дергает $modx->documentObject['id']
Evgeniy
Да я и сам так делаю
Evgeniy
Ну не бежать же все плагины и скрипты исправлять
Pathologic
но на самом деле не должен быть и documentIdentifier, потому что в index.php^
// execute the parser if index.php was not included
if (!MODX_API_MODE && !MODX_CLI) {
$modx->executeParser();
}
Evgeniy
Т.е. в твоих скриптах не должно быть runSnippet?
Pathologic
должно и происходит
Evgeniy
А если сниппет юзает documentIdentifier?
Evgeniy
Ну, например, DocLister/Ditto/etc...
Pathologic
для этих сниппетов я в ajax php установлю documentIdentifier
Pathologic
ну и в OnWebPageInit я их не вызывал никогда
Evgeniy
Тем не менее DLTemplate их использует
Pathologic
в OnWebPageInit там типа язык задать или подгрузить что-нибудь
Evgeniy
а EvoBlade завязан на OnWebPageInit
Evgeniy
От сюда и проблема
Pathologic
DLTemplate их в renderDoc, где сам и задает
Pathologic
и case '@DOCUMENT':
case '@DOC': здесь еще
Evgeniy
Нет
Evgeniy
DLTemplate->parseChunk('name', [], true);
Evgeniy
Это твызов приводит к запуску метода parseDocumentSource
Evgeniy
А уже от туда мы уходим в parseDocumentSource из ядра MODX. Где начинается работа дальше
Pathologic
честно говоря я уже забыл когда последний раз ставил этот flag в true
Evgeniy
Ну в Ajax скриптах норм заходило вроде бы
Pathologic
для чего?
Evgeniy
Я не помню точных кейсов
Evgeniy
Что-то там было связано с предпросмотром товара. Либо предзагрузкой чего-то