Example #1
0
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>';
    }
}
Example #2
0
/**
 * Функция вывода карты сайта
 *
 * @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;
}