Php код шаблоне smarty

Выполнение PHP-кода на страницах сайта

Вызов PHP-функций, создание классов-хелперов, установка приложений и плагинов

Вызов PHP-функций

Некоторые PHP-функции можно выполнять на страницах и в шаблонах дизайна. Для этого вызов функции нужно заключить в фигурные скобки.

Пример

Создание класса-хелпера

Кроме стандартных функций PHP, в шаблонах Smarty можно также использовать вызовы методов собственных PHP-классов.

Пример

Создайте пользовательский класс shopCustom в файле wa-apps/shop/lib/classes/shopCustom.class.php:

 public static function . () //еще один метод-хелпер; в этот класс можно добавлять неограниченное количество методов < . >>

Добавьте вызов метода класса в шаблоне Smarty:

Создание плагина или приложения

Это наиболее масштабный вариант внедрения PHP-кода на страницы сайта. Процесс написания приложений и плагинов для Webasyst описан в документации для разработчиков.

Приложение или плагин могут использовать имеющиеся программные события (хуки) — в коде других приложений. Если имеющихся хуков недостаточно, то потребуется добавление вызова методов приложения или плагина в HTML-шаблоны страниц или темы дизайна.

Для того чтобы установить собственное приложение или плагин в облаке Webasyst, нужно зарегистрироваться в качестве разработчика и опубликовать свой программный продукт в магазине Webasyst. После этого продукт можно будет установить в «Инсталлере».

35 комментариев

include сработает, как и в любом другом месте в PHP-коде. Путь лучше склеить полный. Например, используя функцию
wa()->getConfig()->getRootPath()
которая вернёт путь к каталогу установки фреймворка (где index.php лежит). Без завершающего слеша. И обращаю ваше внимание, что это не очень мудрое решение хранить скрипты в wa-data, особенно в wa-data/public. Выглядит небезопасненько. Для чего это нужно?

Спасибо за оперативный ответ! Особой необходимости нет, нам при установке Script-Shop создали в Public папки для изображений, скриптов и документов, так и пользуемся, их лучше перенести в Protected?

wa-data — это правильное место для картинок и документов, но плохое место для исполняемых файлов. PHP-файлы в public можно вызвать напрямую из браузера, если знать URL — это опасно и это главная причина. В protected так не получится, и с этой точки зрения protected лучше, чем public. Но идеологически неправильно. Если нет специальных причин держать файлы именно там, лучше не держать. Хорошее место для вашего файла — это либо wa-config, либо wa-apps/shop/lib, рядом с вашим shopCustom.class.php Если в файле, например, массив с настройками, то ему самое место в wa-config. А если много сложной логики, то пусть в приложении живёт.

Леонид, спасибо четко и ясно! Помогите пожалуйста составить правильный путь используя функцию wa()->getConfig()->getRootPath(), если файл будет размещен в wa-apps/shop/lib. Заранее спасибо!

Читайте также:  Cpp namespace source file

Спасибо! Поддержка 5 звезд. Напишите пожалуйста с Вашей корпоративной почты на адрес support@wishcraft.ru мы вышлем постоянный VIP-купон нашего магазина. Вы СУПЕР.

Здравствуйте. Помогите, пожалуйста, настроить правильно. Вроде бы сделал все, как описано в инструкции, но не работает. В каталоге wa-apps/shop/lib/classes/ создал файл shopGetIpUser.class.php с содержимым: > ?>
Вызываю таким образом , но не срабатывает, открывается пустая страница. Что не так?

Проверьте Логи сервера, возмождно там ошибки указаны.
Если нет то тогда уже проверять по шагам на каком части у вас ошибка.

Может что-то неправильно написано? (

include(‘http://. ‘) — это странно. Если я правильно понял, файл лежит на вашем же сервере. А если не на вашем, то в любом случае скачайте его и поместите у себя. Вместо подключения по сети подключайте локальный файл:

include_once("getip-test/tabgeo_country_v4.php"); // путь относительно корня фреймворка, т.е. index.php

(include_once чтобы ничего не сломалось, если файл вызывается больше одного раза) Вообще, дело двинулось бы гораздо быстрее, если бы вы смогли включить вывод ошибок PHP в браузер или найти файл с логами. Не надо было бы гадать на кофейной гуще, что пошло не так.

Добрый день! Нам необходимо вставить такой код на все страницы сайта include_once $_SERVER[‘DOCUMENT_ROOT’].’/clickfrogru_udp_tcp.php’;
сразу после файл clickfrogru_udp_tcp.php залит в корень сайта
подскажите пожалуйста в какой файл это нужно вставить, в шаблонах я не нашел это — сразу после

Перечитайте тему выше — в шаблонах исполнение php кода не производится. Совсем.
Поэтому содержимое вашего файла необходимо оформить в виде хелпера и его вызывать.

Подскажите а как сделать, чтобы вот эта штука < shopCustom :: getExchangeRatesHtml ()>работала если ее вставить в Дополнительные параметры страницы. В шаблоне у меня работает, а в доп.параметрах нет.

Добрый день! Подскажите как ajax’ом передать что то в этот класс wa-apps/shop/lib/classes/shopCustom.class.php, в какой-нибудь метод?

В самом простом случае оформите свой класс в виде контроллера — например, waJsonController, если нужно возвращать ответ в формате JSON. В бекенде это может сработать, потому что там не требуется настраивать правила маршрутизации. Во фронтенде просто так не получится — нужно редактировать правила маршрутизации того приложения, в составе которого вы разместите файл с классом контроллера. Править оригинальный код — плохая практика, потому что каждое обновление будет удалять ваши исправления. Поэтому лучше оформить свой контроллер в составе плагина, в котором можно сформировать собственные правила маршрутизации для фронтенда для тех URL, на которые вы будете отправлять AJAX-запросы.

Я сделал плагин. Мне надо ajax’ом передать value инпута в метод. Не пойму как обратиться к своему методу. Поместил папку wa-apps/shop/plugins/myplugin/lib/shopMyplugin.plugin.php, добавил там публичный метод. Как теперь мне ajax запрос отправить в этот метод со стороны клиента. По типу: клиент нажал на кнопку и улетел ajax в этот метод с параметром value с этой же кнопки?

Читайте также:  Java read google spreadsheet

Источник

Введение в шаблонизатор Smarty

а) гибкость приложения – четкое разделение логики от дизайна позволяет программистам вносить изменения в логику и структуру сайта, не затрагивая его оформления, и в тоже время дает возможность дизайнерам изменять внешний вид сайта и при этом не затрагивать логическую часть веб – приложения;

б) код веб-приложения становится чистым и элегантным;

Думаю многие веб-разработчики, сталкивались с этой проблемой – решением данной задачи является применение шаблонов. В этом уроке мы будем изучать применение шаблонов с использованием шаблонизатора Smarty.

скачать исходникискачать урок

1. Формирование задачи

Давайте для начала определимся, что же такое шаблон? Шаблон — это довольно широкое понятие, но если говорить простым языком – это файл (документ), обычно в html или tpl формате, который содержит в себе html – теги (оформление и структуру веб-приложения), а также специальные метки, вместо которых подставляются данные из логической части данных. Подстановкой данных и формированием окончательного вида веб-приложения занимается шаблонизатор.

Существует огромное множество готовых шаблонизаторов для PHP. Конечно, шаблонизатор можно написать и самому – придумать свои метки для шаблона и разработать алгоритм замены этих меток. Но этот вариант не очень удобен, если Ваше веб-приложение будут обслуживать другие программисты или дизайнеры, так как в этом случае их придется посвящать в нюансы Вашего шаблонизатора. Поэтому лучше всего использовать готовое проверенное решение с хорошим функционалом и качественной документацией.

Smarty – наиболее популярная и широко распространенная система шаблонов на PHP. Работа Smarty заключается в компилировании шаблонов. Это означает, что Smarty последовательно считывает разметку файла шаблона и создает на их основе готовый PHP сценарий, этот сценарий создается один раз, а далее просто выполняется. Smarty содержит в себе большое количество функций, которые позволяют создавать в шаблонах сложную логику (если она нужна для правильного отображения данных): подключение других шаблонов, циклический разбор массива и т.д. Конечно, Вы можете и не создавать сложную логику шаблона, а ограничиться лишь использованием чистого текста и переменных.
На этом вводная часть закончена и можно приступать к изучению.

2. Установка Smarty

Скачать Smarty можно с официального сайта //www.smarty.net/, перейдя на вкладку Download. На момент создания урока последняя стабильная версия это Smarty 3.1.7, ее и скачиваем. При распаковке архива мы видим папку Smarty 3.1.7, а в ней еще файлы и папки:

demo – демонстрационный пример использования шабонизатора;

libs – папка с дистрибутивом Smarty;

различные текстовые файлы(readme, описание условий копирования, описания отличий от более старых версий).
Для установки Smarty необходимо скопировать папку libs (из архива) в корневой каталог Вашего веб-приложения. Перечень файлов и папок каталога libs должен быть таким:

libs/
Smarty.class.php
SmartyBC.class.php
debug.tpl
sysplugins
plugins

Читайте также:  Embed html page in iframe

Затем создать четыре директории, из которых Smarty будет читать свои конфигурационные файлы и файлы шаблонов. По умолчанию эти директории имеют название: templates/, templates_c/, configs/, cache/(эти каталоги Вы можете назвать так, как Вам захочется, но при этом нужно будет указать шаболнизатору на их названия – это мы рассмотрим далее). Таким образом каталог с Вашим веб-приложением должен быть следующего вида:

www.example.com/(или папка с Вашим веб-приложением)
libs/
Smarty.class.php
SmartyBC.class.php
debug.tpl
sysplugins
plugins
templates
templates_c
configs
cache
index.php

Давайте рассмотрим, для чего нужны созданные четыре каталога:

templates – здесь хранятся Ваши созданные шаблоны (шаблоны для Smarty создаются в формате tpl);

templates_c – в этот каталог шаблонизатор записывает скомпилированный шаблон, на основе шаблона в каталоге templates;

configs – каталог для хранения файлов конфигурации;

cache – каталог для хранения кэшированных файлов шаблона.

3. Создание простого скрипта на основе Smarty

Теперь когда Smarty установлен и созданы необходимые каталоги давайте создадим первую страницу. Для этого первым делом необходимо подключить класс Smarty к нашему скрипту и создать объект этого класса(вся логика нашего скрипта будет в файле index.php):

Источник

Использование PHP-кода в шаблонах дизайна

Для генерации HTML-кода витрины в WebAsyst Shop-Script используется шаблонизатор Smarty. Smarty обрабатывает специальные файлы-шаблоны, содержащие фрагменты HTML-кода и инструкции шаблонизатора для формирования HTML-кода, передаваемого браузеру пользователя.

Совет: файлы-шаблоны дизайна витрины интернет-магазина находятся в директории published/SC/html/scripts/templates/frontend/.

Чтобы вставить в код файла шаблона фрагмент PHP-кода, в Smarty используются теги . , между которыми следует вставлять пользовательский код, например:

В WebAsyst Shop-Script возможность использования тегов . по умолчанию отключена. Чтобы ее активировать, необходимо в файле published/SC/html/scripts/classes/class.viewsc.php изменить строку

$this->security_settings['PHP_TAGS'] = false;
$this->security_settings['PHP_TAGS'] = true;

Внимание: если в вашей версии WebAsyst Shop-Script отсутствует указанный файл, аналогичные изменения необходимо внести в файл published/SC/html/scripts/classes/class.view.php.

Кроме файлов-шаблонов PHP-код описанным здесь образом можно также вставлять с помощью встроенного редактора дизайна, переключившись в режим «Редактировать HTML-код».

Внимание: использование PHP-кода в описаниях товаров, категорий и текстах информационых страниц описанным здесь способом невозможно, т.к. такие тексты хранятся в базе данных и не обрабатываются шаблонизатором Smarty.

  • Использование HTML-разметки в описаниях товаров и категорий
  • В каких файлах можно изменять дизайн WebAsyst Shop-Script?
  • Как изменять цвета и шрифты на витрине интернет-магазина
  • Файлы шаблонов интернет-магазина
  • Иконки для способов оплаты и доставки
  • Кнопки «Купить» и «В корзину»
  • Как вставить счетчик на витрину интернет-магазина?
  • Как добавить текст на витрину?
  • Как добавить иконку (favicon) для витрины интернет-магазина?
  • Как добавить надпись с переводом на другие языки
  • Использование PHP-кода в шаблонах дизайна
  • Можно ли заказать у вас индивидуальный дизайн или продвижение интернет-магазина?
  • Мой интернет-магазин по-разному выглядит в разных браузерах
  • Настройка индивидуального дизайна для разных страниц витрины
  • Размещение кнопок социальных сетей
  • Восстановление дизайна витрины

Источник

Оцените статью