From: mchampan Date: Wed, 2 Aug 2006 15:17:46 +0000 (+0000) Subject: Option for additional search types added. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c629cfed336dd0b0f8b0759560fc30da0e38fd82;p=moodle.git Option for additional search types added. --- diff --git a/search/indexer.php b/search/indexer.php index 12968541d0..c7d8df8ac2 100644 --- a/search/indexer.php +++ b/search/indexer.php @@ -104,9 +104,10 @@ // * mod_get_content_for_index //are the sole basis for including a module in the index at the moment. - if ($mods = get_records_select('modules' /*'index this module?' where statement*/)) { - foreach ($mods as $mod) { - if ($mod->name == 'forum') continue; + if ($mods = get_records_select('modules' /*'index this module?' where statement*/)) { + $mods = array_merge($mods, search_get_additional_modules()); + + foreach ($mods as $mod) { $class_file = $CFG->dirroot.'/search/documents/'.$mod->name.'_document.php'; if (file_exists($class_file)) { @@ -141,7 +142,7 @@ $id = insert_record('search_documents', $doc); //synchronise db with index - $document->addField(Zend_Search_Lucene_Field::Keyword('db_id', $id)); + $document->addField(Zend_Search_Lucene_Field::Keyword('dbid', $id)); //add document to index $index->addDocument($document); diff --git a/search/lib.php b/search/lib.php index a64c776b2f..27c7c26f71 100644 --- a/search/lib.php +++ b/search/lib.php @@ -14,7 +14,8 @@ define('SEARCH_TYPE_NONE', 'none'); define('SEARCH_TYPE_WIKI', 'wiki'); define('SEARCH_TYPE_FORUM', 'forum'); - define('SEARCH_TYPE_GLOSSARY', 'glossary'); + define('SEARCH_TYPE_GLOSSARY', 'glossary'); + define('SEARCH_TYPE_RESOURCE', 'resource'); //returns all the document type constants function search_get_document_types($prefix='SEARCH_TYPE') { @@ -28,6 +29,24 @@ return $ret; } //search_get_document_types + + // additional virtual modules to index + // + // By adding 'moo' to the extras array, an additional document type + // documents/moo_document.php will be indexed - this allows for + // virtual modules to be added to the index, i.e. non-module specific + // information. + function search_get_additional_modules() { + $extras = array(/* additional keywords go here */); + $ret = array(); + + foreach($extras as $extra) { + $temp->name = $extra; + $ret[] = clone($temp); + } //foreach + + return $ret; + } //search_get_additional_modules //shortens a url so it can fit on the results page function search_shorten_url($url, $length=30) { diff --git a/search/tests/index.php b/search/tests/index.php index 49ddb39f99..37de0dc00e 100644 --- a/search/tests/index.php +++ b/search/tests/index.php @@ -43,6 +43,8 @@ //are the sole basis for including a module in the index at the moment. if ($mods = get_records_select('modules')) { + $mods = array_merge($mods, search_get_additional_modules()); + foreach ($mods as $mod) { $class_file = $CFG->dirroot.'/search/documents/'.$mod->name.'_document.php';