Option for additional search types added.
[moodle.git] / search / lib.php
index f6c17a8..27c7c26 100644 (file)
@@ -1,18 +1,53 @@
 <?php
 
-  //Move this stuff to lib/searchlib.php?
-  // Author: Michael Champanis
-
-  //document types that can be searched
-  define('SEARCH_NO_TYPE', 'none');
-  define('SEARCH_WIKI_TYPE', 'wiki');
+  /* Move this stuff to lib/searchlib.php?
+   * Author: Michael Champanis
+   *
+   * This file must not contain any PHP 5, because it is used to test for PHP 5
+   * itself, and needs to be able to be executed on PHP 4 installations.
+   * */
+  
+  define('SEARCH_INDEX_PATH', "$CFG->dataroot/search");
+  define('SEARCH_DATABASE_TABLE', 'search_documents');
+  
+  //document types that can be searched  
+  define('SEARCH_TYPE_NONE', 'none');
+  define('SEARCH_TYPE_WIKI', 'wiki');
+  define('SEARCH_TYPE_FORUM', 'forum');
+  define('SEARCH_TYPE_GLOSSARY', 'glossary');
+  define('SEARCH_TYPE_RESOURCE', 'resource');
   
   //returns all the document type constants
-  function search_get_document_types() {
-    $r = Array(SEARCH_WIKI_TYPE, SEARCH_NO_TYPE);
-    return $r;
+  function search_get_document_types($prefix='SEARCH_TYPE') {
+    $ret = array();
+    
+    foreach (get_defined_constants() as $key=>$value) {
+      if (substr($key, 0, strlen($prefix)) == $prefix) {
+        $ret[$key] = $value;
+      } //if
+    } //foreach
+    
+    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) {    
     return substr($url, 0, $length)."...";