» » Обновление BlockPro до версии 4.7

Обновление BlockPro до версии 4.7

8.01
34
27 074
Обновление BlockPro до версии 4.7

В этом обновлении произведён рефакторинг модуля, реализована интеграция со сторонними сервисами по обработке картинок (tinypng и kraken) и добавлена возможность собственной, нестандартной фильтрации новостей.

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


  • Версия DLE: 10.2 и выше
  • Поддерживаемая кодировка: UTF-8
  • Версия php: 5.4 и выше
  • Наличие IonCube Loader: Да (v.5.0 и выше) Модуль имеет привязку к домену. Его можно использовать на разных поддоменах, доменных зонах одного домена. На localhost активация лицензии не требуется.
    Для проверки совместимости настроек сайта и модуля можно скачать специальный скрипт (распакуйте содержимое архива на сайт и запустите php-файл).

Купить модуль BlockPro
Перед покупкой обязательно ознакомьтесь с требованиями и лицензией на сайте!

Что нового в BlockPro 4.7


  • Минимально необходимая версия php — 5.4.
  • Минимально необходимая версия ionCube — 5.0.
  • Теперь модуль не зависит от настройки short_open_tag.
  • Настройки лицензии вынесены в админку модуля.
  • Добавлена интеграция с сервисом tinyPNG. (подробности ниже).
  • Добавлена интеграция с сервисом Kraken.io (подробности ниже).
  • Добавлен новый параметр setFilter. (подробности ниже).
  • Добавлен новый тег {$totalCount}, выводящий общее количество новостей в выборке. Если постраничная навигация включена - тег выводит общее кол-во новостей co всех страниц.
  • Обновлён шаблонизатор до актуальной версии.


Интеграция со сторонними сервисами по обработке картинок


В этой версии модуля реализована интеграция с двумя отличными сервисами: tinyPNG и Kraken.io.
У каждого из них есть свои преимущества и недостатки, свои тарифные планы и лимиты на бесплатное использование.
Для использования сервисов следует предварительно получить API ключи. Ссылки на инструкции вы найдёте в админке модуля, на вкладке настроек.
Сам процесс получения картинок через сервисы очень прост — достаточно прописать нужный модификатор к контенту, из которого предполагается получение изображений. Допустим необходимо получить квадратную картинку из краткой новости с обрезкой лишнего, размером 150x150px. Для этого можно использовать три варианта кода:

1. Встроенный механизм ресайза:
{$el.short_story|image:$noimage:'small':'1':'150':'':'crop'}

2. Через tinyPNG:
{$el.short_story|tinypng:$noimage:'small':'1':'150':'':'crop'}

3. Через Kraken.io:
{$el.short_story|kraken:$noimage:'small':'1':'150':'':'crop'}


Как видно разница лишь в названии модификатора, остальной синтаксис передачи параметров не изменяется. Однако сервисы игнорируют указание качества картинки, а tinypng может использовать только следующие типы ресайза: portrait, landscape, auto, crop.

Так же следует учитывать, что первая генерация блока при использовании сервисов замедляет отображение страницы т.к. изображения отправляются на другие сервера, обрабатываются и возвращаются. Последующие генерации блоков будут быстрыми.

Код для вставки в шаблон по-прежнему можно получить на вкладке "Хелперы" в админке модуля.

Собственные условия фильтрации, параметр setFilter


Этот параметр ориентирован на опытных пользователей и находится в стадии бета-тестирования. Как правило собственная фильтрация необходима, когда в БД вносились изменения и нужно отобрать новости с учётом новых колонок.
Техническое описание параметра находится в разделе документации к модулю, поэтому предлагаю разобрать простой пример его использования.
Допустим в БД, в таблице новостей заведена новая колонка season, в которой хранится номер сезона некоего сериала. Необходимо выбрать новости (серии) четвёртого сезона из просматриваемой категории.
Строка подключения будет такой:
{include file="engine/modules/base/blockpro.php?catId=this&sort=date&fields=p.season&setFilter=p.season|=|4"}

Как видно в строку подключения мы прописали параметр fields, который добавляет в запрос выборку из нестандартной колонки season, а параметр setFilter добавит фильтрацию по нужному нам сезону.
Полный SQL-запрос будет таким:
SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, p.allow_comm, p.comm_num, p.fixed, p.allow_main, p.symbol, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.related_ids, e.view_edit, e.editdate, e.editor, e.reason, p.season FROM `dle_post` p LEFT JOIN `dle_post_extras` e ON (p.id=e.news_id) WHERE approve AND p.season = 4 ORDER BY fixed DESC, p.date DESC LIMIT 0, 10


Таким образом теперь есть возможность выводить новости ещё более гибко, чем раньше!

Исправление ошибок и улучшения


  • Исправлена ошибка логики построения запроса для отбора новостей в режиме вывода афишей.
  • Исправлено некорректное построение ЧПУ при третьем типе настроек в DLE.
  • Исправлена недостаточная фильтрация при отборе новостей по тегам.
  • Исправлено некорректное формирование ссылки на аватар пользователя в dle 10.6.
  • Исправлена некорректная выборка новостей при фильтрации по допполям с логикой OR.
  • Исправлена ошибка генерации предпросмотра блока в админке и создания виджета при использовании Memcache.
  • Исправлена mysql ошибка, при некоторых случаях выборки по автору новости.
  • Мелкие исправления, улучшения и доработки класса resize.php.
  • Улучшение модификатора declination, теперь отрицательные числа тоже корректно склоняются.
  • Исправлена ошибка с некорректной генерацией строки подключения при предпросмотре виджетов в админке
  • Рефакторинг, оптимизация и улучшение php кода модуля.



Ещё раз хочу напомнить, что модуль работает только в кодировке UTF-8 и поддержка windows-1251 не планируется.

На этом пока всё. Обновиться можно в кабинете покупок, а купить модуль — в магазинчике.

Похожие материалы

Комментарии

koss
koss 26 июня 2017 15:23
Здравствуйте. А умеет ли модуль искать и сортировать пользователей по доп.полям?
ПафНутиЙ
ПафНутиЙ 27 июня 2017 06:50
Цитата: koss
Здравствуйте. А умеет ли модуль искать и сортировать пользователей по доп.полям?

Нет, модуль предназначен для вывода новостей
OnlySteam
OnlySteam 8 сентября 2017 19:36
А покупка модуля полностью остановлена?

т.е более не разрабатывается?

Мне необходим модуль фильтрации, от punpun.name отлично подходил... К сожалению необходимо больше возможностей.

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

Можно посмотреть в работе модуль..т.е удачные примеры реализации.
ПафНутиЙ
ПафНутиЙ 8 сентября 2017 20:46
Цитата: OnlySteam
А покупка модуля полностью остановлена?

Нет, продажа модуля прекращена. Качайте, используйте, но не рассчитывайте на техподдержку.

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.