diff --git a/CHANGELOG.md b/CHANGELOG.md index b620109..215645a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ +# 6.0.3 +- Исправлено некорректное формирование переменной с текущем шаблоном сайта (#176) + # 6.0.2 -- Небольшой фикс ормирования URL с учётом модуля MultiLAnguage +- Небольшой фикс формирования URL с учётом модуля MultiLAnguage # 6.0.1 - Полностью прекращена поддержка DLE старше 13 версии. diff --git a/blockpro.xml b/blockpro.xml index 39ae3ee..681a1f8 100644 --- a/blockpro.xml +++ b/blockpro.xml @@ -3,7 +3,7 @@ BlockPro Модуль предназначен для удобного вывода новостей на сайте engine/skins/images/blockpro.png - 6.0.2 + 6.0.3 13 greater https://updates.pafnuty.name/check-bp.php diff --git a/engine/inc/blockpro.php b/engine/inc/blockpro.php index a07af9f..87d44a9 100644 --- a/engine/inc/blockpro.php +++ b/engine/inc/blockpro.php @@ -28,7 +28,7 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/base/admin/blockpro/'); $moduleName = 'blockpro'; -$moduleVersion = '6.0.2'; +$moduleVersion = '6.0.3'; $moderate = $_REQUEST['moderate']; $moderate_checked = ($moderate) ? 'checked' : ''; diff --git a/engine/modules/base/blockpro.inc.php b/engine/modules/base/blockpro.inc.php index 0d983d4..e7214e0 100644 --- a/engine/modules/base/blockpro.inc.php +++ b/engine/modules/base/blockpro.inc.php @@ -189,20 +189,27 @@ $cfg['cachePrefix'] = 'base'; } -// Определяемся с шаблоном сайта -// Проверим куку пользователя и наличие параметра skin в реквесте. -$currentSiteSkin = (isset($_COOKIE['dle_skin'])) ? trim(totranslit($_COOKIE['dle_skin'], false, false)) - : ((isset($_REQUEST['skin'])) ? trim(totranslit($_REQUEST['skin'], false, false)) : $config['skin']); - -// Если итоге пусто — назначим опять шаблон из конфига. -if ($currentSiteSkin == '') { - $currentSiteSkin = $config['skin']; +// Определяемся с правильным шаблоном сайта +$currentSiteSkin = $config['skin']; + + +if ($_REQUEST['skin']) { + $_REQUEST['skin'] = $_REQUEST['dle_skin'] = trim(totranslit($_REQUEST['skin'], false, false)); } -// Если парки с шаблоном нет — дальше не работаем. -if (!@is_dir(ROOT_DIR.'/templates/'.$currentSiteSkin)) { - die('no_skin'); + +if ($_REQUEST['dle_skin']) { + $_REQUEST['dle_skin'] = trim(totranslit($_REQUEST['dle_skin'], false, false)); + if ($_REQUEST['dle_skin'] AND @is_dir(ROOT_DIR.'/templates/'.$_REQUEST['dle_skin'])) { + $currentSiteSkin = $_REQUEST['dle_skin']; + } +} elseif ($_COOKIE['dle_skin']) { + $_COOKIE['dle_skin'] = trim(totranslit((string)$_COOKIE['dle_skin'], false, false)); + if ($_COOKIE['dle_skin'] AND is_dir(ROOT_DIR.'/templates/'.$_COOKIE['dle_skin'])) { + $currentSiteSkin = $_COOKIE['dle_skin']; + } } + // Формируем имя кеша $cacheName = implode('_', $cfg).$currentSiteSkin; @@ -1127,7 +1134,7 @@ // Результат обработки шаблона try { - $output = $base->tpl->fetch($base->cfg['template'].'.tpl', $tplArr); + $output = $base->tpl->fetch($base->dle_config['skin'].'/' . $base->cfg['template'].'.tpl', $tplArr); } catch (Exception $e) { $outputLog['errors'][] = $e->getMessage(); $base->cfg['nocache'] = true; diff --git a/engine/modules/base/core/base.php b/engine/modules/base/core/base.php index e641b54..eab6268 100644 --- a/engine/modules/base/core/base.php +++ b/engine/modules/base/core/base.php @@ -83,8 +83,7 @@ public static function getDb() { } public function getTemplater($tplOptions) { - $this->tpl = Fenom::factory(ROOT_DIR.'/templates/'.$this->dle_config['skin'].'/', ENGINE_DIR.'/cache/', - $tplOptions); + $this->tpl = Fenom::factory(ROOT_DIR.'/templates/', ENGINE_DIR.'/cache/', $tplOptions); // Добавляем модификаторы $this->addModifiers(); }