Хак: Выполнение PHP кода на статических страницах
Иногда бывает полезно выполнить на статической странице PHP код (различные сервисы, mini-tools, и т.д.). В WordPress для этого есть специальный плагин, а для полюбившегося LiveStreet сделал так:
1. Открываем /classes/actions/ActionPage.php
2. В EventShowPage() добавляем следующее:
3. Теперь редактируя или создавая статическую страницу можем написать что-нибудь такое
На странице будет выведено
Теперь, господа разработчики, можете проявить фантазию и «креативничать» :)
Конечно, такое решение не подойдет для сложных архитектурных задумок (в таких случаях надо делать все «правильно» — свой Action, Module, Event`ы и т.д.), но мелкие задачи бывает проще решать так.
1. Открываем /classes/actions/ActionPage.php
2. В EventShowPage() добавляем следующее:
/**
* "PHP Allowed" Hack Start
* @author Alex Kachayev
*
* Возможность использования PHP кода в статических страницах.
* Для выполнения PHP кода, необходимо заключить его между тегами
* [PHP] тут_прописываем_PHP_код [/PHP]
*/
$oPage->setText(preg_replace_callback(
'/\[PHP\](.+)\[\/PHP\]/s',
create_function(
'$mathces',
'ob_start(); eval($mathces[1]); $content = ob_get_contents(); ob_end_clean(); return $content;'
),
$oPage->getText()
));
/**
* "PHP Allowed" Hack End
*/
3. Теперь редактируя или создавая статическую страницу можем написать что-нибудь такое
[PHP]print 'Сейчас '. date('Y-m-d H:i:s');[/PHP]
На странице будет выведено
Сейчас 2009-08-03 13:34:46
Теперь, господа разработчики, можете проявить фантазию и «креативничать» :)
Конечно, такое решение не подойдет для сложных архитектурных задумок (в таких случаях надо делать все «правильно» — свой Action, Module, Event`ы и т.д.), но мелкие задачи бывает проще решать так.
7 комментариев
Подскажите, пожалуйста, куда точно нужно вставить данный код? В программировании полный ноль, методом научного тыка не вышло…
plugins\page\classes\actions\ActionPage.class.php
Код надо вставить сразу после стоки:
я в пхп не очень, но не значит ли это, что будет обрабатываться ровно одно вхождение пхп-кода в странице?(итерации по всем совпадениям я что то не вижу). Если это так, то как можно расширить этот хак, что бы корректно обрабатывались все включения пхп-кода?
сейчас вы снова хотите одеть валенки учитывая что есть кроссовки?