Zebrum Lite 1.0.12: PHP на любой странице

24 сентября 2008 | 27 комментариев

Zebrum Lite продолжает развиваться. Сегодня мы представляем вам новую версию – 1.0.12.

Теперь вы можете использовать PHP на любой странице сайта!

Специально для возможности использовать вставки PHP-кода в содержимом страниц был добавлен фильтр php. В свойстве страницы @@filter теперь можно указать последовательность фильтров через запятую, которые будут применяться к содержимому страницы.

Например, при использовании последовательности php, text2html содержимое страницы сначала будет интерпретировано как PHP-код, а затем результат будет оформлен в параграфы. Если поменять фильтры местами (text2html, php) то сначала произойдет преобразование текста в параграфы, а лишь затем выполнение PHP-кода (в этом случае первый фильтр может повредить PHP-код, что приведёт к возникновению ошибки синтаксиса).

Для того, чтобы разрешить или запретить использование фильтра php, в настройки системы была добавлена опция allowphp, которую нужно указывать в секции [source]:

[source]
; флаг разрешения интерпретации содержимого страниц как PHP-кода
allowphp = on

Если этой опции нет в настройках системы, то фильтр php будет возвращать текст без изменений.

Как быть, если PHP-код страницы нужно выполнять при каждом запросе? Нужно добавить свойство страницы @@cache со значением off. Например, если главная страница задана следующим образом

@@title=Главная страница
@@filter=php, text2html
@@cache=off
Время на сервере: <?php echo date('d.m.Y H:i:s'); ?>

то при каждом заходе на эту страницу будет выводиться текущее время на сервере вне зависимости от настроек кэширования. Если изменить свойство страницы @@cache на значение on (или просто удалить его), то результат выполнения PHP-кода страницы будет кэшироваться. Свойство @@cache влияет только на кэширование текста страницы, т.е. меню и другие элементы, которые должны кэшироваться, будут кэшироваться.

Теги: , ,

  • Zebrum

    Они обычно отображаются с некоторой задержкой (после установки кода), потому что AdSense требуется время для подбора релевантных объявлений.

  • Евгений

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

  • Zebrum

    Блоки AdSense нужно прописать в шаблоне сайта (template.php)
    Можно встроить несколько блоков в разные места шаблона.

    Например, над текстом статьи, под текстом статьи и в столбике навигации под меню и облаком тэгов.

  • Евгений

    Подскажите как установливать блоки AdSense на сайт

  • Zebrum, спасибо за то, что хотели помочь, но, пожалуй, овчинка не стоит выделки ;)
    В данное время меня больше волнуют некоторые другие аспекты работы «зебры».

    Пойду, скажу о них на форуме =)

  • Zebrum

    inst,
    Это очень специфичный функционал. Если имя пользователя или хост сервера должен выводиться на какой-то одной странице, то это можно сделать и используя PHP-код в теле страницы (используя API). Если для всех, то можно создать класс, реализовав интерфейс ztransform (как пример, images), который будет изменять заголовки страниц.

    Если интересно, пишите на форуме.

  • Например, вывод имени пользователя, введённое на предыдущей странице сайта.
    Ну а вообще: хотя бы базовые переменные вроде HTTP_HOST =)

  • Zebrum

    Интернет-сервисы,
    А что требуется динамически выводить в заголовке? Может это можно реализовать используя текущую версию Zebrum Lite.

  • Ребят, а можно добавить поддержку хотя бы вывода переменных php-окружения в title'ах документов? :)

  • Nokia-fan

    Хороший апгрейд:) PHP очень в тему;)

  • Большое спасибо за оперативный совет.
    Учтите, пожалуйста, эту мелочь в следующих версиях Вашей замечательной CMS для сателлитов :)

  • Zebrum

    inst,

    Файл index.php, строчка 50:
    вот это:

    define('ZENGINE', $_SERVER['REQUEST_URI']);

    заменить на это:

    define('ZENGINE', current(explode('?', $_SERVER['REQUEST_URI'])));

  • Как я и предпологал, POST работает нормально. А вот по поводу регулярных выражений: мне казалось, что это реализуется через файл .htaccess. Оказалось - казалось. В связи с эти появился вопрос.

    Подскажите, пожалуйста, что где и как подправить, чтоб можно было работать со ссылками, как с реальными файлами? Т.е. чтоб работали как ссылки «домен/whois.php», так и ссылки вида «домен/whois.php?ip=127.0.0.1».

  • inst

    Обнаружил проблему. Из-за ЧПУ неправильно обрабатываются адреса страниц php с дополнительными параметрами. Т.е. в папке content лежит например файл whois.txt. Таким образом все запросы, посылаемые по адресу домен/whois.html обрабатываются как и должны, но стоит только добавить в конец «?» и скрипт перестаёт отрабатывать :(

    Решение проблемы в данной версии вижу в переходе с метода GET на POST, но в следующих версиях хотелось бы, чтобы проблема была решина. Думаю, по средствам регулярных выражений можно реализовать отслеживание не запросов заканчивающихся на .html, а содержащих этот шаблон.

  • Да, действительно, форма обратной связи не помешает.

  • qw7171

    Во только, что зашел к автору на сайт и увидел:
    _http://flashripper.net/200... (инфо о новой версии). Авторы zebrum плз, прикрутить форму обратной связи к своей цмс. Будет круто. Заранее спасибо вам!

  • qw7171

    Да там есть один косяк, который мешает нормальной жизни но надеемся на будущее светлое, что автор скрипта исправит, и авторы Zebrum прикрутят форму в свою цмс

  • qw7171, спасибо за ссылочку, интересная вешь, правда еще не доделанная. Но эта ссылка скорее для авторов Zebrum более полезной будет, дабы на накопленном опыте сделать свою родную форму обратной связи.

  • qw7171

    Форму простенькую с защитой от спама, можно взять тут:
    _http://flashripper.net/200...
    Сам ей пользуюсь и доволен

  • А зачем прикручивать, если уже есть поддержка пхп? Простенькая форма обратной связи с капчей и отправкой на мейл через функцию того же пхп. Зато у каждого своя, меньше спамить и степень уникальности повышается для сайтов.

  • Сергей

    Какие?

  • qw7171

    А насчет формы обратной связи. В сети существует всего две хорошие формы на мой взгляд. можно было бы любую прикрутить сюда

  • они и так любят, сходи на форумы из поста пораньше

  • Спасибо за обновление.
    Главное что бы ПС любили вашу cms :-)

  • Отличная новость для всех поклонников zebrum.
    Ждем выхода zebrum cms с нетерпением.

  • Урра!!! Долгожданное обновление!!!
    Бегу изучать!
    (Все-таки, про форму обратной связи не забывайте, для полноты ощущений-полезная штука :)

  • Хорошо бы сюда добавить несколько и других городов или поясов (#закомментированные#)

    date_default_timezone_set('Europe/Moscow');

    GMT
    GMT+1
    GMT+2
    GMT+3

    А то можно с форматом города ошибиться самому

blog comments powered by Disqus