исправляем фатал. ошибку в навигации при отсутствии/неправильно указанном Id в теге
This commit is contained in:
@@ -138,6 +138,7 @@
|
||||
$navigation_level1_active = (empty($_REQUEST['level1_active'])) ? "<a target=\"[tag:target]\" href=\"[tag:link]\" class=\"first_active\">[tag:linkname]</a>" : $_REQUEST['level1_active'];
|
||||
|
||||
// Выполняем запрос к БД на добавление нового меню
|
||||
|
||||
$AVE_DB->Query("
|
||||
INSERT INTO
|
||||
" . PREFIX . "_navigation
|
||||
@@ -147,20 +148,20 @@
|
||||
title = '" . $navigation_title . "',
|
||||
level1 = '" . $navigation_level1 . "',
|
||||
level1_active = '" . $navigation_level1_active . "',
|
||||
level2 = '" . $_REQUEST['level2'] . "',
|
||||
level2_active = '" . $_REQUEST['level2_active'] . "',
|
||||
level3 = '" . $_REQUEST['level3'] . "',
|
||||
level3_active = '" . $_REQUEST['level3_active'] . "',
|
||||
level1_begin = '" . $_REQUEST['level1_begin'] . "',
|
||||
level2_begin = '" . $_REQUEST['level2_begin'] . "',
|
||||
level3_begin = '" . $_REQUEST['level3_begin'] . "',
|
||||
level1_end = '" . $_REQUEST['level1_end'] . "',
|
||||
level2_end = '" . $_REQUEST['level2_end'] . "',
|
||||
level3_end = '" . $_REQUEST['level3_end'] . "',
|
||||
begin = '" . $_REQUEST['begin'] . "',
|
||||
end = '" . $_REQUEST['end'] . "',
|
||||
level2 = '" . ($_REQUEST['level2'] ?? '') . "',
|
||||
level2_active = '" . ($_REQUEST['level2_active'] ?? '') . "',
|
||||
level3 = '" . ($_REQUEST['level3'] ?? '') . "',
|
||||
level3_active = '" . ($_REQUEST['level3_active'] ?? '') . "',
|
||||
level1_begin = '" . ($_REQUEST['level1_begin'] ?? '') . "',
|
||||
level2_begin = '" . ($_REQUEST['level2_begin'] ?? '') . "',
|
||||
level3_begin = '" . ($_REQUEST['level3_begin'] ?? '') . "',
|
||||
level1_end = '" . ($_REQUEST['level1_end'] ?? '') . "',
|
||||
level2_end = '" . ($_REQUEST['level2_end'] ?? '') . "',
|
||||
level3_end = '" . ($_REQUEST['level3_end'] ?? '') . "',
|
||||
begin = '" . ($_REQUEST['begin'] ?? '') . "',
|
||||
end = '" . ($_REQUEST['end'] ?? '') . "',
|
||||
user_group = '" . (empty($_REQUEST['user_group']) ? '' : implode(',', $_REQUEST['user_group'])) . "',
|
||||
expand_ext = '" . $_REQUEST['expand_ext'] . "'
|
||||
expand_ext = '" . ($_REQUEST['expand_ext'] ?? '') . "'
|
||||
");
|
||||
|
||||
$navigation_id = $AVE_DB->getLastInsertId();
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Возвращает меню навигации
|
||||
*
|
||||
* @param int $id идентификатор меню навигации
|
||||
@@ -36,13 +36,19 @@
|
||||
|
||||
$navigation = $AVE_DB->Query($sql, -1, 'nav_' . $navi_id, true, '.navigation')->FetchRow();
|
||||
|
||||
$navigation->user_group = explode(',',$navigation->user_group);
|
||||
// Проверяем, что $navigation является объектом, прежде чем обращаться к свойствам
|
||||
if (is_object($navigation)) {
|
||||
$navigation->user_group = explode(',',$navigation->user_group);
|
||||
} else {
|
||||
// Если меню не найдено (результат false), возвращаем false или null.
|
||||
return false;
|
||||
}
|
||||
|
||||
return $navigation;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* Функция обработки навигации
|
||||
*
|
||||
* @param int $navi_tag - идентификатор меню навигации
|
||||
@@ -59,6 +65,13 @@
|
||||
|
||||
$navi_menu = get_navigations($navi_id);
|
||||
|
||||
// ИСПРАВЛЕНИЕ: Проверяем, существует ли объект меню, сразу после его получения.
|
||||
if (! $navi_menu)
|
||||
{
|
||||
echo 'Menu ', $navi_id, ' not found!';
|
||||
return '';
|
||||
}
|
||||
|
||||
$expnad_ext = $navi_menu->expand_ext;
|
||||
|
||||
// извлекаем level из аргумента
|
||||
@@ -68,12 +81,6 @@
|
||||
|
||||
$navi = '';
|
||||
|
||||
if (! $navi_menu)
|
||||
{
|
||||
echo 'Menu ', $navi_id, ' not found!';
|
||||
return '';
|
||||
}
|
||||
|
||||
// выставляем гостевую группу по дефолту
|
||||
if (! defined('UGROUP'))
|
||||
define('UGROUP', 2);
|
||||
@@ -104,7 +111,7 @@
|
||||
|
||||
// запрос для выборки по текущему алиасу
|
||||
$sql_doc_active_alias = '';
|
||||
|
||||
|
||||
$url_suff = '';
|
||||
|
||||
if (defined('URL_SUFF') AND URL_SUFF)
|
||||
@@ -282,15 +289,15 @@
|
||||
|
||||
// Парсим теги в шаблонах пунктов
|
||||
$navi_item_tpl = array(
|
||||
1 => array(
|
||||
1 => array(
|
||||
'inactive' => $navi_menu->level1,
|
||||
'active' => $navi_menu->level1_active
|
||||
),
|
||||
2 => array(
|
||||
2 => array(
|
||||
'inactive' => $navi_menu->level2,
|
||||
'active' => $navi_menu->level2_active
|
||||
),
|
||||
3 => array(
|
||||
3 => array(
|
||||
'inactive' => $navi_menu->level3,
|
||||
'active' => $navi_menu->level3_active
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user