Это схема препроцессинга. На данном этапе мы определяем активную категорию.
Т.е. ту категорию output которой мы будем генерировать.
Немного подробнее:
a) Пользватель запрашивает некий URL.
b) Мы ищем категорию в базе данных с запрошенной директорией. Запрос будет наподобие: SELECT * FROM wbg_tree_categories WHERE dir='/dir/subdir/'
c) Если запрос ничего не вернул, то показываем пользователю 404 ошибку. Шаблон ошибки находитса в "predefined templates".
d) Если категория найдена , то смотрим есть ли у этой категории шаблон вывода (output template)
e) Если шаблон найден, то начинаем обработку этого шаблона и вывод otputа.
f) Если шаблон у категории не найден, то обрабатывать нечего, поэтому мы пытаемся найти категорию которую можно обработать. Для этого мы берем первую активную подкатегорию. Запрос будет выглядеть примерно таким образом: SELECT * FROM wbg_tree_categories WHERE parent_id = {nasha kategorija} AND active=1 and enabled=1 ORDER BY sort_id
g) Если подкатегория не найдена, то показываем ошибку.
h) Если категория найдена, то переходим к пункту d) где мы проверяем наличие output шаблона.
Обработка шаблона
В предыдущем этапе мы определили активную категорию и получили output template, который мы будем обрабатывать. Обработка output шаблона ничем не отличается от того как PHP обрабатывает любой .php файл. Обработчик идет построчно , все что не является PHP кодом уходит в output, все что является PHP кодом исполняется.Пример 1.
<body>
some kind of text
</body>
Пример 2.
<body>
<?php echo "this is text from php code";?>
</body>
<body>
this is text from php code
</body>
Подытожим - самое правильное рассматривать output шаблон как простой .php файл которому сделан include.
Со всеми из этого вытекающими возможностями.
Обработка данных и показ содержания страницы