Полезные функции для веб-разработчиков (GET, JS и Smarty)
GET-запросы:
Добавление товара с id варианта 143 в кол-ве 2 шт в корзину:
http://site.ru/cart?variant=143&amount=2
- Для добавления в шаблонах get-параметров к урлу пригодится функция url (ниже по тексту)
Поиск:
https://site.ru/blog?keyword=текст
Сортировка на страницах:
https://site.ru/hits?sort=priceup
Авторизация в админке:
https://логин:пароль@site.ru/fivecms/
JS:
toggleText(text,text)
Описание: замена текста
Пример:
$(el).toggleText('подробнее','свернуть')
readCookie(name), createCookie(name,value,days)
Описание: работа с Cookie
Пример:
createCookie("dontgo", "1", "365"); // запись
var text = readCookie("dontgo"); // чтение
Скролл к элементу:
Описание: по клику на элемент с class="anchor" будет произведен скролл к элементу, указанному в data-anchor.
Пример:
<span class="anchor" data-anchor=".post-comments">Комментариев: 2</span>
Ссылка на сторонний сайт скриптом:
Описание: по клику на элемент с class="url" будет открыт сайт по адресу http://site.ru (берется из data-url) в новой вкладке
Пример:
<span class="url bluelink" data-url="http://site.ru">на сайт</span>
Открытие картинки в модальном окне:
Описание: по клику на картинку с class="izoom" она будет открыта в модальном окне
Пример:
<img class="izoom" src="files/uploads/img.jpg" />
Smarty:
Модификаторы Smarty:
url
Цель: добавить get-параметр "color" к текущему урлу (в т.ч. содержащему другие get-параметры, напр. "purpose")
Пример:
{url color=0}
Результат: /about?color=0&purpose=0
Переменные:
$settings
Описание: настройки из админки (содержимое таблицы f_settings)
Пример:
<link href="design/{$settings->theme|escape}/css/style.css" /> // путь до файла со стилями в теме дизайна из настроек
Пример:
{$settings->site_name} // имя сайта из настроек
$config
Цель: получить адрес сайта
Пример:
{$config->root_url}
$uagent
Описание: получаем в шаблоне "iphone", "ipad" или "android"
Пример:
{$uagent}
$module
Описание: получаем к какому контроллеру относится данный шаблон
Пример:
{$module}
ПЛАГИНЫ (находятся в /view/View.php):
- Примечание: в category_id можно передать не только одно значение, но и массив:
{$category_id = array('12','13')}
или
{$category_id[] = $category->id}
{if $category->path[0]->id != $category->id}
{$category_id[] = $category->path[0]->id}
{/if}
{foreach $category->subcategories as $c}
{$category_id[] = $c->id}
{/foreach}
get_posts
Описание: получаем записи блога
Параметры: var (название переменной), limit (кол-во записей), category_id (id раздела блога из которого нужно вывести посты), sort (date, rand)
Пример:
{get_posts var=last_posts category_id=$category->id limit=4 sort=date}
{if $last_posts}
{foreach $last_posts as $post}
<a href="blog/{$post->url}">{$post->name|escape}</a>
{$post->annotation}
{$post->text}
{/foreach}
{/if}
get_pages
Описание: получаем страницы
Параметры: var (название переменной), menu_id (id меню)
Пример:
{get_pages var="menu_top" menu_id="1"}
{if $menu_top}
<ul>
{foreach $menu_top as $p}
<li>
<a href="{$p->url}">{$p->name|escape}</a>
</li>
{/foreach}
</ul>
{/if}
get_articles
Описание: получаем статьи
Параметры: var (название переменной), sort (position, date, name, rand), limit (кол-во записей), category_id (id категории из которой нужно вывести статьи)
Пример:
{get_articles var=last_articles sort=position category_id=$category->id limit=4}
{if $last_articles}
{foreach $last_articles as $post}
<a href="article/{$post->url}">{$post->name|escape}</a>
{$post->annotation}
{$post->text}
{/foreach}
{/if}
get_products
Описание: получаем товары
Параметры: var (название переменной), [featured (1) - хит продаж/рекомендуемые, is_new (1) - новинки, discounted (1) - с наличием "старой цены"], sort (position, name, date, rating, rand), limit (кол-во товаров), category_id (id категории из которой нужно вывести товары), id (id товара или массива товаров), brand_id (id бренда), in_stock (1), visible (1), keyword (выборка по ключевому слову)
Пример вывода товаров с меткой "хит продаж":
{get_products var=featured_products featured=1 category_id=$category->id sort=rand limit=4}
{if $featured_products}
{foreach $featured_products as $product}
{$product->name|escape}
{/foreach}
{/if}
Также можно вывести внутри цикла данные о категории товара:
- {$product->category->id}
- {$product->category->name}
- {$product->category->url}
api
Описание: универсальный плагин для вызова нужных функций API прямо в шаблоне
Параметры:
- var (название будущей переменной)
- module (название класса к которому мы обращаемся (список классов можно посмотреть в папке api))
- method (функция, которая нам нужна из класса, к которому обращаемся)
- а также параметры (если используются данным классом): limit, visible, sort, category_id, keyword и т.д
Пример:
а) вывод брендов в категории:
{if $category}
{$filter_brand = $category->path|reset}
{api module=brands method=get_brands visible=1 category_id=$filter_brand->children var=category_brands}
{foreach $category_brands as $b}
{$b->name}
{/foreach}
{/if}
б) подсчитать кол-во всех товаров на сайте:
{api module=products method=count_products var=count}
{$count}
Полезное:
Задача: получить в дочерней категории название (url, id и пр. данные) родительской категории:
{$category->path[0]->name}
convert
Описание: пересчет цены в базовую валюту и добавление разделителя запятых и тысяч
Пример:
{$product->variant->price|convert}
Результат: 34 000
noFormat
Описание: пересчет цены в базовую валюту без форматирования
Пример:
{$product->variant->price|noformat}
Результат: 34000
Модификаторы Smarty:
Документация Smarty:
- Вся документация по Smarty
UPD: описание обновлено 10.05.2023
Еще нет своего сайта? Запустите интернет-магазин на платформе 5CMS - Все для продаж уже внутри!
-
03.05.2018
Для удобства компаний, оказывающих только услуги или продающих товары и услуги, мы разработали одноименный модуль поддерживающий вложенность любого уровня
-
02.01.2019
Зачастую требуется товары сопровождать доступными для скачивания файлами (напр.: инструкции, сертификаты и т.п.).
Для этих целей используется функционал прикрепления файлов к товарам.
-
23.01.2019
Блог в 5CMS позволяет группировать записи (посты) по разделам (одного уровня вложенности).
А также реализован функционал хэштегов и комментирования записей в блоге.