diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/classes/ElggPluginPackage.php | 25 | ||||
| -rw-r--r-- | engine/lib/plugins.php | 5 | 
2 files changed, 28 insertions, 2 deletions
| diff --git a/engine/classes/ElggPluginPackage.php b/engine/classes/ElggPluginPackage.php index 84cb8c1db..48a5fc4a8 100644 --- a/engine/classes/ElggPluginPackage.php +++ b/engine/classes/ElggPluginPackage.php @@ -313,8 +313,33 @@ class ElggPluginPackage {  		$requires = $this->getManifest()->getRequires();  		$conflicts = $this->getManifest()->getConflicts();  		$enabled_plugins = elgg_get_plugins('active'); +		$this_id = $this->getID();  		$report = array(); +		// first, check if any active plugin conflicts with us. +		foreach ($enabled_plugins as $plugin) { +			$temp_conflicts = $plugin->manifest->getConflicts(); +			foreach ($temp_conflicts as $conflict) { +				if ($conflict['type'] == 'plugin' && $conflict['name'] == $this_id) { +					$result = $this->checkDepPlugin($conflict, $enabled_plugins, false); + +					// rewrite the conflict to show the originating plugin +					$conflict['name'] = $plugin->manifest->getName(); + +					if (!$full_report && !$result['status']) { +						return $result['status']; +					} else { +						$report[] = array( +							'type' => 'conflicted', +							'dep' => $conflict, +							'status' => $result['status'], +							'value' => $this->getManifest()->getVersion() +						); +					} +				} +			} +		} +  		foreach (array('requires', 'conflicts') as $dep_type) {  			$inverse = ($dep_type == 'conflicts') ? true : false; diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index 5cb6d23f6..f356ed253 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -667,6 +667,7 @@ function elgg_get_plugin_dependency_strings($dep) {  	'requires'	'plugin oauth_lib'	<1.3	1.3		'downgrade'  	'requires'	'php setting bob'	>3		3		'change it'  	'conflicts'	'php setting'		>3		4		'change it' +	'conflicted''plugin profile'	any		1.8		'disable profile'  	'provides'	'plugin oauth_lib'	1.3		--		--  	'priority'	'before blog'		--		after	'move it'  	*/ @@ -705,9 +706,9 @@ function elgg_get_plugin_dependency_strings($dep) {  		case 'plugin':  			$strings['name'] = elgg_echo('ElggPlugin:Dependencies:Plugin', array($info['name'])); -			$expected = $info['version'] ? "$comparison {$info['version']}" : ''; +			$expected = $info['version'] ? "$comparison {$info['version']}" : elgg_echo('any');  			$strings['expected_value'] = $expected; -			$strings['local_value'] = $dep['value']; +			$strings['local_value'] = $dep['value'] ? $dep['value'] : '--';  			$strings['comment'] = '';  			break; | 
