Skip to content

Latest commit

 

History

History
257 lines (171 loc) · 8.44 KB

modificators.md

File metadata and controls

257 lines (171 loc) · 8.44 KB

Модификаторы данных в шаблоне

Модификаторы предназначены для изменения, выводимых через шаблон, данных.

!>Общая информация по использованию модификаторов находится в разделе помощи к шаблонизатору.
Все модификаторы Fenom можно использовать в модуле.

На этой странице перечислены модификаторы, используемые в модуле BlockPro.

limit

Ограничение количества символов контента.

Принимает три параметра:

  1. Максимальное количество символов в тексте.
  2. Текст, показываемый в конце обрезанной строки.
  3. Жесткое ограничение символов. Если передать true не будет учитываться логический конц слова.
Вывести 150 символов:
{$el.short_story|limit:'150'}

Вывести 50 символов и троеточие в конце:
{$el.short_story|limit:'50':'…'}

Вывести 30 символов, троеточие в конце и жестко обрезать тест без учёта слов:
{$el.short_story|limit:'50':'…':true}

image

Получение изображения из контента.

Так же можно использовать модификаторы tinypng и kraken

image — встроенный функционал.

tinypng — получение картинки через сервис tinypng.com

kraken — получение картинки через сервис kraken.io

Принимает следующие параметры:

  1. (string) $data — Строка, из которой будем брать картинку/картинки
  2. (string) $noimage — Картинка-заглушка
  3. (string) $imageType — Тип картинки (small/original/intext) - для получения соответствующей картинки или массива картинок
  4. (integer/string) $number — Номер картинки в контенте или all для вывода всех картинок
  5. (string) $size — Размер картики (например 100 или 100x150)
  6. (string) $quality — Качество картинки (0-100)
  7. (string) $resizeType — Тип ресайза (exact, portrait, landscape, auto, crop)
  8. (boolean) $grabRemote — скачивать картинки со сторонних сайтов к себе (true/false)
  9. (boolean) $showSmall — Обрабатывать уменьшенную копию, если есть
  10. (string) $subdir — Подпапка для картинок
{$el.short_story|image:$noimage:'small':'1':'':'':'':true:false:'/uploads/myfolder'}

{$el.full_story|image:$noimage:'intext':'all':'150x450':'':'landscape':true:false}

{$el.full_story|tinypng:$noimage:'small':'1':'150':'':'crop':true:false}

{$el.full_story|kraken:$noimage:'small':'1':'150':'':'crop':true:false}

declination

Склонение слова в соответствии с количеством.

Например: 1 коментарий, 2 комментария, 100 комментариев

Выведет текст: 15 комментариев
{$el.comm_num} {$el.comm_num|declination:'комментари|й|я|ев'} 

dateformat

Форматирование даты в соответствии с маской.

Аналог {date="D m Y"}

{$el.date|dateformat}

{$el.date|dateformat:"d F Y"}

timeago

Форматирование даты в формате "time ago".

В качестве параметра модификатор принимает цифру от 0 до 6, указывающую точность вывода от года до минут. По умолчанию установлено значение 2.

Выведет результат: 
2 года, 4 месяца, 1 неделю, 6 дней, 12 часов и 5 минут назад.
{$el.date|timeago:6}

catinfo

Выводит информацию о категории или категориях, к которой принадлежит новость.

Весь массив данных: 
{$el.category|catinfo}

Название категории: 
{$el.category|catinfo:'name'}

Ссылка на категорию: 
{$el.category|catinfo:'link'}

URL категории: 
{$el.category|catinfo:'url'}

Иконка категории: 
{$el.category|catinfo:'icon'}

Иконка категории (с заглушкой): 
{$el.category|catinfo:'icon':$noimage}

getAuthors

Получает информацию о пользователях, добавивших новости непосредственно в шаблоне.

Более детальную информацию о процедуре получения пользователей можно увидеть в шаблоне getuserinfo.tpl

{set $users = []}

{foreach $list as $el}
  {set $users[] = $el.autor}
{/foreach}

{set $arUsers = $users|getAuthors:'email, user_id, news_num, comm_num, foto'}

{unset $users}

<pre>{$arUsers|dump}</pre>

ematch_all

Модификатор ematch_all является аналогом php-функции preg_match_all.

Применяется к любой строке.

В качестве параметра принимает регулярное выражение.

Возвращает массив с найденными совпадениями или пустой массив.

{foreach $list as $key => $el}
  {set $totalGifs = 0}
  {set $otherImages = 0}
  {set $images = $el.short_story|ematch_all:'/<img(?:\\s[^<>]*?)?\\bsrc\\s*=\\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>\'"\\s]*))[^<>]*>/i'}
 {if $images[1]|length}
   {foreach $images[1] as $image}
  {if ('dleimages' in $image) || ('engine/data/emoticons' in $image)}
   {continue}
   {/if}
   {set $imgInfo = $image|pathinfo}
     {if $imgInfo.extension == 'gif'}
       {set $totalGifs = $totalGifs + 1}
     {else}
       {set $otherImages = $otherImages + 1}
     {/if}
   {/foreach}
 {/if}

  <p>
    В новости <b><a href="{$el.url}">{$el.title}</a></b>
    {$totalGifs} {$totalGifs|declination:'гиф|ка|ки|ок'}, 
    а так же 
    {$otherImages} {$otherImages|declination:'|другая картинка|других картинки|других картинок'} 
  </p>

{/foreach}

sentence

Выводит заданное количество предложений (до точки).

Иногда полезно для вывода завершенных предложений, а не слов.

Выведет два первых предложения из краткой новости.:
<pre>{$el.short_story|sentence:'2'}</pre>

dump

Выводит данные через php-функцию print_r.

Крайне полезно для отладки во время разработки шаблона.

Выведет всё содержимое массива одной новости:
<pre>{$el|dump}</pre>

Выведет содержимое допполей как есть:
<pre>{$el.xfields|dump}</pre>