diff options
| -rw-r--r-- | mod/bookmarks/actions/bookmarks/save.php | 15 | ||||
| -rw-r--r-- | mod/messageboard/actions/add.php | 29 | ||||
| -rw-r--r-- | mod/messageboard/views/default/messageboard/js.php | 4 | 
3 files changed, 17 insertions, 31 deletions
| diff --git a/mod/bookmarks/actions/bookmarks/save.php b/mod/bookmarks/actions/bookmarks/save.php index 02280838d..2f4f7b685 100644 --- a/mod/bookmarks/actions/bookmarks/save.php +++ b/mod/bookmarks/actions/bookmarks/save.php @@ -18,17 +18,10 @@ $container_guid = get_input('container_guid', elgg_get_logged_in_user_guid());  elgg_make_sticky_form('bookmarks'); -$normalized = elgg_normalize_url($address); - -// slight hack.  If the original link wasn't to this site, they probably didn't mean to post -// a relative link.  deny the action. -$site_url = elgg_get_site_entity()->url; -$test = str_replace($site_url, '', $normalized); - -if (trim($address, '/') == trim($test, '/')) { -	$address = ''; -} else { -	$address = $normalized; +// don't use elgg_normalize_url() because we don't want +// relative links resolved to this site. +if ($address && !preg_match("#^((ht|f)tps?:)?//#i", $address)) { +	$address = "http://$address";  }  if (!$title || !$address || !filter_var($address, FILTER_VALIDATE_URL)) { diff --git a/mod/messageboard/actions/add.php b/mod/messageboard/actions/add.php index 55bc5775a..971dd22fc 100644 --- a/mod/messageboard/actions/add.php +++ b/mod/messageboard/actions/add.php @@ -15,24 +15,17 @@ if ($owner && !empty($message_content)) {  	if ($result) {  		system_message(elgg_echo("messageboard:posted")); -		// push the newest content out if using ajax -		$is_ajax = array_key_exists('HTTP_X_REQUESTED_WITH', $_SERVER) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'; -		if ($is_ajax) { -			// always return the entity with the full ul and li -			// this is parsed out as needed by js. -			// if this is the only post we need to return the entire ul -			$options = array( -				'annotations_name' => 'messageboard', -				'guid' => $owner->getGUID(), -				'limit' => $num_display, -				'pagination' => false, -				'reverse_order_by' => true, -				'limit' => 1 -			); - -			$output = elgg_list_annotations($options); -			echo json_encode(array('post' => $output)); -		} +		$options = array( +			'annotations_name' => 'messageboard', +			'guid' => $owner->getGUID(), +			'limit' => $num_display, +			'pagination' => false, +			'reverse_order_by' => true, +			'limit' => 1 +		); + +		$output = elgg_list_annotations($options); +		echo $output;  	} else {  		register_error(elgg_echo("messageboard:failure")); diff --git a/mod/messageboard/views/default/messageboard/js.php b/mod/messageboard/views/default/messageboard/js.php index 0ec56d7d9..c63804408 100644 --- a/mod/messageboard/views/default/messageboard/js.php +++ b/mod/messageboard/views/default/messageboard/js.php @@ -23,9 +23,9 @@ elgg.messageboard.submit = function(e) {  			var ul = form.next('ul.elgg-annotation-list');  			if (ul.length < 1) { -				form.parent().append(json.output.post); +				form.parent().append(json.output);  			} else { -				ul.prepend($(json.output.post).find('li:first')); +				ul.prepend($(json.output).find('li:first'));  			};  			form.find('textarea').val('');  		} | 
