Сайт провинциального самурая

Сайт провинциального самурая

Собственные РНР скрипты в движке блога

Структура кода РНР скриптов на движке блога:

Заселение в движок ЛастоБлога любых PHP скриптов вполне возможно.

Например, помещение в папку ./data/php_pages/ вот такого по структуре файлика test.php:

<?php
   
   $title="Титл этого документа";
   $echo=<<<content

      <h1 class="panel">$title :</h1><br>
      <p>Тут контент.</p><br>

content;

?>

при обращении к документу test.html на уровне корня блога выведет на экран всё, что вложено Вами в контейнер content, с заданным Вами же титлом, в дизайне блога.

Совершенно понятно, что, выкинув в этом примере контейнер с HTML кодом, и разместив на его месте любой РНР скрипт, осуществляющий вывод не на экран по всяким там операторам echo или print, а в переменную $echo, будет жить и работать в оболочке блога долго и счастливо.

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

Для знакомых с РНР заселение своего скрипта в данный движок блога не составит никаких проблем. Так же как и оперирование стандартным функционалом типа ob_start(); ob_get_contents(); ob_end_clean(); (Вы же знаете, что это такое, да?), ежели вдруг с подменой вывода скрипта возиться и вовсе не хочется- демонстрационный скрипт phpinfo.php в папочке PHP страниц дистрибутива наглядно покажет, как это делается.


Структура URL'ов:

Движок блога имеет ряд глобальных переменных, дающих возможность одному РНР скрипту генерировать и обслуживать кучу страниц, без передачи каких-либо параметров в УРЛе по методу GET. И делается это крайне просто:

Любой URL вида action_cat_page.html блога вызовет срабатывание скрипта action.php из папки РНР страниц блога, причём необязательные элементы URL'а cat и page попадут в глобальные переменные $cat и $page соответственно.

Так, например, обращаясь к модулю статистики блога (выполненному в виде независимого скрипта как раз в рамках поддержки Блогом работы произвольных РНР приложений) вот по такому адресу:

    http://lasto.com/blog/stat_google-ru.html

Мы тем самым запускаем приложение stat.php и сообщаем ему в переменной $cat, что нас интересует трафик с Google.ru

Если же сформировать чуть более сложный URL:

    http://lasto.com/blog/stat_google-com_google-ru.html

то приложение stat.php получит в переменных $cat,$page упоминание уже двух разных поисковиков, и отобразит статистику для Google.com и Google.ru на одной страничке.

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


Чтение РНР скриптом данных блога:

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

Наиболее полное впечатление о структуре данных можно получить, сделав наш тестовый файл таким:

<?php pr($_s); ?>

Это выведет на экран содержимое ну очень глобального массива, в котором и содержится вся информация.

Вам могут пригодиться в работе такие элементы массива:

  1. $_s['ip'] - Айпишник серфера.
  2. $_s['from'] - Источник трафика.
  3. $_s['agent'] - Юзерагент.
  4. $_s['cats'] - массив категорий блога
  5. $_s['post_short_info'] - массив с информацией о постах и комментах к ним.
  6. $_s['admin'] - тут true; или false; в зависимости от того, под авторизацией Вы в админке, или нет.
  7. $_s['stats']['bans_hard']['host'] - массив побаненных хостов.
  8. $_s['stats']['bans_hard']['ip'] - массив побаненных айпишников.
  9. $_s['stats']['bans_hard']['iprss'] - то же, но для RSS трафика.
  10. $_s['stats']['bans_hard']['userid'] - массив побаненных юзерагентов.
  11. $_s['lang'] - все сообщения интерфейса блога для конкретного языка, под который блог поставлен.
  12. $_s['base_url'] - урл до морды блога (чтоб формировать абсолютные ссылки).
  13. $_s['encoding'] - кодировка блога
  14. $_s['email'] - email админа.
  15. $_s['master'] - имя админа
  16. ... ну и куча других переменных.

Как пособие по написанию собственных РНР приложений можете воспринимать файлы:

  1. ./data/php_pages/index.php - Скрипт морды блога с анонсами постов.
  2. ./data/php_pages/inspector.php - Онлайн одобрялка комментов к постам.
  3. ... и другие файлы этого фолдера с открытым РНР кодом.