Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.

Add compatibility to StaticCache Plugin v2 #32

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

faitno
Copy link

@faitno faitno commented Jun 2, 2016

@faitno
Copy link
Author

faitno commented Sep 13, 2016

Этот пулл-регвест позволяет обрабатывать серверу форму через AJAX даже если сессия php не была инициирована клентом.
Такое поведение возникает при использовании дополнения statcache - сервер кэширует страничку отданную php-fpm при первой загрузке в обычный html файл, и при повторной загрузке использует его напрямую nginx'ом (конечно если это не ajax POST запрос, а прямой GET), минуя php-fpm - это прибавляет немного скорости, и существенно снижает нагрузку на сервер при большом трафике, но при этом не создается стандартная сессия php.
Поэтому приложение AjaxForm не может найти глобальный массив $_SESSION['AjaxForm'] и не дает отправить корректно html-форму. Однако, можно определить ID странички, с которой вызывается html-форма, через переменную $fields['pageId']), отдаваемую в POST запросе через AjaxForm, и конечно получить шаблон этой страницы с вызовом искомого AjaxForm сниппета.
При этом, мы не нарушаем стандартное поведение AjaxForm без использования statcache. Меня смущал вызов EVAl, но, как выяснилось, fenom сам использует конструкции с eval.

@bezumkin
Copy link
Collaborator

bezumkin commented Sep 13, 2016

Пытаться угадать регуляркой вызов сниппета - это не решение.

Он может вызываться и через синтаксис MODX, и через модификатор Fenom, и через разные условия, или вообще вставляться через content или ТВ параметр.

Пока не будет 100% универсального решения, я буду рекомендовать желающим самостоятельно расширять класс примерно вот так.

@faitno
Copy link
Author

faitno commented Jan 16, 2017

У нас же ajax запросы, они работают через action.php, а не через вызов сниппета в шаблоне. И именно там вызывается AjaxForm класс.
Согласен что с помощью регулярки ловить вызов сниппета не самое лучшее решение. Но такое решение используется к примеру для поиска форм.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants