Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Основи використання шаблонізатора Smarty

З'явилася необхідність створення сайту працює на декількох мовах З'явилася необхідність створення сайту працює на декількох мовах. Перебравши в голові кілька варіантів, вирішив що найвдалішим буде використання шаблонізатора, тим більше його впровадження назрівало вже давно. З його допомогою код сайту буде відділений від його уявлення (HTML коду). Таким освітньої, не змінюючи PHP код ми зможемо швидко змінювати уявлення сайту і тим самим отримаємо можливість легкого додавання необхідної кількості мов.

Спори з приводу застосування готових шаблонизатор (і Smarty зокрема) не згасає досі, в коментарях до кожної статті на цю тему можна знайти величезну кількість записів про те, що використання готових шаблонизатор з абсолютно різних причин невиправдано. Проаналізувавши дані повідомлення, особисто я, прийшов до висновку, що всі вони залишені в основному початківцями програмістами, а так само людьми які дуже люблять все винаходити заново. Рано чи пізно, але веб-розробник приходить до необхідності використання шаблонізатора.

У маленьких сайтах звичайно використання шаблонів не дуже виправдано, але коли сайт досить великий і особливо якщо при створенні задіяні кілька людей (один працює з кодом, а інший нічого не розуміючи в коді вільно може змінювати дизайн сайту), то використання шаблону просто необхідно. З'являється можливість досить легко масштабувати сайт і нарощувати його функціональність. Та й просто перегляд і написання чистого PHP (або HTML) коду набагато приємніше ніж суміші з різних мов.

Зараз в мережі можна знайти величезну кількість різних шаблонизатор і просто способів створення шаблонів (аж до простого застосування str_replace). У мене не стоїть завдання розглядати їх всі і тому я вирішив взяти, мабуть, один з найпопулярніших - Smarty . Головними його особливостями є: компіляція в один прохід, можливість включення PHP-коду прямо в шаблон, вбудований механізм кешування, можливість підключення плагінів, наявність отладочной консолі і ще багато різноманітних функцій. Даний шаблонизатор володіє досить потужними механізмами для розширення функціоналу (маштабованість) і про його більш просунутому застосуванні буде розказано в наступних статтях.

Отже, давайте розглянемо як же все це працює. За замовчуванням Smarty заточена під схему розробки модель-уявлення-контролер (Model-view-controller). Model (ядро) тут - сукупність джерела даних і функцій, які працюють з цими даними на базовому рівні (прочитати, записати, змінити). View - шаблон, який відповідає за зовнішній вигляд сторінки. Controller (контролер) - сукупність прикладної логіки веб-додатки, яка забезпечує обробку даних, отриманих від ядра або користувача, вибір шаблону і висновок результату на екран. Якщо пояснити зовсім по простому, то це виглядає приблизно так: ви пишете код, який створює набір даних для шаблону, віддаєте разом з назвою шаблону Smarty і той все об'єднує, виводячи в браузер результат. Це і є так звана MVC.

Це і є так звана MVC

Model-view-controller

Перед початком роботи потрібно створити директорії, необхідні для роботи Smarty, за замовчуванням мають такі імена (ми створимо трохи інші, див. Приклад):

  • templates - директорія, де ми будемо зберігати створені шаблони;
  • templates_c - директорія, де Smarty буде зберігати скомпільовані шаблони;
  • configs - директорія для зберігання конфігураційних файлів;
  • cache - директорія для кеша.

Розглянемо найпростіший приклад використання шаблону. Для цього нам знадобляться два файли: файл шаблону - index.tpl і файл логіки - index.php

Файл index.tpl - звичайний html документ зі спеціальними вставками

<Html> <head> <title> {$ title} </ title> </ head> <body> {* Коментар, якого не буде в HTML коді *} <p> {$ body_text} </ p> <small> {$ smarty.now | date_format: "% d-% m-% Y% H:% M:% S"} </ small> </ body> <! - Коментар, який буде в HTML коді -> < / html>

файл index.php

require_once ( 'Smarty.class.php'); // підключаємо smarty $ smarty = new Smarty (); // створюємо новий екземпляр класу $ smarty-> template_dir = './templates/'; // задаємо адреси для робочих папок $ smarty-> compile_dir = './templates/compile/'; $ Smarty-> cache_dir = './templates/cache/'; $ Smarty-> caching = false; // вимикаємо кешування $ smarty-> debugging = true; // включаємо режим налагодження (отладочную консоль) $ smarty-> assign ( 'title', 'Приклад використання Smarty'); // призначаємо змінні для шаблону $ smarty-> assign ( 'body_text', 'Це текст, виведений ф-цією assign ()'); $ Smarty-> display ( 'index.tpl'); // публікуємо шаблон

Змінні в шаблоні можуть бути декількох типів:

  • Змінні, значення яких присвоюється в php-скрипті користувача, повинні мати перед ім'ям знак долара. Наприклад: {$ first_name}
  • Елементи масиву, значення яких були присвоєні в php-скрипті користувача, доступні в шаблоні за допомогою синтаксису {$ імя_массіва.ассоціатівний_ключ}. Наприклад: {$ person.last_name}
  • Елементи не асоціативного масиву доступні за допомогою синтаксису квадратних дужок: {імя_массіва [чісловой_індекс]}. Наприклад: {$ person [2]}
  • Властивості об'єктів, задані в php-скрипті, доступні в шаблоні за допомогою такого синтаксису: {імя_об'екта-> імя_свойства}. Наприклад: {$ person-> email}
  • Змінні, завантажені з конфігураційних файлів, укладаються між символами #. Також вони доступні як елементи асоціативного масиву $ smarty.config. Наприклад: {# bodyBgColor #} або {$ smarty.config.bodyBgColor}

У Smarty допускається використання модифікаторів, щоб їх застосувати потрібно вказати його назву після вертикальної риски, наступного за ім'ям змінної, функції або рядком, до якої він застосовується. Наприклад, щоб перевести значення змінної {$ title} в верхній регістр, потрібно застосувати до неї модифікатор upper, тобто написати наступне: {$ title | upper}. Або як ми зробили в нашому прикладі, використовуючи модифікатор date_format для формування поточної дати на основі змінної {$ smarty.now}.

Для зручності користування шаблони можна розбивати на блоки, при виклику методу display ( 'index.tpl') головного шаблону, опубліковуватимуться все дочірні. Якщо ім'я одного з блоків задається тільки після обробки php скрипта, то ім'я блоку можна передати всередині змінної. У такому випадку ім'я підключається файлу полягає не в одинарні лапки, а в подвійні.

файл index.tpl

{Include file = 'templates / header.tpl'} Головна сторінка {include file = "$ tpl_name.tpl"} {* Підключаємо блок з заздалегідь не відомим ім'ям *} {include file = 'templates / footer.tpl'}

Дуже корисною функцією є можливість використання оператора умови - {if}:

{If $ var> 5} Змінна, отримана шаблоном більше 5. {else} Змінна, отримана шаблоном менше або дорівнює 5. {/ if}

Для підключення JavaScript існує спеціальний блок - {literal} {/ literal}, який вимкне обробку шаблона в даному місці. Необхідність його застосування з'явиться коли Ви захочете вставити в шаблон скрипт містить фігурні дужки - {} (наприклад JQuery скрипт). Оскільки такі дужки використовуються самим Smarty для позначення змінних, він резонно видасть помилку на чужорідну конструкцію.

{Literal} <script type = "text / javascript"> function hello () {alert ( "Hello world!"); } </ Script> {/ literal}

А тепер я наведу більш складний приклад ілюструє висновок масиву даних.

файл news.php

require_once ( 'Smarty.class.php'); // підключаємо smarty $ smarty = new Smarty (); // створюємо новий екземпляр класу $ smarty-> template_dir = './templates/'; // задаємо адреси для робочих папок $ smarty-> compile_dir = './templates/compile/'; // Отримуємо масив даних з таблиці MySQL $ news = $ DB-> query ( "SELECT id, title, description FROM news ORDER BY id"); $ Smarty-> assign ( 'news', $ news); // передаємо масив в шаблонизатор $ smarty-> assign ( 'title', 'Список новин'); $ Smarty-> display ( 'news.tpl'); // публікуємо шаблон

файл news.tpl

<Html> <head> <title> {$ title} </ title> </ head> <body> {* підключаємо шапку шаблону *} {include file = 'header.tpl'} {foreach from = $ news item = item } Тема новини: {$ item.title} Текст новини: {item.description} <a href="index.php?page=news&id={$item.id}"> Детальніше ... </a> {/ foreach } {* підключаємо footer шаблону *} {include file = 'footer.tpl'} </ body> </ html>

Важливо запам'ятати, що всі відображаються дані повинні бути сформовані в скрипті до передачі в шаблонизатор! Працювати з даними в самому шаблоні не потрібно, він не для цього.

Думаю для розуміння сенсу роботи механізму шаблонів Smarty цього буде досить, тепер ви вільно зможете створювати прості шаблони, а трохи потренувавшись і більш складні.

Зауважу, що представлений шаблонизатор досить важкий і тому з'явилася його полегшена версія - TemplateLite . Ось результати тестів з офіційного сайту виконані на PHP 5.1.1.

Порівняння швидкості роботи Smarty і TemplateLite

На цьому мабуть все. Хто хоче більш глибоко вивчити можливості Smarty, може подивитися список модифікаторів або доступних функцій описаних в документації з офіційного сайту (російською).

{Literal}

Php?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    Подготовка к ЕГЭ по математике
    Статьи Опубликовано: 05.10.2017 Подготовка к ЕГЭ по МАТЕМАТИКЕ. 1 часть. Эффективный курс подготовки. Вы находитесь на сайте www.ege-ok.ru - Подготовка к ЕГЭ по математике. Меня зовут Инна Владимировна

    Куда поступить с обществознанием, русским и математикой
    Статьи Опубликовано: 06.10.2017 Сдача ЕГЭ. Куда поступать? Обществознание считается одним из самых популярных предметов, которые выпускники сдают на ЕГЭ. Ввиду высокого рейтинга дисциплины Рособрнадзор

    Сайт Майер Елены - ЕГЭ по математике
    Планируется проведение двух отдельных экзаменов – базового и профильного. Кому сдавать базовый ЕГЭ по математике? Базовый ЕГЭ организуется для выпускников, изучающих математику для общего развития

    ГДЗ решебник по математике 4 класс
    Извините, тут пока ничего нет ((( Решебник по математике 4 класс (Истомина Н.Б.) – не просто возможность быстро выполнить домашнее задание для учащегося, но и способ разобраться в труднорешаемых задачах.

    ГДЗ по математике 1 класс Самсонова самостоятельные работы
    Решебник по математике за 1 класс автора Самсоновой Л.Ю. 2012 года издания. Данное пособие предлагает готовые решения на разнообразные упражнения, направленные на активизацию всего учебного процесса. Здесь

    Для этой работы нужна математика
    Слотов: 956 Рулеток: 7 Лицензия: Pragmatic Play, Microgaming, ELK, Yggdrasil, Habanero, Amatic, Isoftbet, Netent, Rival, Igrosoft, Quickspin. Игры: Автоматы, Покер, Рулетки. Всего 963 Отдача: 98% Бонус

    Веселые задачи по математике 2 класс
    Во время занятий для того, чтобы немного переключить внимание школьников, но при этом не уйти от предмета, можно давать шутливые задачи на сообразительность. Буду пополнять коллекцию таких задач. Дополнительная

    Функция экспонента в Excel
    Одной из самых известных показательных функций в математике является экспонента. Она представляет собой число Эйлера, возведенное в указанную степень. В Экселе существует отдельный оператор, позволяющий

    ЕГЭ по математике 2018
    ЕГЭ по математике, наравне с русским языком , – обязательный экзамен для сдачи выпускниками 11-х классов. По статистике он самый сложный. Мы предлагаем ознакомиться с общей информацией об экзамене и

    Секреты эффективной и быстрой подготовки ко второй части ОГЭ по математике.
    Уважаемые девятиклассники, настоящие или будущие! Часто от вас приходится слышать следующие вопросы. Легко ли подготовиться к заданиям второй части ОГЭ по математике? Сколько для этого понадобится


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: