From f9aa70c258578d907cdeb1e9d5b26fffca5bede6 Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 9 Oct 2009 19:33:33 +0000 Subject: Pulled in Justin's search changes from github. git-svn-id: http://code.elgg.org/elgg/trunk@3520 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/elgglib.php | 4 +-- engine/lib/entities.php | 34 ++++++++++++++++++++++++ engine/lib/search.php | 50 ----------------------------------- engine/schema/upgrades/2009093001.sql | 11 ++++++++ 4 files changed, 47 insertions(+), 52 deletions(-) delete mode 100644 engine/lib/search.php create mode 100644 engine/schema/upgrades/2009093001.sql (limited to 'engine') diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index fc87c1dc1..b2a157155 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -719,7 +719,7 @@ $context = get_context(); - $html = elgg_view('search/entity_list',array( + $html = elgg_view('entities/entity_list',array( 'entities' => $entities, 'count' => $count, 'offset' => $offset, @@ -1000,7 +1000,7 @@ * @return string The HTML (etc) representing the listing */ function elgg_view_listing($icon, $info) { - return elgg_view('search/listing',array('icon' => $icon, 'info' => $info)); + return elgg_view('entities/entity_listing',array('icon' => $icon, 'info' => $info)); } /** diff --git a/engine/lib/entities.php b/engine/lib/entities.php index b72eb6ff0..55a675154 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -63,6 +63,13 @@ */ protected $temp_annotations; + + /** + * Volatile data structure for this object, allows for storage of data + * in-memory that isn't sync'd back to the metadata table. + */ + protected $volatile; + /** * Initialise the attributes array. * This is vital to distinguish between metadata and base parameters. @@ -79,6 +86,7 @@ if (!is_array($this->attributes)) $this->attributes = array(); if (!is_array($this->temp_metadata)) $this->temp_metadata = array(); if (!is_array($this->temp_annotations)) $this->temp_annotations = array(); + if (!is_array($this->volatile)) $this->volatile = array(); $this->attributes['guid'] = ""; $this->attributes['type'] = ""; @@ -174,6 +182,31 @@ return true; } + + /** + * Get a piece of volatile (non-persisted) data on this entity + */ + public function getVolatileData($name) { + if (!is_array($this->volatile)) $this->volatile = array(); + + if (array_key_exists($name, $this->volatile)) { + return $this->volatile[$name]; + } else { + return NULL; + } + } + + + /** + * Get a piece of volatile (non-persisted) data on this entity + */ + public function setVolatileData($name, $value) { + if (!is_array($this->volatile)) $this->volatile = array(); + + $this->volatile[$name] = $value; + } + + /** * Get a given piece of metadata. * @@ -686,6 +719,7 @@ { // Create the array if necessary - all subclasses should test before creating if (!is_array($this->attributes)) $this->attributes = array(); + if (!is_array($this->volatile)) $this->volatile = array(); // Now put these into the attributes array as core values $objarray = (array) $row; diff --git a/engine/lib/search.php b/engine/lib/search.php deleted file mode 100644 index 222c0b6e9..000000000 --- a/engine/lib/search.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @link http://elgg.org/ - */ - - /** - * Initialise search helper functions. - * - */ - function search_init() - { - register_page_handler('search','search_page_handler'); - } - - /** - * Page handler for search - * - * @param array $page Page elements from pain page handler - */ - function search_page_handler($page) - { - global $CONFIG; - - if(!get_input('tag')) { - set_input('tag', $page[0]); - } - - if (isset($page[0])) { - switch ($page[0]) { - case 'user' : - case 'users' : include_once($CONFIG->path . "search/users.php"); break; - - case 'group' : - case 'groups' : include_once($CONFIG->path . "search/groups.php"); break; - - default: include_once($CONFIG->path . "search/index.php"); - } - } - else - include_once($CONFIG->path . "search/index.php"); - } - - /** Register init system event **/ - register_elgg_event_handler('init','system','search_init'); -?> diff --git a/engine/schema/upgrades/2009093001.sql b/engine/schema/upgrades/2009093001.sql new file mode 100644 index 000000000..ce7bf96e4 --- /dev/null +++ b/engine/schema/upgrades/2009093001.sql @@ -0,0 +1,11 @@ +--Search Index +CREATE TABLE IF NOT EXISTS `prefix_search_index`( + `guid` INT NOT NULL, + `subtype` VARCHAR( 32 ) NOT NULL, + `string` TEXT NOT NULL, + PRIMARY KEY (`guid`,`subtype`), + KEY `guid` (`guid`), + KEY `subtype` (`subtype`), + FULLTEXT KEY `string` (`string`) +) ENGINE = MYISAM DEFAULT CHARSET=utf8; + -- cgit v1.2.3