Хак: Выполнение PHP кода на статических страницах
39
Иногда бывает полезно выполнить на статической странице 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
- 03 августа 2009, 14:41
- kachayev
2. В EventShowPage() добавляем следующее:
Подскажите, пожалуйста, куда точно нужно вставить данный код? В программировании полный ноль, методом научного тыка не вышло…
добрый день всем. у меня вопрос. меня смущает вот этот момент в коде:
я в пхп не очень, но не значит ли это, что будет обрабатываться ровно одно вхождение пхп-кода в странице?(итерации по всем совпадениям я что то не вижу). Если это так, то как можно расширить этот хак, что бы корректно обрабатывались все включения пхп-кода?
eval($mathces[1]);я в пхп не очень, но не значит ли это, что будет обрабатываться ровно одно вхождение пхп-кода в странице?(итерации по всем совпадениям я что то не вижу). Если это так, то как можно расширить этот хак, что бы корректно обрабатывались все включения пхп-кода?
это было во времена когда плагинов не существовала и архитектура была не настолько гибка.
сейчас вы снова хотите одеть валенки учитывая что есть кроссовки?
сейчас вы снова хотите одеть валенки учитывая что есть кроссовки?

- beauty_free
- 25 декабря 2011, 01:54
- ↑
- ↓
Комментарии (7)
RSS свернуть / развернуть