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; | 
