From 8a513a9d99c278b72478fad19f9f2476747bcad8 Mon Sep 17 00:00:00 2001 From: pafnuty Date: Sun, 1 Dec 2019 21:07:54 +0400 Subject: [PATCH] 5.1.5 --- CHANGELOG.md | 4 ++++ README.md | 2 +- blockpro_install.php | 4 ++-- engine/inc/blockpro.php | 2 +- engine/modules/base/blockpro.php | 20 ++++++++++++++++++-- engine/modules/base/core/base.php | 6 ++++++ engine/modules/base/core/bpModifiers.php | 11 +++++++++++ 7 files changed, 43 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a15047d..9646de7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 5.1.5 +- Исправлена ошибка `Error: Syntax error, unrecognized expression: Deprecated: Array and string offset access syntax with curly braces is deprecated` (#159) +- Добавлен модификатор jsonDecode для более удобного перобразования кода в JSON (Используйте его, если не работает json_decode) + # 5.1.4 - Исправлена работа постраничной навигации при `catId=this` (#144) - Исправлена логика отбора похожих новостей после релиза 5.1.2 (#155) diff --git a/README.md b/README.md index 092e9a3..10254bf 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # DLE-BlockPro — тот самый модуль для вывода новостей! -![version](https://img.shields.io/badge/version-5.1.4-red.svg?style=flat-square "Version") +![version](https://img.shields.io/badge/version-5.1.5-red.svg?style=flat-square "Version") ![DLE](https://img.shields.io/badge/DLE-10.x-green.svg?style=flat-square "DLE Version") [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/dle-modules/DLE-BlockPro/blob/master/LICENSE) diff --git a/blockpro_install.php b/blockpro_install.php index e71d49f..2c268c0 100644 --- a/blockpro_install.php +++ b/blockpro_install.php @@ -15,9 +15,9 @@ // Описание модуля, для установщика и админки. 'moduleDescr' => 'Модуль вывода новостей для DLE', // Версия модуля, для установщика - 'moduleVersion' => '5.1.4', + 'moduleVersion' => '5.1.5', // Дата выпуска модуля, для установщика - 'moduleDate' => '17.05.2019', + 'moduleDate' => '01.12.2019', // Версии DLE, поддержваемые модулем, для установщика 'dleVersion' => '10.x', // ID групп, для которых доступно управление модулем в админке. diff --git a/engine/inc/blockpro.php b/engine/inc/blockpro.php index e40a8e2..d355082 100644 --- a/engine/inc/blockpro.php +++ b/engine/inc/blockpro.php @@ -29,7 +29,7 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/base/admin/blockpro/'); $moduleName = 'blockpro'; -$moduleVersion = '5.1.4'; +$moduleVersion = '5.1.5'; $moderate = $_REQUEST['moderate']; $moderate_checked = ($moderate) ? 'checked' : ''; diff --git a/engine/modules/base/blockpro.php b/engine/modules/base/blockpro.php index f20d199..0f8db25 100644 --- a/engine/modules/base/blockpro.php +++ b/engine/modules/base/blockpro.php @@ -551,11 +551,27 @@ classic: << Первая < 1 [2] 3 > Последняя >> // Фильтрация КАТЕГОРИЙ по их ID if ($base->cfg['catId'] == 'this' && $category_id) { $isCatIdThis = true; - $base->cfg['catId'] = ($base->cfg['subcats']) ? get_sub_cats($category_id) : ($base->cfg['thisCatOnly']) ? (int)$category_id : $category_id; + /** + * @see https://github.com/dle-modules/DLE-BlockPro/issues/159 + */ + $base->cfg['catId'] = $category_id; + if($base->cfg['subcats']) { + $base->cfg['catId'] = get_sub_cats($category_id); + } elseif ($base->cfg['thisCatOnly']) { + $base->cfg['catId'] = (int)$category_id; + } } if ($base->cfg['notCatId'] == 'this' && $category_id) { $isNotCatIdThis = true; - $base->cfg['notCatId'] = ($base->cfg['notSubcats']) ? get_sub_cats($category_id) : ($base->cfg['thisCatOnly']) ? (int)$category_id : $category_id; + /** + * @see https://github.com/dle-modules/DLE-BlockPro/issues/159 + */ + $base->cfg['notCatId'] = $category_id; + if ($base->cfg['notSubcats']) { + $base->cfg['notCatId'] = get_sub_cats($category_id); + } elseif($base->cfg['thisCatOnly']) { + $base->cfg['notCatId'] = (int)$category_id; + } } // Дублирование кода вызвано необходимостью сочетания параметра notCatId и catId // Например: catId=this¬CatId=3 diff --git a/engine/modules/base/core/base.php b/engine/modules/base/core/base.php index 00f65e8..c44447e 100644 --- a/engine/modules/base/core/base.php +++ b/engine/modules/base/core/base.php @@ -189,6 +189,12 @@ public function addModifiers() { return bpModifiers::timeAgo($data, $precision); } ); + + // Добавляем свой модификатор в шаблонизатор для конвертации текста в json. + $this->tpl->addModifier( + 'jsonDecode', function ($data) { + return bpModifiers::jsonDecode($data); + }); } /** diff --git a/engine/modules/base/core/bpModifiers.php b/engine/modules/base/core/bpModifiers.php index c4dee4f..90ef478 100644 --- a/engine/modules/base/core/bpModifiers.php +++ b/engine/modules/base/core/bpModifiers.php @@ -512,6 +512,17 @@ public static function timeAgo($date, $precision = 2) { return $output . ' назад'; } + /** + * Функция для конфертации строки в json на случай, если не работает модификатор json_decode + * @param string $var "{"one":"val"}" + * + * @return array json-массив + */ + public static function jsonDecode($var) { + $decoded = html_entity_decode($var, ENT_COMPAT); + return json_decode($decoded, true); + } + } // bpModifiers