Example #1
0
    } else {
        $words = preg_split('/ +/', $cuv);
        list($defIds, $stopWords) = Definition::searchFullText($words, $hasDiacritics, $sourceId);
        SmartyWrap::assign('numResults', count($defIds));
        SmartyWrap::assign('stopWords', $stopWords);
        // Show at most 500 definitions;
        $defIds = array_slice($defIds, 0, LIMIT_FULLTEXT_DISPLAY);
        // Load definitions in the given order
        $definitions = array();
        foreach ($defIds as $id) {
            $definitions[] = Definition::get_by_id($id);
        }
        if (!count($defIds)) {
            FlashMessage::add('Nicio definiție nu conține toate cuvintele căutate.');
        }
        Definition::highlight($words, $definitions);
    }
    $searchResults = SearchResult::mapDefinitionArray($definitions);
}
// LexemId search
if ($lexemId) {
    // We don't really use $cuv here
    $searchType = SEARCH_LEXEM_ID;
    SmartyWrap::assign('lexemId', $lexemId);
    if (!StringUtil::validateAlphabet($lexemId, '0123456789')) {
        $lexemId = '';
    }
    $lexem = Lexem::get_by_id($lexemId);
    $definitions = Definition::searchLexemId($lexemId, $exclude_unofficial);
    $searchResults = SearchResult::mapDefinitionArray($definitions);
    SmartyWrap::assign('results', $searchResults);