aboutsummaryrefslogtreecommitdiff
path: root/engine/lib
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib')
-rw-r--r--engine/lib/annotations.php3
-rw-r--r--engine/lib/entities.php4
-rw-r--r--engine/lib/plugins.php7
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;