diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/annotations.php | 3 | ||||
-rw-r--r-- | engine/lib/entities.php | 4 | ||||
-rw-r--r-- | engine/lib/plugins.php | 7 | ||||
-rw-r--r-- | engine/schema/upgrades/2009100701.sql | 2 | ||||
-rw-r--r-- | engine/start.php | 5 |
5 files changed, 14 insertions, 7 deletions
diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index dcb29d0ab..7f5ab93f2 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -206,7 +206,9 @@ function create_annotation($entity_guid, $name, $value, $value_type, $owner_guid if (trigger_elgg_event('create', 'annotation', $obj)) { return $result; } else { + // plugin returned false to reject annotation delete_annotation($result); + return FALSE; } } } @@ -263,6 +265,7 @@ function update_annotation($annotation_id, $name, $value, $value_type, $owner_gu if (trigger_elgg_event('update', 'annotation', $obj)) { return true; } else { + // @todo add plugin hook that sends old and new annotation information before db access delete_annotation($annotation_id); } } diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 9b3895fd5..95807aab5 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -1690,6 +1690,7 @@ function entity_row_to_elggstar($row) { return $new_entity; } + // load class for entity if one is registered $classname = get_subtype_class_from_id($row->subtype); if ($classname!="") { if (class_exists($classname)) { @@ -1702,7 +1703,8 @@ function entity_row_to_elggstar($row) { error_log(sprintf(elgg_echo('ClassNotFoundException:MissingClass'), $classname)); } } - else { + + if (!$new_entity) { switch ($row->type) { case 'object' : $new_entity = new ElggObject($row); diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index 47a103dcd..c2427c655 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -99,11 +99,13 @@ function get_plugin_list() { $CONFIG->pluginlistcache = $plugins; return $plugins; } else { + // this only runs on install, otherwise uses serialized plugin order $plugins = array(); if ($handle = opendir($CONFIG->pluginspath)) { while ($mod = readdir($handle)) { - if (!in_array($mod,array('.','..','.svn','CVS')) && is_dir($CONFIG->pluginspath . "/" . $mod)) { + // must be directory and not begin with a . + if (substr($mod, 0, 1) !== '.' && is_dir($CONFIG->pluginspath . "/" . $mod)) { $plugins[] = $mod; } } @@ -162,7 +164,8 @@ function regenerate_plugin_list($pluginorder = FALSE) { // Add new plugins to the end if ($handle = opendir($CONFIG->pluginspath)) { while ($mod = readdir($handle)) { - if (!in_array($mod,array('.','..','.svn','CVS')) && is_dir($CONFIG->pluginspath . "/" . $mod)) { + // must be directory and not begin with a . + if (substr($mod, 0, 1) !== '.' && is_dir($CONFIG->pluginspath . "/" . $mod)) { if (!in_array($mod, $pluginorder)) { $max = $max + 10; $pluginorder[$max] = $mod; diff --git a/engine/schema/upgrades/2009100701.sql b/engine/schema/upgrades/2009100701.sql index dbf52b4da..74249e901 100644 --- a/engine/schema/upgrades/2009100701.sql +++ b/engine/schema/upgrades/2009100701.sql @@ -1,2 +1,2 @@ --- Previously was the UTF8 migration that is now in code at 2010033101. +-- Previously was the UTF8 migration that is now in code at engine/lib/upgrades/2010033101.php -- Keeping this file to force an overwrite and to avoid confusion with missing migrations. diff --git a/engine/start.php b/engine/start.php index 442222dc8..1acbef977 100644 --- a/engine/start.php +++ b/engine/start.php @@ -123,15 +123,14 @@ if (!substr_count($_SERVER["PHP_SELF"], "install.php") } // System booted, return to normal view -set_input('view', $oldview); - -if (empty($oldview)) { +if (!elgg_is_valid_view_type($oldview)) { if (empty($CONFIG->view)) { $oldview = 'default'; } else { $oldview = $CONFIG->view; } } +set_input('view', $oldview); // Regenerate the simple cache if expired. // Don't do it on upgrade, because upgrade does it itself. |