Обновление BlockPro до версии 4.7
8.01
34
27 020
В этом обновлении произведён рефакторинг модуля, реализована интеграция со сторонними сервисами по обработке картинок (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 не планируется.
На этом пока всё. Обновиться можно в кабинете покупок, а купить модуль — в магазинчике.
Комментарии
Добавить комментарий
Комментировать могут только зарегистрированные пользователи