From c629cfed336dd0b0f8b0759560fc30da0e38fd82 Mon Sep 17 00:00:00 2001 From: mchampan Date: Wed, 2 Aug 2006 15:17:46 +0000 Subject: [PATCH 1/1] Option for additional search types added. --- search/indexer.php | 9 +++++---- search/lib.php | 21 ++++++++++++++++++++- search/tests/index.php | 2 ++ 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/search/indexer.php b/search/indexer.php index 12968541d0b..c7d8df8ac28 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 a64c776b2fb..27c7c26f717 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 49ddb39f993..37de0dc00e9 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'; -- 2.43.0