Шаблоны подстановки
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Шаблоны подстановки
Ключові поняття: правило подстановки, FastTemplate, Работа шаблона FastTemplate, файл шаблона FastTemplate, переменные в шаблонах FastTemplate, идея FastTemplate.
Шаблоны подстановкиКак можно решить такую задачу способом простой подстановки, т.е. тем методом, которым мы решили задачу отображения документов? Нужно придумать шаблон для этой страницы и где-то его хранить (в файле или в базе данных). Очевидно, что мы не можем придумать шаблон для всей страницы, потому что не знаем, сколько статей в базе данных. В шаблоне же мы договорились использовать только html и метасимволы . Поэтому мы можем написать только шаблон для одной строки списка, который уже программно надо преобразовать в нужное количество строк. Кроме того, здесь есть еще одна загвоздка - с отображением ссылки на полный текст статьи. Если мы будем действовать по правилу подстановки (менять все метасимволы на их значения из базы данных), то может получиться, что вместо вставим не ссылку на текст, а сам текст. То есть для этого элемента нужна дополнительная проверка перед заменой и какие-то дополнительные действия в случае, если в поле fulltext содержится текст статьи, а не ссылка на файл. Не будем усложнять себе жизнь и договоримся, что в поле fulltext всегда содержится только ссылка на файл. Тогда задачу можно решить следующим образом: $li_tmpl = file_get_contents("tmpl.html"); // считываем шаблон строки из файла // устанавливаем соединение и выбираем // базу данных $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++){ $tmpl .= $li_tmpl; $tmpl = str_replace("", mysql_result($q,$i,"title"),$tmpl); $tmpl = str_replace("", mysql_result($q,$i,"author"),$tmpl); $tmpl = str_replace("", mysql_result($q,$i,"abstract"),$tmpl); $tmpl = str_replace("", mysql_result($q,$i,"fulltext"),$tmpl); } echo $tmpl; ?> Если шаблон был такой, как приведен выше, то получим примерно следующее.
В принципе метод достаточно прост и удобен, но требует дополнительных усилий программиста при возникновении задач более сложных, чем простая подстановка значений. Для решения задач, где требуется делать подстановку целых блоков или даже проверять условия, создают классы шаблонов, такие как FastTemplate и Smarty. Обсудим их подробнее.
Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділСторінки, близькі за змістомзагрузка...
|
Теми розділу
Сторінки, близькі за змістом
|
Copyright © 2008—2024 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|