code review for packaging and code cleaning
authordiml <diml>
Mon, 31 Mar 2008 22:22:20 +0000 (22:22 +0000)
committerdiml <diml>
Mon, 31 Mar 2008 22:22:20 +0000 (22:22 +0000)
16 files changed:
search/documents/chat_document.php
search/documents/data_document.php
search/documents/document.php
search/documents/forum_document.php
search/documents/glossary_document.php
search/documents/lesson_document.php
search/documents/physical_doc.php
search/documents/physical_htm.php
search/documents/physical_html.php
search/documents/physical_pdf.php
search/documents/physical_ppt.php
search/documents/physical_txt.php
search/documents/physical_xml.php
search/documents/resource_document.php
search/documents/wiki_document.php
search/tests/index.php

index c4db95c..ff62491 100644 (file)
@@ -1,8 +1,13 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for chat activity module
 * This file contains the mapping between a chat history and it's indexable counterpart,
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/chat/lib.php
 *
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/chat/lib.php");
 
-/* 
+/**
 * a class for representing searchable information
 * 
-**/
+*/
 class ChatTrackSearchDocument extends SearchDocument {
 
     /**
     * constructor
-    *
     */
     public function __construct(&$chatsession, $chat_module_id, $course_id, $group_id, $context_id) {
         // generic information; required
@@ -50,8 +54,8 @@ class ChatTrackSearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, $group_id, 0, PATH_FOR_SEARCH_TYPE_CHAT);
-    } //constructor
-} //ChatTrackSearchDocument
+    } 
+}
 
 
 /**
@@ -59,19 +63,21 @@ class ChatTrackSearchDocument extends SearchDocument {
 * @param cm_id the chat course module
 * @param start the start time of the session
 * @param end th end time of the session
+* @uses CFG
 * @return a well formed link to session display
 */
 function chat_make_link($cm_id, $start, $end) {
     global $CFG;
 
     return $CFG->wwwroot.'/mod/chat/report.php?id='.$cm_id.'&amp;start='.$start.'&amp;end='.$end;
-} //chat_make_link
+}
 
 /**
 * fetches all the records for a given session and assemble them as a unique track
 * we revamped here the code of report.php for making sessions, but without any output.
 * note that we should collect sessions "by groups" if groupmode() is SEPARATEGROUPS.
 * @param chat_id the database
+* @uses CFG
 * @return an array of objects representing the chat sessions.
 */
 function chat_get_session_tracks($chat_id, $fromtime = 0, $totime = 0) {
@@ -140,7 +146,7 @@ function chat_get_session_tracks($chat_id, $fromtime = 0, $totime = 0) {
         } 
     } 
     return $tracks;
-} //chat_get_session_tracks
+}
 
 /**
 * part of search engine API
@@ -149,7 +155,7 @@ function chat_get_session_tracks($chat_id, $fromtime = 0, $totime = 0) {
 function chat_iterator() {
     $chatrooms = get_records('chat');
     return $chatrooms;
-} //chat_iterator
+}
 
 /**
 * part of search engine API
@@ -177,7 +183,7 @@ function chat_get_content_for_index(&$chat) {
         return $documents;
     }
     return array();
-} //chat_get_content_for_index
+}
 
 /**
 * returns a single data search document based on a chat_session id
@@ -206,7 +212,7 @@ function chat_single_document($id, $itemtype) {
         return $document;
     }
     return null;
-} //chat_single_document
+}
 
 /**
 * dummy delete function that packs id with itemtype.
@@ -217,7 +223,7 @@ function chat_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //chat_delete
+}
 
 /**
 * returns the var names needed to build a sql query for addition/deletions
@@ -226,7 +232,7 @@ function chat_delete($info, $itemtype) {
 function chat_db_names() {
     //[primary id], [table name], [time created field name], [time modified field name]
     return null;
-} //chat_db_names
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -241,6 +247,7 @@ function chat_db_names() {
 * points out a session history which is a close sequence of messages.
 * @param user the user record denoting the user who searches
 * @param group_id the current group used by the user when searching
+* @uses CFG
 * @return true if access is allowed, false elsewhere
 */
 function chat_check_text_access($path, $itemtype, $this_id, $user, $group_id, $context_id){
@@ -280,7 +287,7 @@ function chat_check_text_access($path, $itemtype, $this_id, $user, $group_id, $c
     }
         
     return true;
-} //chat_check_text_access
+}
 
 /**
 * this call back is called when displaying the link for some last post processing
@@ -290,5 +297,5 @@ function chat_link_post_processing($title){
      setLocale(LC_TIME, substr(current_language(), 0, 2));
      $title = preg_replace('/TT_(.*)_TT/e', "userdate(\\1)", $title);
      return $title;
-} //chat_link_post_processing
+}
 ?>
\ No newline at end of file
index 63f3c23..aaeeea3 100644 (file)
@@ -1,8 +1,13 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for data activity module
 * This file contains the mapping between a database object and it's indexable counterpart,
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/data/lib.php
 *
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/data/lib.php");
 
-/* 
+/**
 * a class for representing searchable information (data records)
 * 
-**/
+*/
 class DataSearchDocument extends SearchDocument {
 
     /**
     * constructor
-    *
     */
     public function __construct(&$record, $course_id, $context_id) {
         // generic information; required
@@ -51,18 +55,17 @@ class DataSearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, $record['groupid'], $record['userid'], PATH_FOR_SEARCH_TYPE_DATA);
-    } //constructor
-} //ChatSearchDocument
+    } 
+}
 
-/* 
+/**
 * a class for representing searchable information (comments on data records)
 * 
-**/
+*/
 class DataCommentSearchDocument extends SearchDocument {
 
     /**
     * constructor
-    *
     */
     public function __construct(&$comment, $course_id, $context_id) {
         // generic information; required
@@ -83,25 +86,27 @@ class DataCommentSearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, $comment['groupid'], $comment['userid'], PATH_FOR_SEARCH_TYPE_DATA);
-    } //constructor
-} //ChatCommentSearchDocument
+    } 
+}
 
 /**
 * constructs a valid link to a data record content
 * @param database_id the database reference
 * @param record_id the record reference
+* @uses CFG
 * @return a valid url top access the information as a string
 */
 function data_make_link($database_id, $record_id) {
     global $CFG;
 
     return $CFG->wwwroot.'/mod/data/view.php?d='.$database_id.'&amp;rid='.$record_id;
-} //data_make_link
+}
 
 /**
 * fetches all the records for a given database
 * @param database_id the database
 * @param typematch a comma separated list of types that should be considered for searching or *
+* @uses CFG
 * @return an array of objects representing the data records.
 */
 function data_get_records($database_id, $typematch = '*') {
@@ -127,19 +132,19 @@ function data_get_records($database_id, $typematch = '*') {
             if($typematch == '*' || preg_match("/\\b{$fieldset[$aDatum->fieldid]->type}\\b/", $typematch)){
                 if (!isset($records[$aDatum->recordid])){
                     $records[$aDatum->recordid]['_first'] = $aDatum->content.' '.$aDatum->content1.' '.$aDatum->content2.' '.$aDatum->content3.' '.$aDatum->content4.' ';
-                }
-                else{
+                } else {
                     $records[$aDatum->recordid][$fieldset[$aDatum->fieldid]->name] = $aDatum->content.' '.$aDatum->content1.' '.$aDatum->content2.' '.$aDatum->content3.' '.$aDatum->content4.' ';
                 }
             }
         }
     }
     return $records;
-} //data_get_records
+}
 
 /**
 * fetches all the comments for a given database
 * @param database_id the database
+* @uses CFG
 * @return an array of objects representing the data record comments.
 */
 function data_get_comments($database_id) {
@@ -163,7 +168,7 @@ function data_get_comments($database_id) {
     ";
     $comments = get_records_sql($query);
     return $comments;
-} //data_get_comments
+}
 
 
 /**
@@ -173,7 +178,7 @@ function data_get_comments($database_id) {
 function data_iterator() {
     $databases = get_records('data');
     return $databases;
-} //data_iterator
+}
 
 /**
 * part of search engine API
@@ -221,7 +226,7 @@ function data_get_content_for_index(&$database) {
         }
     }
     return $documents;
-} //data_get_content_for_index
+}
 
 /**
 * returns a single data search document based on a data entry id
@@ -256,8 +261,7 @@ function data_single_document($id, $itemtype) {
         $recordMetaData->content = $accumulator;
         // make document
         $documents[] = new DataSearchDocument(get_object_vars($recordMetaData), $record_course, $context->id);
-    }
-    elseif($itemtype == 'comment'){
+    } elseif($itemtype == 'comment') {
         // get main records
         $comment = get_record('data_comments', 'id', $id);
         $record = get_record('data_records', 'id', $comment->recordid);
@@ -272,11 +276,10 @@ function data_single_document($id, $itemtype) {
         $comment->groupid = $record->groupid;
         // make document
         $documents[] = new DataCommentSearchDocument(get_object_vars($comment), $record_course, $context->id);
-    } 
-    else{
+    } else {
        mtrace('Error : bad or missing item type');
     }
-} //data_single_document
+}
 
 /**
 * dummy delete function that packs id with itemtype.
@@ -287,7 +290,7 @@ function data_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //data_delete
+}
 
 /**
 * returns the var names needed to build a sql query for addition/deletions
@@ -299,7 +302,7 @@ function data_db_names() {
         array('id', 'data_records', 'timecreated', 'timemodified', 'record'),
         array('id', 'data_comments', 'created', 'modified', 'comment')
     );
-} //data_db_names
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -314,6 +317,7 @@ function data_db_names() {
 * points out an indexed data record page.
 * @param user the user record denoting the user who searches
 * @param group_id the current group used by the user when searching
+* @uses CFG
 * @return true if access is allowed, false elsewhere
 */
 function data_check_text_access($path, $itemtype, $this_id, $user, $group_id, $context_id){
@@ -394,5 +398,5 @@ function data_check_text_access($path, $itemtype, $this_id, $user, $group_id, $c
         }
         
     return true;
-} // data_check_text_access
+}
 ?>
\ No newline at end of file
index 205a2ac..266dead 100644 (file)
@@ -1,14 +1,21 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* review 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * Base search document from which other module/block types can
 * extend.
-**/
+*/
 
+/**
+*
+*/
 abstract class SearchDocument extends Zend_Search_Lucene_Document {
     public function __construct(&$doc, &$data, $course_id, $group_id, $user_id, $path) {
          //document identification and indexing
@@ -52,7 +59,7 @@ abstract class SearchDocument extends Zend_Search_Lucene_Document {
          // of multiple capabilities in their code. This possibility should be left open here.
          $this->addField(Zend_Search_Lucene_Field::UnIndexed('capabilities', $caps));
          */
-    } //constructor
-} //SearchDocument
+    }
+}
 
 ?>
\ No newline at end of file
index b8d7755..ae3b3b2 100644 (file)
@@ -1,9 +1,13 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* review 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for forum activity module
 * This file contains the mapping between a forum post and it's indexable counterpart,
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/forum/lib.php
 *
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
-/* see wiki_document.php for descriptions */
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/forum/lib.php");
 
-/* 
+/** 
 * a class for representing searchable information
 * 
-**/
+*/
 class ForumSearchDocument extends SearchDocument {
 
     /**
     * constructor
-    *
     */
     public function __construct(&$post, $forum_id, $course_id, $itemtype, $context_id) {
         // generic information
@@ -50,8 +52,8 @@ class ForumSearchDocument extends SearchDocument {
         $data->discussion = $post['discussion'];
         
         parent::__construct($doc, $data, $course_id, $post['groupid'], $post['userid'], PATH_FOR_SEARCH_TYPE_FORUM);
-    } //constructor
-} //ForumSearchDocument
+    } 
+}
 
 /**
 * constructs a valid link to a chat content
@@ -63,7 +65,7 @@ function forum_make_link($discussion_id, $post_id) {
     global $CFG;
     
     return $CFG->wwwroot.'/mod/forum/discuss.php?d='.$discussion_id.'#'.$post_id;
-} //forum_make_link
+}
 
 /**
 * search standard API
@@ -72,7 +74,7 @@ function forum_make_link($discussion_id, $post_id) {
 function forum_iterator() {
     $forums = get_records('forum');
     return $forums;
-} //forum_iterator
+}
 
 /**
 * search standard API
@@ -108,7 +110,7 @@ function forum_get_content_for_index(&$forum) {
         } 
     } 
     return $documents;
-} //forum_get_content_for_index
+}
 
 /**
 * returns a single forum search document based on a forum entry id
@@ -128,7 +130,7 @@ function forum_single_document($id, $itemtype) {
         return new ForumSearchDocument(get_object_vars($post), $discussion->forum, $discussion->course, $itemtype, $context->id);
     }
     return null;
-} //forum_single_document
+}
 
 /**
 * dummy delete function that aggregates id with itemtype.
@@ -139,7 +141,7 @@ function forum_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //forum_delete
+}
 
 /**
 * returns the var names needed to build a sql query for addition/deletions
@@ -151,11 +153,12 @@ function forum_db_names() {
         array('id', 'forum_posts', 'created', 'modified', 'head', 'parent = 0'),
         array('id', 'forum_posts', 'created', 'modified', 'post', 'parent != 0')
     );
-} //forum_db_names
+}
 
 /**
 * reworked faster version from /mod/forum/lib.php
 * @param forum_id a forum identifier
+* @uses CFG, USER
 * @return an array of posts
 */
 function forum_get_discussions_fast($forum_id) {
@@ -202,12 +205,13 @@ function forum_get_discussions_fast($forum_id) {
             d.timemodified DESC
     ";
     return get_records_sql($query);
-} //forum_get_discussions_fast
+}
 
 /**
 * reworked faster version from /mod/forum/lib.php
 * @param parent the id of the first post within the discussion
 * @param forum_id the forum identifier
+* @uses CFG
 * @return an array of posts
 */
 function forum_get_child_posts_fast($parent, $forum_id) {
@@ -241,7 +245,7 @@ function forum_get_child_posts_fast($parent, $forum_id) {
             p.created ASC
     ";
     return get_records_sql($query);
-} //forum_get_child_posts_fast
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -256,6 +260,7 @@ function forum_get_child_posts_fast($parent, $forum_id) {
 * points out the individual post.
 * @param user the user record denoting the user who searches
 * @param group_id the current group used by the user when searching
+* @uses CFG, USER
 * @return true if access is allowed, false elsewhere
 */
 function forum_check_text_access($path, $itemtype, $this_id, $user, $group_id, $context_id){
@@ -290,6 +295,6 @@ function forum_check_text_access($path, $itemtype, $this_id, $user, $group_id, $
     }
     
     return true;
-} //forum_check_text_access
+}
 
 ?>
\ No newline at end of file
index b275baa..3a533ec 100644 (file)
@@ -1,9 +1,13 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* review 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for glossary activity module
 * This file contains a mapping between a glossary entry and it's indexable counterpart,
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/glossary/lib.php
 *
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 
-/* 
+/**
 * a class for representing searchable information
 * 
-**/
+*/
 class GlossarySearchDocument extends SearchDocument {
     
     /**
@@ -49,18 +53,17 @@ class GlossarySearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, -1, $entry['userid'], PATH_FOR_SEARCH_TYPE_GLOSSARY);
-    } //constructor
-} //GlossarySearchDocument
+    }
+}
 
-/* 
+/** 
 * a class for representing searchable information
 * 
-**/
+*/
 class GlossaryCommentSearchDocument extends SearchDocument {
     
     /**
     * document constructor
-    *
     */
     public function __construct(&$entry, $glossary_id, $course_id, $context_id) {
         // generic information; required
@@ -83,8 +86,8 @@ class GlossaryCommentSearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, -1, $entry['userid'], PATH_FOR_SEARCH_TYPE_GLOSSARY);
-    } //constructor
-} //GlossaryCommentSearchDocument
+    } 
+}
   
 /**
 * constructs valid access links to information
@@ -102,7 +105,7 @@ function glossary_make_link($entry_id) {
     // preserve glossary pop-up, be careful where you place your ' and "s
     //this function is meant to return a url that is placed between href='[url here]'
     return "$CFG->wwwroot/mod/glossary/showentry.php?eid=$entry_id' onclick='return openpopup(\"/mod/glossary/showentry.php?eid=$entry_id\", \"entry\", DEFAULT_POPUP_SETTINGS, 0);";
-} //glossary_make_link
+} 
 
 /**
 * part of search engine API
@@ -111,7 +114,7 @@ function glossary_make_link($entry_id) {
 function glossary_iterator() {
      $glossaries = get_records('glossary');
      return $glossaries;
-} //glossary_iterator
+}
 
 /**
 * part of search engine API
@@ -153,7 +156,7 @@ function glossary_get_content_for_index(&$glossary) {
         }
     }
     return $documents;
-} //glossary_get_content_for_index
+}
 
 /**
 * part of search engine API
@@ -179,7 +182,7 @@ function glossary_single_document($id, $itemtype) {
     elseif ($itemtype == 'comment'){
         return new GlossaryCommentSearchDocument(get_object_vars($comment), $entry->glossaryid, $glossary_course, $context->id);
     }
-} //glossary_single_document
+}
 
 /**
 * dummy delete function that packs id with itemtype.
@@ -190,7 +193,7 @@ function glossary_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //glossary_delete
+}
 
 /**
 * returns the var names needed to build a sql query for addition/deletions
@@ -202,7 +205,7 @@ function glossary_db_names() {
         array('id', 'glossary_entries', 'timecreated', 'timemodified', 'standard'),
         array('id', 'glossary_comments', 'timemodified', 'timemodified', 'comment')
     );
-} //glossary_db_names
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -241,6 +244,5 @@ function glossary_check_text_access($path, $itemtype, $this_id, $user, $group_id
     }
     
     return true;
-} //glossary_check_text_access
-
+}
 ?>
\ No newline at end of file
index 7f7a426..42615b8 100644 (file)
@@ -1,29 +1,31 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* creation : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for lesson activity module
 * This file contains the mapping between a lesson page and it's indexable counterpart,
 *
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/lesson/lib.php
-*
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
-/* see wiki_document.php for descriptions */
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/lesson/lib.php");
 
-/* 
+/** 
 * a class for representing searchable information
 * 
-**/
+*/
 class LessonPageSearchDocument extends SearchDocument {
 
     /**
@@ -48,8 +50,8 @@ class LessonPageSearchDocument extends SearchDocument {
         $data->lesson      = $page['lessonid'];
         
         parent::__construct($doc, $data, $course_id, 0, 0, PATH_FOR_SEARCH_TYPE_LESSON);
-    } //constructor
-} //LessonPageSearchDocument
+    } 
+}
 
 /**
 * constructs a valid link to a chat content
@@ -64,7 +66,7 @@ function lesson_make_link($lessonmoduleid, $itemid, $itemtype) {
         return "{$CFG->wwwroot}/mod/lesson/view.php?id={$lessonmoduleid}&amp;pageid={$itemid}";
     }
     return $CFG->wwwroot.'/mod/lesson/view.php?id='.$lessonmoduleid;
-} //lesson_make_link
+}
 
 /**
 * search standard API
@@ -73,7 +75,7 @@ function lesson_make_link($lessonmoduleid, $itemid, $itemtype) {
 function lesson_iterator() {
     $lessons = get_records('lesson');
     return $lessons;
-} //lesson_iterator
+}
 
 /**
 * search standard API
@@ -96,7 +98,7 @@ function lesson_get_content_for_index(&$lesson) {
     }
 
     return $documents;
-} //lesson_get_content_for_index
+}
 
 /**
 * returns a single lesson search document based on a lesson page id
@@ -116,7 +118,7 @@ function lesson_single_document($id, $itemtype) {
         return new LessonPageSearchDocument(get_object_vars($page), $cm->id, $lesson->course, $itemtype, $context->id);
     }
     return null;
-} //lesson_single_document
+}
 
 /**
 * dummy delete function that aggregates id with itemtype.
@@ -127,7 +129,7 @@ function lesson_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //lesson_delete
+}
 
 /**
 * returns the var names needed to build a sql query for addition/deletions
@@ -138,7 +140,7 @@ function lesson_db_names() {
     return array(
         array('id', 'lesson_pages', 'timecreated', 'timemodified', 'page')
     );
-} //lesson_db_names
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -201,5 +203,5 @@ function lesson_check_text_access($path, $itemtype, $this_id, $user, $group_id,
     }
     
     return true;
-} //lesson_check_text_access
+}
 ?>
\ No newline at end of file
index b2f6ccf..2835672 100644 (file)
@@ -1,31 +1,39 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
-/*
+/**
 * MS Word extractor
+* @param object $resource 
+* @uses CFG, USER
 */
-
 function get_text_for_indexing_doc(&$resource){
     global $CFG, $USER;
     
     // SECURITY : do not allow non admin execute anything on system !!
     if (!isadmin($USER->id)) return;
+    
+    $moodleroot = (@$CFG->block_search_usemoodleroot) ? "{$CFG->dirroot}/" : '' ;
 
     // just call pdftotext over stdout and capture the output
     if (!empty($CFG->block_search_word_to_text_cmd)){
-        if (!file_exists("{$CFG->dirroot}/{$CFG->block_search_word_to_text_cmd}")){
-            mtrace('Error with MSWord to text converter command : exectuable not found.');
+        if (!file_exists("{$moodleroot}{$CFG->block_search_word_to_text_cmd}")){
+            mtrace('Error with MSWord to text converter command : executable not found.');
         }
         else{
             $file = escapeshellarg($CFG->dataroot.'/'.$resource->course.'/'.$resource->reference);
-            $text_converter_cmd = "{$CFG->dirroot}/{$CFG->block_search_word_to_text_cmd} $file";
+            $text_converter_cmd = "\"{$moodleroot}{$CFG->block_search_word_to_text_cmd}\" \"$file\"";
             if ($CFG->block_search_word_to_text_env){
                 putenv($CFG->block_search_word_to_text_env);
             }
index 36878ba..5df8524 100644 (file)
@@ -1,13 +1,22 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
+/**
+* @param object $resource
+* @uses CFG, USER
+*/
 function get_text_for_indexing_htm(&$resource){
     global $CFG, $USER;
     
index 8455e70..e03d445 100644 (file)
@@ -1,13 +1,21 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
 *
-* this is a format handler for getting text out of a proprietary binary format 
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
+*
+* this is a format handler for getting text out of a standard html format 
 * so it can be indexed by Lucene search engine
 */
 
+/**
+* @param object $resource
+*/
 function get_text_for_indexing_html(&$resource){
     
     // wraps to htm handler
index fabea26..fb48cc2 100644 (file)
@@ -1,28 +1,39 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
+/**
+* @param object $resource
+* @uses CFG, USER
+*/
 function get_text_for_indexing_pdf(&$resource){
     global $CFG, $USER;
     
     // SECURITY : do not allow non admin execute anything on system !!
     if (!isadmin($USER->id)) return;
 
+    $moodleroot = (@$CFG->block_search_usemoodleroot) ? "{$CFG->dirroot}/" : '' ;
+
     // just call pdftotext over stdout and capture the output
     if (!empty($CFG->block_search_pdf_to_text_cmd)){
         preg_match("/^\S+/", $CFG->block_search_pdf_to_text_cmd, $matches);
-        if (!file_exists("{$CFG->dirroot}/{$matches[0]}")){
+        if (!file_exists("{$moodleroot}{$matches[0]}")){
             mtrace('Error with pdf to text converter command : exectuable not found.');
         }
         else{
             $file = escapeshellarg($CFG->dataroot.'/'.$resource->course.'/'.$resource->reference);
-            $text_converter_cmd = "{$CFG->dirroot}/{$CFG->block_search_pdf_to_text_cmd} $file -";
+            $text_converter_cmd = "\"{$moodleroot}{$CFG->block_search_pdf_to_text_cmd}\" \"$file\" -";
             $result = shell_exec($text_converter_cmd);
             if ($result){
                 return $result;
index 7d89e74..2de768f 100644 (file)
@@ -1,14 +1,19 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
-/**
+/*
 * first implementation is a trivial heuristic based on ppt character stream :
 * text sequence always starts with a 00 9F 0F 04 sequence followed by a 15 bytes
 * sequence
 * based on these following rules, here is a little empiric texte extractor for PPT
 */
 
+/**
+* @param object $resource
+* @uses CFG, USER
+*/
 function get_text_for_indexing_ppt(&$resource){
     global $CFG, $USER;
 
index 1ef3fd8..b20be41 100644 (file)
@@ -1,13 +1,22 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
+/**
+* @param object $resource
+* @uses CFG, USER
+*/
 function get_text_for_indexing_txt(&$resource){
     global $CFG, $USER;
     
index 64162a2..0fde56c 100644 (file)
@@ -1,13 +1,22 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* add-on 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * this is a format handler for getting text out of a proprietary binary format 
 * so it can be indexed by Lucene search engine
 */
 
+/**
+* @param object $resource
+* @uses CFG, USER
+*/
 function get_text_for_indexing_xml(&$resource){
     global $CFG, $USER;
     
index 95698a0..918bb10 100644 (file)
@@ -1,24 +1,31 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* review 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for all resources
 * This file contains the mapping between a resource and it's indexable counterpart,
 *
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/resource/lib.php
-**/
+*/
 
+/**
+* requires and includes
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/resource/lib.php");
 
-/* 
+/* *
 * a class for representing searchable information
 * 
-**/
+*/
 class ResourceSearchDocument extends SearchDocument {
     public function __construct(&$resource, $context_id) {
         // generic information; required
index f198a3f..23a5316 100644 (file)
@@ -1,9 +1,13 @@
 <?php
 /**
 * Global Search Engine for Moodle
-* Michael Champanis (mchampan) [cynnical@gmail.com]
-* review 1.8+ : Valery Fremaux [valery.fremaux@club-internet.fr] 
-* 2007/08/02
+*
+* @package search
+* @category core
+* @subpackage document_wrappers
+* @author Michael Campanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
+* @date 2008/03/31
+* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
 *
 * document handling for wiki activity module
 * This file contains the mapping between a wiki page and it's indexable counterpart,
 *
 * Functions for iterating and retrieving the necessary records are now also included
 * in this file, rather than mod/wiki/lib.php
-*
-* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
-* @package search
-* @version 2007110400
-**/
+*/
 
+/**
+* includes and requires
+*/
 require_once("$CFG->dirroot/search/documents/document.php");
 require_once("$CFG->dirroot/mod/wiki/lib.php");
 
-/* 
+/**
 * All the $doc->___ fields are required by the base document class!
 * Each and every module that requires search functionality must correctly
 * map their internal fields to the five $doc fields (id, title, author, contents
 * and url). Any module specific data can be added to the $data object, which is
 * serialised into a binary field in the index.
-**/
+*/
 class WikiSearchDocument extends SearchDocument {
     public function __construct(&$page, $wiki_id, $course_id, $group_id, $user_id, $context_id) {
         // generic information; required
@@ -48,8 +51,8 @@ class WikiSearchDocument extends SearchDocument {
         
         // construct the parent class
         parent::__construct($doc, $data, $course_id, $group_id, $user_id, PATH_FOR_SEARCH_TYPE_WIKI);
-    } //constructor
-} //WikiSearchDocument
+    } 
+}
 
 /**
 * converts a page name to cope Wiki constraints. Transforms spaces in plus.
@@ -58,13 +61,14 @@ class WikiSearchDocument extends SearchDocument {
 */
 function wiki_name_convert($str) {
     return str_replace(' ', '+', $str);
-} //wiki_name_convert
+}
 
 /**
 * constructs a valid link to a wiki content
-* @param wikiId
-* @param title
-* @param version
+* @param int $wikiId
+* @param string $title
+* @param int $version
+* @uses CFG
 */
 function wiki_make_link($wikiId, $title, $version) {
     global $CFG;
@@ -75,9 +79,9 @@ function wiki_make_link($wikiId, $title, $version) {
 /**
 * rescued and converted from ewikimoodlelib.php
 * retrieves latest version of a page
-* @param entry the wiki object as a reference
-* @param pagename the name of the page known by the wiki engine
-* @param version
+* @param object $entry the wiki object as a reference
+* @param string $pagename the name of the page known by the wiki engine
+* @param int $version
 */
 function wiki_get_latest_page(&$entry, $pagename, $version = 0) {
     $pagename = "'".addslashes($pagename)."'";
@@ -104,20 +108,20 @@ function wiki_get_latest_page(&$entry, $pagename, $version = 0) {
     } else {
         return false;
     } 
-} //wiki_get_latest_page
+}
 
 /**
 * fetches all pages, including old versions
-* @param entry the wiki object as a reference
+* @param object $entry the wiki object as a reference
 * @return an array of record objects that represents pages of this wiki object
 */
 function wiki_get_pages(&$entry) {
     return get_records('wiki_pages', 'wiki', $entry->id);
-} //wiki_get_pages
+}
 
 /**
 * fetches all the latest versions of all the pages
-*
+* @param object $entry
 */
 function wiki_get_latest_pages(&$entry) {
   //== (My)SQL for this
@@ -141,7 +145,7 @@ function wiki_get_latest_pages(&$entry) {
         } 
     }
     return $pages;
-} //wiki_get_latest_pages
+}
 
 /**
 * part of search engine API
@@ -150,7 +154,7 @@ function wiki_get_latest_pages(&$entry) {
 function wiki_iterator() {
     $wikis = get_records('wiki');
     return $wikis;
-} //wiki_iterator
+}
 
 /**
 * part of search engine API
@@ -182,13 +186,13 @@ function wiki_get_content_for_index(&$wiki) {
         } 
     }
     return $documents;
-} //wiki_get_content_for_index
+}
 
 /**
 * returns a single wiki search document based on a wiki_entry id
 * @param id the id of the wiki
 * @param itemtype the type of information (standard)
-* @retuen a searchable document
+* @return a searchable document
 */
 function wiki_single_document($id, $itemtype) {
     $page = get_record('wiki_pages', 'id', $id);
@@ -197,7 +201,7 @@ function wiki_single_document($id, $itemtype) {
     $cm = get_record('course_modules', 'course', $entry->course, 'module', $coursemodule, 'instance', $entry->wikiid);
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     return new WikiSearchDocument(get_object_vars($page), $entry->wikiid, $entry->course, $entry->groupid, $page->userid, $context->id);
-} //wiki_single_document
+}
 
 /**
 * dummy delete function that packs id with itemtype.
@@ -208,13 +212,13 @@ function wiki_delete($info, $itemtype) {
     $object->id = $info;
     $object->itemtype = $itemtype;
     return $object;
-} //wiki_delete
+}
 
 //returns the var names needed to build a sql query for addition/deletions
 function wiki_db_names() {
     //[primary id], [table name], [time created field name], [time modified field name]
     return array(array('id', 'wiki_pages', 'created', 'lastmodified', 'standard'));
-} //wiki_db_names
+}
 
 /**
 * this function handles the access policy to contents indexed as searchable documents. If this 
@@ -229,6 +233,7 @@ function wiki_db_names() {
 * points out the indexed wiki page.
 * @param user the user record denoting the user who searches
 * @param group_id the current group used by the user when searching
+* @uses CFG
 * @return true if access is allowed, false elsewhere
 */
 function wiki_check_text_access($path, $itemtype, $this_id, $user, $group_id, $context_id){
@@ -256,5 +261,5 @@ function wiki_check_text_access($path, $itemtype, $this_id, $user, $group_id, $c
     }
         
     return true;
-} //wiki_check_text_access
+}
 ?>
\ No newline at end of file
index 2b02902..f09e3cc 100644 (file)
@@ -39,10 +39,10 @@ mtrace("Testing global search capabilities:\n");
 $phpversion = phpversion();
 
 if (!search_check_php5()) {
-    mtrace("ERROR: PHP 5.0.0 or later required (currently using version $phpversion).");
+    mtrace("ERROR: PHP 5.0.0 or later required (currently using version ".phpversion().").");
     exit(0);
 } else {
-    mtrace("Success: PHP 5.0.0 or later is installed ($phpversion).\n");
+    mtrace("Success: PHP 5.0.0 or later is installed (".phpversion().").\n");
 } //else
 
 //fix paths for testing