aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-09 19:33:33 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-09 19:33:33 +0000
commitf9aa70c258578d907cdeb1e9d5b26fffca5bede6 (patch)
tree35596f164c262cc6d2f653ff16f7fa650118f186 /engine
parentb62012bf3da994298ad52a4ccec06e814bcc5a79 (diff)
downloadelgg-f9aa70c258578d907cdeb1e9d5b26fffca5bede6.tar.gz
elgg-f9aa70c258578d907cdeb1e9d5b26fffca5bede6.tar.bz2
Pulled in Justin's search changes from github.
git-svn-id: http://code.elgg.org/elgg/trunk@3520 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/elgglib.php4
-rw-r--r--engine/lib/entities.php34
-rw-r--r--engine/lib/search.php50
-rw-r--r--engine/schema/upgrades/2009093001.sql11
4 files changed, 47 insertions, 52 deletions
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 @@
-<?php
- /**
- * Elgg search helper functions.
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd <info@elgg.com>
- * @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;
+