diff options
| author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-04-28 02:02:26 +0000 | 
|---|---|---|
| committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-04-28 02:02:26 +0000 | 
| commit | 99b44ae2a37208819dbca47db4356601240fbfd0 (patch) | |
| tree | 73e10de5965e70f00915226bab57df78fe23a00b /engine/lib | |
| parent | 4239301a547601b5139076c9c8994b59f67e6b46 (diff) | |
| download | elgg-99b44ae2a37208819dbca47db4356601240fbfd0.tar.gz elgg-99b44ae2a37208819dbca47db4356601240fbfd0.tar.bz2 | |
Fixes #3127. Normalizing the json returned by the ajax action handler. Doing this in PHP.
git-svn-id: http://code.elgg.org/elgg/trunk@9039 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib')
| -rw-r--r-- | engine/lib/actions.php | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/engine/lib/actions.php b/engine/lib/actions.php index 47e4dd4a4..df7c92de4 100644 --- a/engine/lib/actions.php +++ b/engine/lib/actions.php @@ -411,6 +411,16 @@ function elgg_is_xhr() {   */  function ajax_forward_hook($hook, $type, $reason, $params) {  	if (elgg_is_xhr()) { +		// always pass the full structure to avoid boilerplate JS code. +		$params = array( +			'output' => '', +			'status' => 0, +			'system_messages' => array( +				'error' => array(), +				'success' => array() +			) +		); +  		//grab any data echo'd in the action  		$output = ob_get_clean(); @@ -423,9 +433,14 @@ function ajax_forward_hook($hook, $type, $reason, $params) {  		}  		//Grab any system messages so we can inject them via ajax too -		$params['system_messages'] = system_messages(NULL, ""); +		$system_messages = system_messages(NULL, ""); + +		if (isset($system_messages['success'])) { +			$params['system_messages']['success'] = $system_messages['success']; +		} -		if (isset($params['system_messages']['error'])) { +		if (isset($system_messages['error'])) { +			$params['system_messages']['error'] = $system_messages['error'];  			$params['status'] = -1;  		} else {  			$params['status'] = 0; | 
