Как уже отмечалось выше, во многих PHP-скриптах также наиболее частыми действиями являются вывод шаблона и проверка подлинности пользователя. Всвязи с этим также имеет смысл вынести эти действия в библиотечный файл. При этом для обеспечения максимальной настраиваемости программы шаблон будет представлять отдельный PHP-файл, в котором описаны вызовы функций, ответственных за вывод заголовка портала, функции выполнения запрошенного пользователем действия и вывода «подвала» сайта (то есть его нижней части, содержащей, например, сообщения об авторских правах или контактной информации). Кроме этого, в этом же шаблоне можно прописать вызовы тех функций, которые требуется выполнять для всех страниц сайта, например, вывод его меню и вспомогательных средств навигации.
Важно заметить, что вывод полной страницы является далеко не всегда желательным. Например, после отправки формы с данными обычно выводится подтверждение с автоматическим переходом на следующую страницу, и в этом случае вывод всего шаблона с сайтом является излишним. Поэтому необходимо предусмотреть, как минимум, два варианта шаблона: один – основной, предназначенный для обычной работы, а второй – быстрый, предназначенный для вывода служебных сообщений типа «информация успешно сохранена» и перехода на следующую страницу. В XPDK эти файлы хранятся в подкаталоге config и имеют названия tmplate1.php и tmplate2.php.
Очевидно, что нужно каким-то образом различать ситуации, когда требуется использовать основной шаблон, а когда – быстрый. Признаком такого различия можно сделать наличие в HTTP-запросе переменной с определенным именем, например, sbm: если это переменная не пуста, то будем использовать быстрый шаблон, если же она пуста, равна нулю или вообще отсутствует – то основной. Так как после приема информации из формы почти всегда требуется выводить подтверждение и переходить к следующей странице (это делается для того, чтобы избежать повторной отправки всех данных формы в случае если пользователь захочет обновить страницу), то необходимо сделать, чтобы при редактировании формы поле sbm задавалось не пустым по умолчанию. В формах XPDK, сгенерированных с помощью функции build_form, это реализовано через кнопку для отправки формы (input с типом submit). Эта кнопка всегда имеет имя sbm, а ее значением является текст на этой кнопке.
Однако изредка возникают ситуации, когда после отправки формы не требуется показывать подтверждающее сообщение, а желателен вывод страницы с использованием основного шаблона. В таких случаях следует добавлять в форму скрытое поле с именем nosbm и непустым значением.
Таким образом, выбор быстрого или основного шаблона производится по правилу: если переменная nosbm не пуста ИЛИ если переменная sbm пуста, то выводится основной шаблон (tmplate1.php), иначе – быстрый (tmplate2.php).