diff options
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/annotations.php | 3 | ||||
-rw-r--r-- | engine/lib/entities.php | 4 | ||||
-rw-r--r-- | engine/lib/plugins.php | 7 |
3 files changed, 11 insertions, 3 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; |