Browse Source

Fixes

pull/3/head
M@d D3n 5 years ago
parent
commit
f9731913bf
  1. 6
      class/class.database.php
  2. 126
      functions/func.navigation.php
  3. 15
      functions/func.parserequest.php

6
class/class.database.php

@ -1419,6 +1419,12 @@
return $cache_id = 'requests/settings/' . $cache_id; return $cache_id = 'requests/settings/' . $cache_id;
} }
//-- Если это условия запроса, то меняем расположение
if (substr($cache_id, 0, 3) == 'rqc') {
$cache_id = str_replace('rqc_', '', $cache_id);
return $cache_id = 'requests/settings/' . $cache_id;
}
// -- Навигация // -- Навигация
if (substr($cache_id, 0, 3) == 'nav') { if (substr($cache_id, 0, 3) == 'nav') {
$cache_id = explode('_', $cache_id); $cache_id = explode('_', $cache_id);

126
functions/func.navigation.php

@ -11,6 +11,37 @@
* @license GPL v.2 * @license GPL v.2
*/ */
/**
* Возвращает меню навигации
*
* @param int $id идентификатор меню навигации
* @return string|mixed объект с навигацией по id, либо массив всех навигаций
*/
function get_navigations($navi_id = null)
{
global $AVE_DB;
$sql = "
SELECT
# NAVIGATION = $navi_id
*
FROM
" . PREFIX . "_navigation
WHERE
navigation_id = '" . $navi_id . "'
OR
alias = '" . $navi_id . "'
";
$navigation = $AVE_DB->Query($sql, -1, 'nav_' . $navi_id, true, '.navigation')->FetchRow();
$navigation->user_group = explode(',',$navigation->user_group);
return $navigation;
}
/** /**
* Функция обработки навигации * Функция обработки навигации
* *
@ -26,20 +57,9 @@
Debug::startTime('NAVIAGTION_' . $navi_id); Debug::startTime('NAVIAGTION_' . $navi_id);
// Достаем для проверки тип меню $navi_menu = get_navigations($navi_id);
$sql = "
SELECT
# NAVIGATION = $navi_id
expand_ext
FROM
".PREFIX."_navigation
WHERE
navigation_id = '" . $navi_id . "'
OR
alias = '" . $navi_id . "'
";
$expnad_ext = $AVE_DB->Query($sql, -1, 'nav_' . $navi_id, true, '.naviagtion')->GetCell(); $expnad_ext = $navi_menu->expand_ext;
// извлекаем level из аргумента // извлекаем level из аргумента
$navi_print_level = (! empty($navi_tag[2])) $navi_print_level = (! empty($navi_tag[2]))
@ -48,30 +68,6 @@
$navi = ''; $navi = '';
$cache_file = BASE_DIR . '/tmp/cache/sql/navigations/' . $navi_id . '/template.cache';
// Если включен DEV MODE, то отключаем кеширование запросов
if (defined('DEV_MODE') AND DEV_MODE || $expnad_ext != 1)
$cache_file = null;
if (! is_dir(dirname($cache_file)))
mkdir(dirname($cache_file), 0766, true);
// получаем меню навигации по id,
// и если такой не существует, выводим сообщение
if (file_exists($cache_file))
{
$navi_menu = unserialize(file_get_contents($cache_file));
}
else
{
$navi_menu = get_navigations($navi_id);
if ($cache_file)
file_put_contents($cache_file, serialize($navi_menu));
}
if (! $navi_menu) if (! $navi_menu)
{ {
echo 'Menu ', $navi_id, ' not found!'; echo 'Menu ', $navi_id, ' not found!';
@ -214,7 +210,7 @@
$cache_items = BASE_DIR . '/tmp/cache/sql/navigations/' . $navi_id . '/items.cache'; $cache_items = BASE_DIR . '/tmp/cache/sql/navigations/' . $navi_id . '/items.cache';
$navi_items = array(); $navi_items = [];
// Если включен DEV MODE, то отключаем кеширование запросов // Если включен DEV MODE, то отключаем кеширование запросов
if (defined('DEV_MODE') AND DEV_MODE || $expnad_ext != 1) if (defined('DEV_MODE') AND DEV_MODE || $expnad_ext != 1)
@ -329,7 +325,7 @@
* @param int $parent (исследуемый родитель, изначально 0 - верхний уровень) * @param int $parent (исследуемый родитель, изначально 0 - верхний уровень)
* @return string $navi - готовый код навигации * @return string $navi - готовый код навигации
*/ */
function printNavi($navi_menu, $navi_items, $navi_active_way, $navi_item_tpl, $parent = 0) function printNavi ($navi_menu, $navi_items, $navi_active_way, $navi_item_tpl, $parent = 0)
{ {
// выясняем уровень // выясняем уровень
$navi_item_level = $navi_items[$parent][0]['level']; $navi_item_level = $navi_items[$parent][0]['level'];
@ -499,63 +495,13 @@
} }
/**
* Возвращает меню навигации
*
* @param int $id идентификатор меню навигации
* @return string|mixed объект с навигацией по id, либо массив всех навигаций
*/
function get_navigations($id = null)
{
global $AVE_DB;
$navigations = array();
if ($id)
{
$sql = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_navigation
WHERE
" . (is_numeric($id) ? 'navigation_id' : 'alias') . " = '" . $id . "'
");
}
else
{
$sql = $AVE_DB->Query("
SELECT
*
FROM
" . PREFIX . "_navigation
");
}
while ($row = $sql->FetchRow())
{
$row->user_group = explode(',', $row->user_group);
if ($id)
$navigations[$id] = $row;
else
$navigations[$row->navigation_id] = $row;
}
if ($id)
return $navigations[$id];
else
return $navigations;
}
/** /**
* Проверка прав доступа к навигации по группе пользователя * Проверка прав доступа к навигации по группе пользователя
* *
* @param int $id идентификатор меню навигации * @param int $id идентификатор меню навигации
* @return boolean * @return boolean
*/ */
function check_navi_permission($id) function check_navi_permission ($id)
{ {
$navigation = get_navigations($id); $navigation = get_navigations($id);

15
functions/func.parserequest.php

@ -61,8 +61,9 @@
$from = []; $from = [];
$where = []; $where = [];
$sql_ak = $AVE_DB->Query(" $sql = "
SELECT * SELECT
*
FROM FROM
" . PREFIX . "_request_conditions " . PREFIX . "_request_conditions
WHERE WHERE
@ -70,8 +71,10 @@
AND AND
condition_status = '1' condition_status = '1'
ORDER BY ORDER BY
condition_position ASC condition_position ASC;
"); ";
$sql_ak = $AVE_DB->Query($sql, -1, 'rqc_' . $id, true, '.conditions');
// Обрабатываем выпадающие списки // Обрабатываем выпадающие списки
@ -102,8 +105,12 @@
} }
} }
// ./Обрабатываем выпадающие списки
$i = 0; $i = 0;
$numeric = [];
while ($row_ak = $sql_ak->FetchRow()) while ($row_ak = $sql_ak->FetchRow())
{ {
// id поля рубрики // id поля рубрики

Loading…
Cancel
Save