diff --git a/class/class.navigation.php b/class/class.navigation.php index 778234c..fcf527e 100644 --- a/class/class.navigation.php +++ b/class/class.navigation.php @@ -138,6 +138,7 @@ $navigation_level1_active = (empty($_REQUEST['level1_active'])) ? "[tag:linkname]" : $_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(); diff --git a/functions/func.navigation.php b/functions/func.navigation.php index 217ba9c..f5c021e 100644 --- a/functions/func.navigation.php +++ b/functions/func.navigation.php @@ -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 )