|
Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Использование шаблонов в PHP
Метод parse
Синтаксис:
parse (возвращаемая переменная,
источники шаблонов)Метод parse() - самый основной в FastTemplate. Он устанавливает значение возвращаемой переменной равным обработанным шаблонам из указанных источников. Метод может использоваться в трех формах: простой, составной и присоединяющей.
$tpl->parse(MAIN, "main");
// простая форма
$tpl->parse(MAIN, array ("list_f", "main"));
// составная форма
$tpl->parse(MAIN, ".list_el");
// присоединяющая формаВ простой форме шаблон с псевдонимом "main" загружается (если еще не был загружен), все его переменные подставляются, и результат сохраняется как значение переменной MAIN. Если переменная {MAIN} появится в более поздних шаблонах, то вместо нее будет подставлено значение, полученное в результате обработки шаблона "main". Это позволяет создавать вложенные шаблоны.
Составная форма метода parse() создана для того, чтобы упростить вложение шаблонов друг в друга. Следующие записи эквивалентны:
$tpl->parse(MAIN, "list_f"); $tpl->parse(MAIN, ".main");
это то же самое что и
$tpl->parse(MAIN, array("list_f", "main"));Когда используется составная форма, важно, чтобы каждый шаблон, идущий в списке после первого, содержал ту переменную, в которую передаются результаты обработки шаблона. В примере выше main должен содержать переменную {MAIN}, поскольку именно в нее передаются результаты обработки шаблона list_f. Если main не содержит переменной {MAIN}, то результаты обработки шаблона list_f будут потеряны.
Присоединяющий стиль позволяет добавлять результаты обработки шаблона к переменной результата. Точка перед псевдонимом файла шаблона говорит FastTemplate о том, что нужно присоединить результат обработки этого шаблона к возвращенным результатам, а не перезаписывать его. Такой стиль наиболее часто используется при построении таблиц с переменным числом рядов, получаемых, например, в результате запроса к базе данных.
Метод FastPrint
Синтаксис:
FastPrint(обработанная переменная)
Метод FastPrint() печатает содержимое переданной в него обработанной переменной. Если он вызван без параметров, то печатается последняя использованная методом parse() переменная.
$tpl->FastPrint();
/* если продолжать предыдущий пример,
то эта функция напечатает значение
переменной MAIN */
$tpl->FastPrint("MAIN");
// эта функция сделает то же самое
Пример
15.4.
Использование метода FastPrint()
Если нужно печатать не на экран, а, например, в файл, то получить ссылку на данные можно с помощью метода fetch().
$data = $tpl->fetch("MAIN");
fwrite($fd, $data); // запись данных в файлРешение задачи с помощью шаблонов FastTemplate
Теперь попробуем собрать воедино все изученные методы, чтобы решить нашу задачу.
<?php
include("class.FastTemplate.php3"); //подключаем класс
//шаблонов FastTemplate
$tpl = new FastTemplate("c:/users/nina/tasks/"); //создаем
//объект FastTemplate
//задаем псевдонимы для имен файлов шаблонов
$tpl->define( array( main => "main.tpl",
list_f => "list.tpl",
list_el=> "list_element.tpl" ));
// Присваиваем переменной TITLE_ значение "List of articles"
$tpl->assign(TITLE_, "List of articles");
/* далее, как и раньше, устанавливаем соединение с базой
и получаем из нее значения нужных элементов */
$conn = mysql_connect("localhost","nina","123")
or die("Can't connect");
mysql_select_db("book");
$sql = "SELECT * FROM Articles";
$q = mysql_query($sql,$conn);
$num = mysql_num_rows($q);
for($i=0; $i<$num; $i++){
$title = mysql_result($q,$i,"title");
$author = mysql_result($q,$i,"author");
$abs = mysql_result($q,$i,"abstract");
$full = mysql_result($q,$i,"fulltext");
// присваиваем полученные значения переменным,
// использованным внутри шаблонов
$tpl->assign(array(
TITLE => $title,
AUTHOR => $author,
ABSTRACT => $abs,
FULLTEXT => $full ));
/* подставляем вместо переменных значения в шаблоне list_el и
добавляем полученное к переменной LIST_ELEMENT */
$tpl->parse(LIST_ELEMENT,".list_el");
}
//подставляем значения в шаблоны list_f и main
$tpl->parse(MAIN, array("list_f","main"));
Header("Content-type: text/plain");
$tpl->FastPrint(); // выводим обработанный шаблон на экран
exit;
?>
Листинг
15.4.1.
Решение задачи с помощью шаблонов FastTemplate
Заметим, что решение задачи получилось несколько более сложным, чем в первом случае, когда использовалась только функция регулярной замены. Зато здесь мы можем изменять три различных шаблона (документа в целом, списка и элемента списка).
Этот класс шаблонов появился еще до выхода PHP4 для работы с PHP3. Чтобы протестировать приведенные примеры, нужно скачать библиотеку классов FastTemplate и скопировать этот файл в свою рабочую директорию. Если вы работаете с PHP4, то в файл class.FastTemplate.php3 нужно внести пару изменений, о которых написано в документации, поставляющейся вместе с этой библиотекой.