function mod_quickfinder($navi_ids = '') { global $AVE_DB, $AVE_Core, $navigations; if (!empty($navi_ids)) { $sql = array(); $navi_ids = explode(',', $navi_ids); foreach ($navi_ids as $navi_id) { if (is_numeric($navi_id) && check_navi_permission($navi_id)) { $sql[] = "(\r\n\t\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\t\tId,\r\n\t\t\t\t\t\t\t\tparent_id,\r\n\t\t\t\t\t\t\t\ttitle,\r\n\t\t\t\t\t\t\t\tnavi_item_link,\r\n\t\t\t\t\t\t\t\tnavi_item_target,\r\n\t\t\t\t\t\t\t\tnavi_item_level,\r\n\t\t\t\t\t\t\t\tdocument_alias,\r\n\t\t\t\t\t\t\t\t0 AS active\r\n\t\t\t\t\t\t\tFROM " . PREFIX . "_navigation_items\r\n\t\t\t\t\t\t\tWHERE navi_item_status = '1'\r\n\t\t\t\t\t\t\tAND navi_id = " . $navi_id . "\r\n\t\t\t\t\t\t\tORDER BY navi_item_position ASC\r\n\t\t\t\t\t\t)"; } } $sql = implode(' UNION ', $sql); if (empty($sql)) { return; } } else { $navigations = get_navigations(); if (empty($navigations)) { return; } $navi_in = array(); foreach ($navigations as $navigation) { if (in_array(UGROUP, $navigation->navi_user_group)) { array_push($navi_in, $navigation->id); } } if (sizeof($navi_in)) { $sql = "\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tId,\r\n\t\t\t\t\tparent_id,\r\n\t\t\t\t\ttitle,\r\n\t\t\t\t\tnavi_item_link,\r\n\t\t\t\t\tnavi_item_target,\r\n\t\t\t\t\tnavi_item_level,\r\n\t\t\t\t\tdocument_alias,\r\n\t\t\t\t\t0 AS active\r\n\t\t\t\tFROM " . PREFIX . "_navigation_items\r\n\t\t\t\tWHERE navi_item_status = '1'\r\n\t\t\t\tAND navi_id IN(" . implode(',', $navi_in) . ")\r\n\t\t\t\tORDER BY navi_id ASC, navi_item_position ASC\r\n\t\t\t"; } else { return; } } $nav_items = array(); $sql = $AVE_DB->Query($sql); while ($row_nav_item = $sql->FetchAssocArray()) { if (empty($_REQUEST['module'])) { $curent_doc_id = isset($_GET['id']) && is_numeric($_GET['id']) ? $_GET['id'] : 1; if ($row_nav_item['document_alias'] == $AVE_Core->curentdoc->document_alias || $row_nav_item['navi_item_link'] == 'index.php?id=' . $curent_doc_id) { $row_nav_item['active'] = 1; } } else { if ($row_nav_item['navi_item_link'] == 'index.php?module=' . $_REQUEST['module']) { $row_nav_item['active'] = 1; } } $nav_items[$row_nav_item['parent_id']][] = $row_nav_item; } if (sizeof($nav_items)) { $quickfinder = '<select class="mod_quickfinder" name="quickfinder" onchange="eval(this.options[this.selectedIndex].value);">'; $quickfinder .= '<option></option>'; printQuickfinder($nav_items, $quickfinder); echo $quickfinder . '</select>'; } }
/** * Функция вывода карты сайта * * @param int $navi_ids - идентификатор меню навигации * или нескольких меню указанных через запятую * для формирования карты сайта. * Если идентификатор не указан используются все меню */ function mod_sitemap($navi_ids = '') { global $AVE_DB; if (!empty($navi_ids)) { $sql = array(); $navi_ids = explode(',', $navi_ids); foreach ($navi_ids as $navi_id) { if (is_numeric($navi_id) && check_navi_permission($navi_id)) { array_push($sql, "(\r\n\t\t\t\t\t\tSELECT *\r\n\t\t\t\t\t\tFROM " . PREFIX . "_navigation_items\r\n\t\t\t\t\t\tWHERE navi_item_status = '1'\r\n\t\t\t\t\t\tAND navi_id = " . $navi_id . "\r\n\t\t\t\t\t\tORDER BY navi_item_position ASC\r\n\t\t\t\t\t)"); } } $sql = implode(' UNION ', $sql); if (empty($sql)) { return; } } else { $navigations = get_navigations(); if (empty($navigations)) { return; } $navi_in = array(); foreach ($navigations as $navigation) { if (in_array(UGROUP, $navigation->navi_user_group)) { array_push($navi_in, $navigation->id); } } if (sizeof($navi_in)) { $sql = "\r\n\t\t\t\tSELECT *\r\n\t\t\t\tFROM " . PREFIX . "_navigation_items\r\n\t\t\t\tWHERE navi_item_status = '1'\r\n\t\t\t\tAND navi_id IN(" . implode(',', $navi_in) . ")\r\n\t\t\t\tORDER BY navi_id ASC, navi_item_position ASC\r\n\t\t\t"; } else { return; } } $nav_items = array(); $sql = $AVE_DB->Query($sql); while ($row_nav_item = $sql->FetchAssocArray()) { $nav_items[$row_nav_item['parent_id']][] = $row_nav_item; } $sitemap = ''; if (sizeof($nav_items)) { printSitemap($nav_items, $sitemap); } echo $sitemap; }