示例#1
0
include_once 'include/File.php';
include_once 'include/Category.php';
include_once 'config.inc';
set_time_limit(60);
db_open();
if (1 || $_REQUEST["submit"]) {
    htmldb_set_hilight_words(array($_REQUEST["term"]));
    $disk_by_tag = fetchDisksByCriteria("tag = '" . $_REQUEST["term"] . "'");
    if (db_num_rows($disk_by_tag) == 0) {
        unset($disk_by_tag);
    }
    if ($_REQUEST["what"] == "disk") {
        saveSearchParams($_SERVER['PHP_SELF'], array('what', 'tag_pattern', 'tag', 'term'));
        $term = convertWildcards($_REQUEST['term']);
        $tag = convertWildcards($_REQUEST['tag_pattern']);
        $disks = fetchDisksByCriteria("tag LIKE '{$tag}' AND (title LIKE '%{$term}%' OR label LIKE '%{$term}%')");
        if (db_num_rows($disks) == 0) {
            unset($disks);
        } else {
            $ids = getDiskIdsFromDbRes($disks);
            $category_map = getDiskCategories($ids);
        }
    }
    if ($_REQUEST["what"] == "file") {
        saveSearchParams($_SERVER['PHP_SELF'], array('what', 'tag_pattern', 'tag', 'term'));
        $term = convertWildcards($_REQUEST["term"]);
        $crit = "(Filename LIKE '%{$term}%' OR BetterName LIKE '%{$term}%')";
        if (isset($_REQUEST["tag_pattern"])) {
            $tag = convertWildcards($_REQUEST['tag_pattern']);
            $crit .= " AND disk.tag LIKE '{$tag}'";
        }
    if ($_REQUEST['category1'] == -1) {
        $left_join = 'LEFT JOIN category_map_disk ON disk.id=category_map_disk.obj_id';
    }
    $crit .= make_category_criteria($_REQUEST['category1'], $_REQUEST['category_not1']);
    $crit .= make_category_criteria($_REQUEST['category2'], $_REQUEST['category_not2']);
    $crit .= make_category_criteria($_REQUEST['category3'], $_REQUEST['category_not3']);
    $crit .= make_category_criteria($_REQUEST['category4'], $_REQUEST['category_not4']);
    $sort = array();
    if (isset($_REQUEST["group_by_disk"])) {
        $sort[] = 'Tag';
    }
    if ($_REQUEST['sort'] == 'name') {
        $sort[] = 'Filename';
    } else {
        $sort[] = 'no';
    }
    $t1 = getmicrotime();
    $disks = fetchDisksByCriteria($crit, $left_join);
    $searchTime = getmicrotime() - $t1;
    if (db_num_rows($disks) == 0) {
        unset($disks);
    } else {
        $t1 = getmicrotime();
        $ids = getDiskIdsFromDbRes($disks);
        $category_map = getDiskCategories($ids);
        $categoryTime = getmicrotime() - $t1;
    }
    include 'search_disks.php_html';
    exit;
}
include 'search_adv_disk.php_html';