Example #1
0
function showsearch()
{
    global $lang;
    global $conf;
    global $site;
    global $user;
    $site->title($lang['search']['results']);
    $site->addfooter("search.php", "search", $lang['search']['extended']);
    if ($_POST['cancel']) {
        redirect("category.php");
    }
    if (!$_POST['query'] && !$_POST['author'] && !$_POST['cats']) {
        $site->addcontent(notice($lang['search']['noquery']));
        return false;
    }
    $start_search = microtime(true);
    $db = new CodeKBDatabase();
    $searchquery = buildsearchquery($db->type());
    try {
        $db->dosql($searchquery);
    } catch (Exception $e) {
        $site->addcontent(notice($lang['search']['wrongquery']));
    }
    $end_search = microtime(true);
    $search = new CodeKBTemplate("search");
    $search->push("extended", url("search.php", $lang['search']['extended']));
    $text = phrasereplace($lang['search']['xresultsiny'], "%1%", $db->countrows());
    $text = phrasereplace($text, "%2%", round($end_search - $start_search, 2));
    $search->push("info", $text);
    $resultcode = "";
    while ($val = $db->row()) {
        try {
            $tmpentry = new CodeKBEntry($val['id'], $user);
            unset($tmpentry);
        } catch (Exception $e) {
            continue;
        }
        $resultitem = new CodeKBTemplate("result");
        $content = url("entry.php?id=" . $val['id'], icon($val['symbol'], $val['name'])) . " \n";
        $content .= url("entry.php?id=" . $val['id'], htmlentities($val['name']), $val['name']);
        $resultitem->push("title", $content);
        $content = $db->datetime($val['created']) . " (" . htmlentities($val['author']) . ")";
        $resultitem->push("subtitle", $content);
        $resultitem->push("description", htmlentities($val['description']));
        $resultcode .= $resultitem->__toString();
        unset($resultitem);
    }
    $search->push("results", $resultcode);
    $site->addcontent($search);
    return true;
}