Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Метод assign. Синтаксис: define( array ( ключ => значение, ключ1 => значение1,

Метод define

Синтаксис:

define(array (ключ => значение, ключ1 => значение1,...))

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

$tpl->define(array (main => "main.tpl", list_f => "list.tpl", list_el=> "list_element.tpl"));

Пример 15.2. Использование метода define() (html, txt)

Здесь мы задаем псевдонимы именам файлов шаблонов. Эти псевдонимы, т.е. переменные main, list_f и list_el, будут использоваться в программе вместо соответствующих имен файлов main.tpl, list.tpl и list_element.tpl.

Синтаксис:

assign((пары ключ/значение) или (array(пары ключ/значение))

Метод assign() присваивает переменным значения, "ключ" - это имя переменной, а "значение" - значение, которое ей нужно присвоить. Чтобы переменная в шаблоне была заменена значением, это значение нужно задать ей с помощью метода assign(). Согласно синтаксису этот метод можно использовать в двух различных формах. В FastTemplate есть только один массив, поэтому, если вы повторно задаете значение одному и тому же ключу, оно будет перезаписано.

$tpl->assign(array(TITLE => "Установка и настройка ПО", TITLE => "Введение в PHP"));

Пример 15.3. Использование метода assign() (html, txt)

Здесь мы дважды устанавливаем значение переменной, доступной в файлах шаблона по имени TITLE. Эта переменная будет иметь последнее присвоенное ей значение, т.е. она равна строке "Введение в 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"); // эта функция сделает тоже самое Если нужно печатать не на экран, а, например, в файл, то получить ссылку на данные можно с помощью метода fetch(). $data = $tpl->fetch("MAIN");fwrite($fd, $data); // запись данных в файл Решение задачи с помощью шаблонов FastTemplate Теперь попробуем собрать воедино все изученные методы, чтобы решить нашу задачу. Листинг 15.4.1. Решение задачи с помощью шаблонов FastTemplate (html, txt) <?phpinclude("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("Cant 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;?> Заметим, что решение задачи получилось несколько более сложным, чем в первом случае, когда использовалась только функция регулярной замены. Зато здесь мы можем изменять три различных шаблона (документа в целом, списка и элемента списка). Этот класс шаблонов появился еще до выхода PHP4 для работы с PHP3. Чтобы протестировать приведенные примеры, нужно скачать библиотеку классов FastTemplate и скопировать этот файл в свою рабочую директорию. Если вы работаете с PHP4, то в файл class.FastTemplate.php3 нужно внести пару изменений, о которых написано в документации, поставляющейся вместе с этой библиотекой.
<== предыдущая лекция | следующая лекция ==>
Методы FastTemplate | Установка
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.