Документация по модулю BlockPro


Общая информация о модуле

Модуль BlockPro предназначен для пользовательского вывода новостей на сайте под управлением CMS DataLife Engine и позиционируется как альтернатива {custom}, {top}, {related-news}.

Является логическим развитием предыдущей версии, однако обратной совместимости не имеет, таким образом шаблоны и строка подключения модуля Block.Pro.3 не подойдут к текущей версии.

Требования к системе


Версия DLE: 10.2 и выше

Поддерживаемая кодировка: UTF-8

Версия php: 5.6 и выше

Для проверки совместимости настроек сайта и модуля рекомендуем скачать специальный скрипт
доcтаточно распаковать содержимое архива на сайт и запустить php-файл.

Автор не гарантирует работу модуля, если требования к системе не соответствую минимальным.


Ключевые особенности BlockPro

  • Постраничная AJAX-навигация. Модуль имеет гибкую реализацию постраничной навигации, что позволяет не только использовать несколько вариантов внешнего вида навигации, но и задать начальную страницу для показа в блоке при загрузке страницы.
  • Собственный, гибкий шаблонизатор. Модуль использует шаблонизатор Fenom, который позволяет воплощать в жизнь практически любые задумки в одном шаблоне!
  • Удобный генератор строк подключения в админке. Генератор строк подключения позволяет сразу посмотреть результат работы модуля с полученной строкой подключения. А так же снабжен специальными хелперами для правильного составления тегов шаблона.
  • Фильтрация новостей по значению дополнительных полей. Новости можно фильтровать по значению одного или нескольких дополнительных полей, при этом можно использовать логику "И" (совпадение нескольких значений) или "ИЛИ" (соврадение любого из значений).
  • Показ новостей, находящихся на модерации.
  • Вывод новостей в режиме афиши (только на ненаступившую дату с возможностью группировки по датам)
  • Вывод новостей на стороннем сайте через асинхронный js-код
  • Вывод RSS-лент
  • Вывод или игнорирование новостей из подкатегорий.
  • Вывод аватара автора новости без дополнительных запросов. При этом если вывод не включен - лишние данные из БД не запрашиваются.
  • Сортировка новостей:
    1. Стандартный топ dle
    2. Хит (рейтинг*100 + кол-во комментариев*10 + кол-во просмотров)
    3. По дате добавления
    4. По рейтингу
    5. По количеству просмотров
    6. По количеству комментариев
    7. В случайном порядке (в т.ч. для больших БД)
    8. В алфавитном порядке
    9. Без сортировки (используется для вывода похожих новостей)
    10. По количеству скачиваний файлов новости
    11. По символьному коду новости
    12. По дате редактирования новости
    13. По значению дополнительного поля (цифровое или строковое значение)

    Доступно три направления сортировки:

    1. По возрастанию
    2. По убыванию
    3. Как есть (работает пока только с ID новостей)
  • Фильтрация новостей:
    1. По авторам
    2. По категориям
    3. По ID новостей
    4. По тегам новостей
    5. Новости на модерации
    6. По заполненным дополнительным полям
    7. По значениям дополнительных полей
    8. Фиксированные новости (только фиксированные, только обычные или все подряд)
    9. Опубликованные на главной (только на главной, только неопубликованные на главной, все подряд)
    10. По символьному коду новостей

    Фильтры могут принимать множественные свойства, перечисляемые через запятую. Могут исключать из вывода указанные значения, а так же могут сочетаться исключающие и разрешающие фильтры. (Например вывод новостей из текущей категории, но только если они расположены в её подкатегориях, а id новостей соответствуют перечисленному диапазону)

  • Подключение одной строкой в любой шаблон сайта.
  • Нет обязательных переменных, достаточно просто подключить модуль и выведется стандартный топ 10 новостей за всё время.
  • Полноценный вывод похожих новостей без правок движка. Можно использовать параллельно со стандартным выводом, можно вывести похожие новости даже на странице кратких новостей или профиля пользователя или в любом другом месте. (добавляется +1 запрос на блок при отсутствии кеша)
  • Возможность записывать похожие новости в БД
  • Кеширование каждого блока с возможностью установки времени жизни или отключения кеша для каждого блока.
  • Собственный класс для работы с картинками. Можно использовать несколько методом уменьшения: точный размер, уменьшение по высоте, уменьшение по ширине, "умное" уменьшение или кроп (уменьшение и обрезка лишнего)
  • Картинки можно брать из любого источника контента новости (краткая, полная, допполе) в любом количестве и изменять любую из них как угодно. Например можно создать несколько вариантов миниатюр одной картинки для слайдера.
  • Обработка (или вывод без обработки) и вывод всех картинок из новости
  • Вывод новостей за заданный интервал времени (к примеру новости, добавленные за прошлую неделю).
Более детальная информация о возможностях модуля находится ниже.

Установка модуля

Внимание!
Все файлы модуля имеют кодировку UTF-8. Если ваш сайт работает в кодировке windows-1251 - его нормальная работа не гарантируется (не проверялась).
Если всё же вы готовы устанавливать модуль - можете воспользоваться конвертером кодировки DLE.
  1. Распаковать содержимое папки upload из архива в корень сайта. Имейте ввиду, что необходимо предварительно переименовать папку upload/Default в соответствии с именем вашего шаблона сайта.
  2. Запустить установщик по адресу ваш_сайт/blockpro_install.php и следовать инструкциям.
  3. По окончании установки сгенерировать строку подключения модуля, посмотреть полученный результат и, если устроит, вставить строку подключения в нужное место шаблона сайта.

Таблица сравнения BlockPro и {custom}

Если вы не можете решить, стоит ли использовать модуль BlockPro или стандартный тег {custom}, то таблица сравнения функционала поможет определиться с выбором.

Функционал BlockPro {custom}
Указание шаблона да да
Отключение кеширования да да
Указание времени жизни кеша блока да нет
Номер новости с которой начнется вывод да да
Cколько новостей будет выведено да да
Сортировка новостей:
по дате да да
по рейтингу да да
по количеству просмотров да да
по количеству комментариев да да
по количеству скачиваний файлов новости да нет
по символьному коду новости да нет
по дате редактирования да нет
по значению допполя да нет
по имени заголовка (по алфавиту) да да
в случайном порядке да да
топ новостей (как в теге {topnews}) да нет
только фиксированные новости да да
только не фиксированные новости да да
по произвольному полю БД new да нет
Изменение направления сортировки (по убыванию или возрастанию) да нет
Фильтрация:
По имени автора (несколько авторов) да (да) да (нет)
Кроме указанного имени автора (несколько авторов) да (да) нет (нет)
Новости автора при просмотре его профиля да нет
По указанным тегам новости да нет
Кроме указанных тегов новости да нет
Новости по просматриваемом тегу (кроме просматриваемого тега) да нет
По ID новостей (в т.ч. диапазон ID) да (да) да (нет)
Кроме указанных ID новостей (в т.ч. диапазон ID) да (да) нет (нет)
По ID категорий (в т.ч. диапазон ID) да (да) да (да)
Кроме указанных ID категорий (в т.ч. диапазон ID) да (да) нет (нет)
Новости из просматриваемой категории (кроме просматриваемой категории) да (да) нет (нет)
По дополнительным полям (в фильтр попадают только заполненные допполя) да нет
По символьному коду новости да нет
Кроме указанных дополнительных полей (в фильтр попадают только заполненные допполя) да нет
Возможность добавить собственные условия фильтрации да нет
Временной период для отбора новостей да да
Несколько иконок категорий (при мультикатегориях) да нет
С учётом текущего timestamp new да нет
Как результат поиска по одному из полей БД new да нет
Работа с изображениями:
Выбор источника картинки (краткая новость, полная новость, дополнительное поле) да нет
Отображение удалённых изображений да да
Создание уменьшенной копии изображения да нет
Указание качества создаваемой уменьшенной копии изображения да нет
Различные методы уменьшения изображений да нет
Использование сторонних сервисов для оптимизации и уменьшения изображения да нет
Вывод уменьшенной копии и оригинала (в т.ч. настраиваемые заглушки для уменьшенной копии и оригинала) да (да) нет (нет)
Вывод всех изображений новости (в т.ч. с обработкой) да (да) нет (нет)
Ограничение количества символов в заголовке, кратком и полном содержании (в т.ч. жесткое ограничение по количеству символов) да (да) да (нет)
Показ статистики генерации каждого блока да нет
Вывод похожих новостей в любом месте сайта (в т.ч. не в полной новости) да (да) нет (нет)

Переменные строки подключения

Простейшая строка подключения модуля:

Переменные строки подключения указываются в виде конструкции: &param=value

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

Полный список параметров строки подключения модуля:

Переменная Значение по умолчанию и пример использования Описание
moderate false
&moderate=y
Если переменная указана - выводятся только новости на модерации.
template blockpro/blockpro
&template=custom
Имя шаблона блока без расширения (по умолчанию шаблон блока берётся из папки blockpro текущего шаблона сайта)
cachePrefix news
&cachePrefix=pref

Дефолтный префикс кеша, нужен для автоматической чистки кеша при добавлении на сайте комментария или новости.

Автоматически удаляется, если задано время жизни кеша.

cacheSuffixOff false
&cacheSuffixOff=y

Отключение суффикса кеша (будет создаваться один кеш-файл для всех пользователей).

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

cacheNameAddon  
&cacheNameAddon=newName
Служебная переменная. Назначает дополнение к имени кеша, если имеются переменные со значениями this, они будут автоматически дописаны в эту переменную, иначе для разных мест будет создаваться один и тот же файл кеша.
nocache false
&nocache=y
Отключает кеширование блока
cacheLive false
&cacheLive=15
Задаёт время жизни кеша в минутах
cacheVars false
&cacheVars=newsid
Значимые параметры для формирования кеша. В переменную можно передавать через запятую ключи, доступные через $_REQUEST или значения переменной $dle_module. Эта функция полезна, если требуется выводить разное оформление в блоке с новостями для разных страниц сайта. Таким образом, если прописать &caceVars=newsid,category,forum будет создаваться отдельный кеш для каждой новости, для каждой категории и для модуля forum (при интеграции форума).
startFrom 0
&startFrom=1
C какой новости начать вывод (ноль - это первая новость, 3 - четвёртая)
limit 10
&limit=2
Количество новостей в блоке
fixed yes
&fixed=only
&fixed=witout
&fixed=ignore
Обработка фиксированных новостей:
yes — показ всех (по умолчанию), фиксированные выше остальных;
only — показ только фиксированных;
without — показ только нефиксированных;
ignore new — показ единым списком без учёта признака фиксированных новостей;
postId  
&postId=1,5,23
&postId=this
&postId=1-10,15-30
ID новостей для вывода в блоке (через запятую, тире). Если указать this - будет взят ID просматриваемой новости. Может понадобиться для установки кастомизированных метатегов (актуально для киносайтов). При этом будет создаваться отдельный файл кеша для каждой просмотренной новости. Через тире указывается диапазон значений (от-до).
notPostId  
&notPostId=2,4,6
&notPostId=this
&notPostId=2-6,10-15
ID игнорируемых новостей (через запятую, тире). Если указать this - будет игнорироваться текущая новость, полезно например для вывода топа из текущей категории, но без текущей новости. При этом будет создаваться отдельный файл кеша для каждой просмотренной новости. Через тире указывается диапазон значений (от-до).
author  
&author=admin,bot
&author=this
Логины авторов, для показа их новостей в блоке (через запятую). Если указать this - будут браться новости автора из просматриваемого профиля, при этом будет создаваться отдельный файл кеша для каждой страницы профиля
notAuthor  
&notAuthor=bot
&notAuthor=this
Логины игнорируемых авторов (через запятую). Если указать this - будут игнорироваться новости автора из просматриваемого профиля, при этом будет создаваться отдельный файл кеша для каждой страницы профиля.
xfilter  
&xfilter=image,text
&xfilter=this
Имена дополнительных полей для фильтрации по ним новостей (через запятую). Проверяется только заполненность поля. Если указать this - будут выводиться новости, в которых заполнено допполе, на странице которого находитс пользователь, при этом будет создаваться отдельный файл кеша для каждой страницы допполя.
notXfilter  
&notXfilter=image,text
&notXfilter=this
Имена дополнительных полей для игнорирования показа (через запятую). Проверяется только заполненность поля. Если указать this - будут ирнорироваться новости, в которых заполнено допполе, на странице которого находитс пользователь, при этом будет создаваться отдельный файл кеша для каждой страницы допполя.
xfSearch  
&xfSearch=name|value||name1|alue1

Имена и значения допполей для фильтрации новостей по допполям с указанными значениями.

синтаксис передачи данных: &xfSearch=имя_поля|значение||имя_поля|значение

notXfSearch  
&notXfSearch=name|value||name1|alue1

Имена и значения допполей для игнорирования показа новостей по допполям с указанными значениями.

синтаксис передачи данных: ¬XfSearch=имя_поля|значение||имя_поля|значение

xfSearchLogic OR
&xfSearchLogic=AND

Логика фильтрации по значениям допполей: "И" - совпадение нескольких значений; "ИЛИ" - совпадение любого из значений

Принимает OR или AND.

catId  
&catId=5,6
&catId=this
&catId=2-6,10-15
Категории для показа (через запятую). Если указать this - новости будут браться из просматриваемой категории, при этом будет создаваться отдельный файл кеша для каждой категории.
Через тире указывается диапазон значений (от-до).
subcats false
&subcats=y
Разрешает вывод подкатегорий указанных в предыдущем параметре, категорий.
notCatId  
&notCatId=3,4
&notCatId=this
&notCatId=8-16,25-155
Игнорируемые категории (через запятую). Если указать this - новости будут браться из всех, кроме просматриваемой категории, при этом будет создаваться отдельный файл кеша для каждой категории.
Через тире указывается диапазон значений (от-до).
notSubcats false
&notSubcats=y
Разрешает игнорирование вывода из подкатегорий указанных в предыдущем параметре, категорий.
thisCatOnly false
&thisCatOnly=y
Выводить/игнорировать новости только из текущей категории.
Вывод новостей только из текущей категории имеет смысл в тех случаях, когда используются мультикатегории и если нужно вывести или исключить из вывода новости, принадлежащие только к просматриваемой категории. К примеру похожие фильмы только из просматриваемой категории, а не из всех категорий, к которым принадлежит просматриваемый фильм.
tags  
&tags=новости,soametag
&tags=this
&tags=thisNewsTags
Теги новостей, для фильтрации по ним (через запятую). Если указать this - будут браться новости в которых присутствует тег, при просмотре страницы конкретного тега, при этом будет создаваться отдельный файл кеша для каждой страницы тега.
Если указать thisNewsTags - будут браться новости в которых присутствуют теги текущей новости (имеет смысл только при при просмотре полной новости).
notTags  
&notTags=sometag
&notTags=this
Аналогично предыдущему пункту, но новости не будут присутствовать в блоке.
symbols  
&symbols=a,A
&symbols=this
Показ новостей, содержащих указанные символьные коды. Или this - для вывода новостей по просмариваемому символьному коду.
notSymbols  
&notSymbols=a,A
&notSymbols=this
Аналогично предыдущему пункту, но новости не будут присутствовать в блоке.
day false
&day=14
Временной период для отбора новостей, по умолчанию отсутствует
dayCount false
&dayCount=7
Временной интервал для отбора новостей, по умолчанию отсутствует.
Примечание: к примеру нужно вывести новости за прошлую неделю. Код: &day=14&dayCount=7 выведет новости за период 14 дней с интервалом в 7 дней, что и есть прошлая неделя.
Для вывода новостей только за сегодня необходимо прописать &day=-1&dayCount=-1.
future false
&future=y
Режим афиши — вывод новостей только на ненаступившую дату. При этом параметры &day и &dayCount не вычитают, а прибавляют дни. Например для вывода афиши на послезавтра нужно прописать ?future=y&day=3&dayCount=1. Режим афиши не зависит от настроек DLE по выводу новостей на ненаступившую дату.
sort  
&sort=random

Сортировка новостей в блоке, по умолчанию аналогична выводу ТОП-новостей.

Возможные значения:

по умолчанию - стандартный для DLE топ новостей

none - без сортировки (можно использовать для вывода похожих новостей идентично стандартному выводу таковых в DLE)

date - по дате добавления

rating - по рейтингу

comms - по количеству комментариев

views - по количеству просмотров

random - в случайном порядке

randomLight - в случайном порядке (Light) Предназначен для больших БД и органиченной выборки (с фильтрацией категорий, id новостей, допполей и т.п.)

title - в алфавитном порядке

hit - Хит. Новости отбираются по формуле: (рейтинг*100 + кол-во комментариев*10 + кол-во просмотров)

download - по количеству скачиваний файлов новости

symbol - по символьному коду новости

editdate - по дате редактирования новости

xf|fielname - по значению дополнительного поля, где fielname — название дополнительного поля.
Пример строки подключения {include file="engine/modules/base/blockpro.php?xfilter=price&sort=xf|price&order=new"}xfilter=price - для отбрасывания пустых значений.

symbol - по символьному коду.

p.custom_field - по нестандартному полю БД.
Пример: &sort=p.custom_field — поле custom_field из таблицы dle_post
&sort=e.price — поле price из таблицы dle_post_extras.

xfSortType false
&xfSortType=string
Этот параметр необходимо указывать, если требуется сортировка по значению дополнительного поля, при этом указанное допполе содержит текст, а не цифры.
order new
&order=old
&order=asis
Направление сортировки.

old - новые в начале

old - старые в начале

asis - как есть. Выводит новости в том порядке, в котором они указаны в строке подключения. На данный момент она распространяется только на ID новостей.

avatar false
&avatar=y
Разрешает вывод аватарки автора новости.
showstat false
&showstat=y
Показывать статистику выполнения блока.
saveRelated false
&saveRelated=y

Записывать в БД похожие новости.

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

showNav &showNav=y

Включить постраничную навигацию в блоке

pageNum 1
&pageNum=4

Текущая страница в блоке при загрузке страницы, при постраничной конфигурации.

fields false
&fields=p.custom,e.custom1

Колонки, добавляемые в запрос на получение новостей

Префикс p. — колонка из таблицы dle_post, a e. — из таблицы dle_post_extras. Таким образом можно выводить данные из новостей даже если в БД DLE вносились дополнения.

setFilter &setFilter=p.comm_num|gt|100

Собственная фильтрация данных

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

Передавать каждый параметр фильтрации следует тремя частями разделяя их вертикальной чертой |.
Где:
первая часть — поле из БД,
вторая — оператор (см. ниже),
третья — значение.
При этом параметры дуг от друга следует отделять двойной вертикальной чертой ||

Т.к. DLE, в целях безопасности, не позволяет передавать напрямую символы '>' и '<' через строку подключения, было принято решение использовать следующий порядок передачи операторов:
gt или +>
lt или -<
eq или ==
gte или +=>=
lte или -=<=
not или -+ или +-!=
SEARCHLIKE new
NOT_SEARCHNOT LIKE new

Таким образом переданная строка
p.comm_num|gt|100||e.news_read|lt|500
превратится в часть запроса:
p.comm_num > 100 AND e.news_read < 500

new Если третья часть параметра будет указана как NOW(), то будет подставлен текущий timestamp.

Примеры:
&setFilter=YEAR(p.date)|eq|2016 — новости, опубликованные в 2016 году.
&setFilter=p.event_start|gte|NOW() — новости, у которых дата начала события (нестандартное поле) больше или равна текущему моменту времени.
&setFilter=p.title|SEARCH|Добро пожаловать — новости, в заголовке которых содержится словосочетание "Добро пожаловать".
&setFilter=p.title|NOT_SEARCH|Добро пожаловать — новости у которых в заголовке нет текста "Добро пожаловать".

experiment new false
&experiment=y

Включает экспериментальные функции модуля. Этот параметр включает улучшенные, но не оттестированные до конца, функции модуля.


Теги шаблона

Прежде всего следует ознакомиться с документацией по шаблонизатору Fenom.

Ниже приведены фиксированные теги и модификаторы, которые характерны только для модуля BlockPro и в документации по шаблонизатору вы их не найдёте.

Т.к. результат работы модуля выводится в виде массива, то следует производить его разбор с помощью любого цикла, поэтому для тегов, относящимся к конкретной новости (элементу) в документации будет использоваться наименование {$el}. (элемент массива, новость)

Примеры использования детально описаны в шаблонах, идущих в комплекте с модулем и на странице примеров

Зарезервированные теги шаблона:

Название тега Описание Аналог встроенного в DLE шаблонизатора
{$theme} Выводит путь к папке с текущим шаблоном сайта {THEME}
{$list} Массив с новостями. --
{$member_group_id} ID группы текущего пользователя. --
{$pages} Выводит постраничную навигацию в соответствии с настройками строки подключения. --
{$block_id} Выводит уникальный идентификатор блока. Идентификатор формируется на основе текущей конфигурации блока и меняется при изменении строки подключения. Используется для правильной организации множественной постраничной навигации. --
{$totalCount} Выводит общее количество новостей в выборке. Если постраничная навигация включена - тег выводит общее кол-во новостей co всех страниц. --
{$dleModule} Выводит информацию из переменной dle_module. [aviable]
{$lang} Выводит массив с языковыми фразами. --
{$dleConfig} Служебный тег. Выводит массив с конфигом DLE.
ВНИМАНИЕ! Выводится вся информация о конигурации DLE.
--
{$cfg} Служебный тег. Выводит массив c текущим конфигом модуля (с учётом параметров строки подключения).
ВНИМАНИЕ! В вывод так же попадают ключи активации и API ключи сервисов.
--

Зарезервированные теги цикла:

Название тега Описание
{$el.xfields} Выводит массив с дополнительными полями.
{$el.url} Выводит URL новости в соответствии с настройками DLE.
{$el.allow_edit} Если пользователю разрешено редактирование новости - выведет true. Тег нужен для корректной проверки возможности редактирования новости.
{$el.editOnclick} Выводит атрибут onclick с нужными параметрами для показа меню редактирования новости.
{$el.tags} Выводит сформированную строку с тегами новости.
{$el.avatar} Выводит URL аватара автора новости (либо заглушку).
{$el.showRating} Выводит сформированный блок с рейтингом в соответсвии с типом рейтинга. Для второго и третьего типов выводит результат рейтинга, обновляемый при голосовании на ajax.
{$el.showRatingCount} Выводит количество проголосовавших за новость.
{$el.ratingOnclickPlus} Выводит атрибут onclick с нужными параметрами для увеличения рейтинга в цифровом варианте настроек.
{$el.ratingOnclickMinus} Выводит атрибут onclick с нужными параметрами для понижения рейтинга в цифровом варианте настроек.
{$el.favorites} Выводит ссылку-картинку для добавления новости в избранное.

Список тегов, формируемых автоматически:

Теги выводят содержимое соответствующих полей из БД.

Название тега Описание Аналог встроенного в DLE шаблонизатора
{$el.id} Выводит ID новости {id}
{$el.autor} Выводит автора новости {login}
{$el.date} Выводит дату новости {date}
{$el.short_story} Выводит краткое содержание {short-story}
{$el.full_story} Выводит полное содержание {full-story}
{$el.xfields} Выводит дополнительные поля (массив) ---
{$el.title} Выводит заголовок новости {title}
{$el.category} Выводит категории {category}
{$el.alt_name} Выводит alt-name новости ---
{$el.allow_comm} Выводит 1 если разрешены комментарии у новости, 0 — если запрещены ---
{$el.comm_num} Выводит кол-во комментариев в новости {comments-num}
{$el.fixed} Выводит 1 если новость зафиксирована, 0 — если нет ---
{$el.tags} Выводит теги новости {tags}
{$el.news_read} Выводит ко-во просмотров новости {views}
{$el.allow_rate} Выводит 1 если разрешено выставление рейтинга, 0 — если запрещено ---
{$el.rating} Выводит цифровое значение рейтинга ---
{$el.vote_num} Выводит ко-во проголосовавших ---
{$el.editdate} Выводит дату редактировани яновости {edit-date}
{$el.editor} Выводит логин отредактировавшего новость {editor}
{$el.reason} Выводит причину редактирования {edit-reason}

Модификаторы тегов, используемых в модуле:

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

Название модификатора Описание и применение
limit

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

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

  1. Количество символов.
  2. Текст, показываемый в конце обрезанной строки.

Применение:

{$el.short_story|limit:'150'}
{$el.short_story|limit:'50':'&hellip;'}
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 комментариев)

Применение:
{$el.comm_num|declination:'комментари|й|я|ев'}

dateformat

Форматирование даты в соответствии с маской (аналог {date="D m Y"})

Применение:
{$el.date|dateformat} {$el.date|dateformat:"d F Y"}

timeago new

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

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

Применение:
{$el.date|timeago} {$el.date|timeago:3}

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}

dump

Выводит данные через php-функцию print_r. Крайне полезно для отладки во время разработки шаблона.

Применение:
{$el|dump} — выведет распечатку массива новости.

getAuthors

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

Применение:
{$arUsers|getAuthors:'email, name, foto'}. Более детальную информацию о процедуре получения пользователей можно увидеть в шаблоне getuserinfo.tpl или в примере.

ematch_all new

Модификатор ematch_all является аналогом php-функции preg_match_all. Применяется к любой строке. В качестве параметра принимает регулярное выражение. Возвращает массив с найденными совпадениями или пустой массив.

Пример использования

Старые версии модуля

  • Block.Pro.3 — оказывается только платная техподдержка.
  • Block.Pro.2 — техподдержка не оказывается.