diff options
Diffstat (limited to 'engine/lib')
| -rw-r--r-- | engine/lib/actions.php | 44 | ||||
| -rw-r--r-- | engine/lib/languages.php | 3 | ||||
| -rw-r--r-- | engine/lib/navigation.php | 13 | ||||
| -rw-r--r-- | engine/lib/river.php | 4 | 
4 files changed, 33 insertions, 31 deletions
| diff --git a/engine/lib/actions.php b/engine/lib/actions.php index 3a7c02488..53b185dea 100644 --- a/engine/lib/actions.php +++ b/engine/lib/actions.php @@ -82,44 +82,28 @@ function action($action, $forwarder = "") {  	$forwarder = str_replace(elgg_get_site_url(), "", $forwarder);  	$forwarder = str_replace("http://", "", $forwarder);  	$forwarder = str_replace("@", "", $forwarder); -  	if (substr($forwarder, 0, 1) == "/") {  		$forwarder = substr($forwarder, 1);  	} -	if (isset($CONFIG->actions[$action])) { -		if (elgg_is_admin_logged_in() || ($CONFIG->actions[$action]['access'] !== 'admin')) { -			if (elgg_is_logged_in() || ($CONFIG->actions[$action]['access'] === 'public')) { - -				// Trigger action event -				// @todo This is only called before the primary action is called. -				$event_result = true; -				$event_result = elgg_trigger_plugin_hook('action', $action, null, $event_result); - -				// Include action -				// Event_result being false doesn't produce an error -				// since i assume this will be handled in the hook itself. -				// @todo make this better! -				if ($event_result) { -					if (!include($CONFIG->actions[$action]['file'])) { -						register_error(elgg_echo('actionnotfound', array($action))); -					} -				} -			} else { -				register_error(elgg_echo('actionloggedout')); +	if (!isset($CONFIG->actions[$action])) { +		register_error(elgg_echo('actionundefined', array($action))); +	} elseif (!elgg_is_admin_logged_in() && ($CONFIG->actions[$action]['access'] === 'admin')) { +		register_error(elgg_echo('actionunauthorized')); +	} elseif (!elgg_is_logged_in() && ($CONFIG->actions[$action]['access'] !== 'public')) { +		register_error(elgg_echo('actionloggedout')); +	} else { +		// Returning falsy doesn't produce an error +		// We assume this will be handled in the hook itself. +		if (elgg_trigger_plugin_hook('action', $action, null, true)) { +			if (!include($CONFIG->actions[$action]['file'])) { +				register_error(elgg_echo('actionnotfound', array($action)));  			} -		} else { -			register_error(elgg_echo('actionunauthorized'));  		} -	} else { -		register_error(elgg_echo('actionundefined', array($action)));  	} -	if (!empty($forwarder)) { -		forward($forwarder); -	} else { -		forward(REFERER); -	} +	$forwarder = empty($forwarder) ? REFERER : $forwarder; +	forward($forwarder);  }  /** diff --git a/engine/lib/languages.php b/engine/lib/languages.php index 15c48f902..98006f7cd 100644 --- a/engine/lib/languages.php +++ b/engine/lib/languages.php @@ -50,8 +50,11 @@ function elgg_echo($message_key, $args = array(), $language = "") {  		$string = $CONFIG->translations[$language][$message_key];  	} else if (isset($CONFIG->translations["en"][$message_key])) {  		$string = $CONFIG->translations["en"][$message_key]; +		$lang = $CONFIG->translations["en"][$language]; +		elgg_log(sprintf('Missing %s translation for "%s" language key', $lang, $message_key), 'NOTICE');  	} else {  		$string = $message_key; +		elgg_log(sprintf('Missing English translation for "%s" language key', $message_key), 'NOTICE');  	}  	// only pass through if we have arguments to allow backward compatibility diff --git a/engine/lib/navigation.php b/engine/lib/navigation.php index 4ff009bfb..10b11acfe 100644 --- a/engine/lib/navigation.php +++ b/engine/lib/navigation.php @@ -335,6 +335,19 @@ function elgg_river_menu_setup($hook, $type, $return, $params) {  				$return[] = ElggMenuItem::factory($options);  			}  		} +		 +		if (elgg_is_admin_logged_in()) { +			$options = array( +				'name' => 'delete', +				'href' => "action/river/delete?id=$item->id", +				'text' => elgg_view_icon('delete'), +				'title' => elgg_echo('delete'), +				'confirm' => elgg_echo('deleteconfirm'), +				'is_action' => true, +				'priority' => 200, +			); +			$return[] = ElggMenuItem::factory($options); +		}  	}  	return $return; diff --git a/engine/lib/river.php b/engine/lib/river.php index 711832f70..b717a7756 100644 --- a/engine/lib/river.php +++ b/engine/lib/river.php @@ -643,9 +643,11 @@ function elgg_river_init() {  	elgg_register_page_handler('activity', 'elgg_river_page_handler');  	$item = new ElggMenuItem('activity', elgg_echo('activity'), 'activity');  	elgg_register_menu_item('site', $item); - +	  	elgg_register_widget_type('river_widget', elgg_echo('river:widget:title'), elgg_echo('river:widget:description')); +	elgg_register_action('river/delete', '', 'admin'); +  	elgg_register_plugin_hook_handler('unit_test', 'system', 'elgg_river_test');  } | 
