Как запустить php скрипт в October CMS

Запуск .php скрипта в October CMS

Этот день я начал с постановки простой задачи — доделать основную верстку проекта и запустить отправку данных из на почту. Задача решается за пару минут, если бы не тот факт, что это мой первый сайт на October CMS, да и ответов на нестандартные вопросы (тем более на русском) не очень много. Плюс ко всему хочется обойтись без плагинов.

Запуск php скрипта в October CMS

В моём случае имеется хостинг на reg.ru, October CMS, сайт в пару десятков страниц и простая форма email-подписки в футере, вот такая:

А так же вполне стандартный обработчик на php, который раньше я просто использовал и не видел возможных проблем:

Из первых строк скрипта видно, что к нему дополнительно подключаются ещё один php-файл, к которому в свою очередь так же подключаются php.

В целом всё это не несёт проблем в повседневной жизни, например, с тем же WordPress.

Проблема

Что будет, если запустить всё как есть? Вот что происходит при клике на кнопку:

Как запустить .php скрипт в October CMS

Если попытаться запустить файл вручную, то есть прописать в адресной строке что-то вроде 123.ru/mail.php, полностью указать путь или как угодно танцевать с бубном, проблему это не решит. Тут стоит сказать что все страницы в October (да и вообще почти все файлы) имеют расширение .htm, и просто вставить туда скрипт не выйдет. Однако для работы с php всё же есть механизм.

Решение, предложенное в документации

Но не спасающее в данной ситуации. Для работы с php кодом можно пойти 2-мя путями: писать этот самый код в редакторе, который встроен в CMS, или вручную добавить следующий код на страницу и вписывать php:

И этот способ вполне можно использовать пока вы работаете с одним файлом, однако в моей ситуации постоянно будет возникать ошибка при считывании других php. В итоге эту процедуру придется провести с каждым файлом, что может занять реально довольно много времени.

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

Идеальное для меня решение

Я должен сказать, что этот способ не назвать невероятно грамотным решением, но скорее всего я буду использовать именно его в ближайшее время, пока не найду более изящного выхода.
Как оказалось, October добавляется в файл .htaccess правила, при которых всё перенаправляется в CMS, и php файлы не могут быть просто загружены на хостинг и открыты по ссылке — CMS просто не даст этого сделать. Чтобы обойти этот момент, достаточно создать новую директорию в корне (на самом деле где угодно, так просто удобнее), и добавить правило для исключения этой директории в .htaccess, перед REQUEST_FILENAME (таких строки две, и для себя я добавил исключения также дважды):

Заключение

Надеюсь, что кому-то я помогу, потому что сам сегодня я потратил около 4 часов на выяснение этой проблемы, и не нашёл ничего на русском языке, и совсем немного на английском. Я понимаю что моё решение — скорее костыль, и я просто уверен что есть те, кто знает как это решить по-человечески — так что буду рад, если вы напишете об этом.

В целом October — классный, пожалуй буду и дальше его изучать и может быть писать о решении подобных проблем, уверен что они ещё будут.

Всем успехов, и спасибо этому порталу — меня он выручал уже сотню раз.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий