Практически все хоть раз да слышали о разделении кода и содержания, текста и оформления, отделения логики от представления. Смысл в том, чтобы программный код был максимально независим от дизайна сайта. Это позволяет:
1. вести работу над дизайном и программированием одного сайта параллельно;
2. легко вносить изменения, не боясь что-нибудь ?испортить?;
3. быстро делать редизайн всего сайта или отдельных его разделов;
4. добавлять новые программные модули без существенной переделки HTML-кода.
Исходно в одном файле PHP уживается код HTML и его программная часть, которые порой так перемешаны, что для разбора и модификации текста приходится тратить массу усилий и времени. Для упрощения работы над сайтом и предназначены шаблонизаторы, к которым относится Smarty.
Применение Smarty достаточно удобно, но многим разработчикам в первое время может показаться непривычным. Сайт при использовании Smarty разбивается на два основных блока ? программы и шаблоны. Программа это ?чистый? PHP-код, но не содержащий никаких echo и других способов вывода. Шаблон же по структуре напоминает HTML-документ, перемежающий специальными smarty-переменными.
Алгоритм работы сайта в этом случае следующий.
1. Загружается PHP-программа, она получает все необходимые данные формы, GET или POST-запроса. Например, адрес страницы htmlbook.ru/content/?id=100 означает, что требуется обратиться к базе данных (БД) и получить запись с идентификатором 100.
2. После получения запрашиваемой информации программа записывает результат в специальные smarty-переменные.
3. Эти переменные передаются обработчику Smarty.
4. Загружается нужный файл с шаблоном.
5. В шаблоне вместо переменных отображается запрашиваемая из БД информация.
Связь между программой и шаблоном осуществляется с помощью своих переменных.
Программа на PHP ? переменные ? шаблон Smarty
Остается только обговорить вначале имена переменных, чтобы они совпадали в коде и шаблоне. Значения этих переменных, как вы понимаете, не важны, поскольку они могут меняться по ситуации.
Разделение оформления и кода не единственное достоинство шаблонизаторов. В частности, Smarty берет на себя множество функций по модификации результатов, например, вывода текста и даты. Так, можно выводить дату в любом требуемом формате, преобразовывать текст в верхний или нижний регистр, подсчитывать число строк. Также легко сделать в таблице чередование белых и серых строк, выводить данные только по определенному условию, включать или выключать кэширование целых страниц или отдельных блоков. Короче говоря, возможности Smarty ограничены лишь нашей фантазией и, конечно, знаниями этих возможностей.
Ниже приведены краткие примеры требуемых файлов, чтобы вы оценили, о чем идет речь.
$result = mysql_query("SELECT * FROM sbs_content WHERE content_id= $id"); $row = mysql_fetch_array($result); $smarty->assign("title", $row["content_title"]); $smarty->display('sbs.tpl'); } else $smarty->display('index.tpl'); ?>
После загрузки программа проверяет, указана ли в GET-запросе переменная id. Если да, то из БД извлекается заголовок статьи и передается в Smarty в виде переменной title. Далее загружается шаблон с именем sbs.tpl. В том случае, когда id нет, то идет загрузка шаблона index.tpl. Как видите, шаблонов может быть неограниченно много и их можно загружать по необходимости.
Файл sbs.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>htmlbook.ru - {$title|default:"Учебники по HTML и CSS"}</title> </head> <body> ... </body> </html>
TPL-файл выглядит как обычный HTML-документ за исключением {$title}. Вместо этой переменной будет выведен текст, полученный из БД. Если по каким либо причинам значение этой переменной не определено, то будет вставлен текст по умолчанию. Он указывается в кавычках внутри переменной.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Vlad
Практически все хоть раз да слышали о разделении кода и содержания, текста и оформления, отделения логики от представления. Смысл в том, чтобы программный код был максимально независим от дизайна сайта. Это позволяет:
1. вести работу над дизайном и программированием одного сайта параллельно;
2. легко вносить изменения, не боясь что-нибудь ?испортить?;
3. быстро делать редизайн всего сайта или отдельных его разделов;
4. добавлять новые программные модули без существенной переделки HTML-кода.
Исходно в одном файле PHP уживается код HTML и его программная часть, которые порой так перемешаны, что для разбора и модификации текста приходится тратить массу усилий и времени. Для упрощения работы над сайтом и предназначены шаблонизаторы, к которым относится Smarty.
Применение Smarty достаточно удобно, но многим разработчикам в первое время может показаться непривычным. Сайт при использовании Smarty разбивается на два основных блока ? программы и шаблоны. Программа это ?чистый? PHP-код, но не содержащий никаких echo и других способов вывода. Шаблон же по структуре напоминает HTML-документ, перемежающий специальными smarty-переменными.
Алгоритм работы сайта в этом случае следующий.
1. Загружается PHP-программа, она получает все необходимые данные формы, GET или POST-запроса. Например, адрес страницы htmlbook.ru/content/?id=100 означает, что требуется обратиться к базе данных (БД) и получить запись с идентификатором 100.
2. После получения запрашиваемой информации программа записывает результат в специальные smarty-переменные.
3. Эти переменные передаются обработчику Smarty.
4. Загружается нужный файл с шаблоном.
5. В шаблоне вместо переменных отображается запрашиваемая из БД информация.
Связь между программой и шаблоном осуществляется с помощью своих переменных.
Программа на PHP ? переменные ? шаблон Smarty
Остается только обговорить вначале имена переменных, чтобы они совпадали в коде и шаблоне. Значения этих переменных, как вы понимаете, не важны, поскольку они могут меняться по ситуации.
Разделение оформления и кода не единственное достоинство шаблонизаторов. В частности, Smarty берет на себя множество функций по модификации результатов, например, вывода текста и даты. Так, можно выводить дату в любом требуемом формате, преобразовывать текст в верхний или нижний регистр, подсчитывать число строк. Также легко сделать в таблице чередование белых и серых строк, выводить данные только по определенному условию, включать или выключать кэширование целых страниц или отдельных блоков. Короче говоря, возможности Smarty ограничены лишь нашей фантазией и, конечно, знаниями этих возможностей.
Ниже приведены краткие примеры требуемых файлов, чтобы вы оценили, о чем идет речь.
Файл index.php
После загрузки программа проверяет, указана ли в GET-запросе переменная id. Если да, то из БД извлекается заголовок статьи и передается в Smarty в виде переменной title. Далее загружается шаблон с именем sbs.tpl. В том случае, когда id нет, то идет загрузка шаблона index.tpl. Как видите, шаблонов может быть неограниченно много и их можно загружать по необходимости.
Файл sbs.tpl
TPL-файл выглядит как обычный HTML-документ за исключением {$title}. Вместо этой переменной будет выведен текст, полученный из БД. Если по каким либо причинам значение этой переменной не определено, то будет вставлен текст по умолчанию. Он указывается в кавычках внутри переменной.
Link to comment
Share on other sites
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.