diff options
| -rw-r--r-- | actions/widgets/save.php | 13 | ||||
| -rw-r--r-- | views/default/widgets/river_widget/content.php | 8 | ||||
| -rw-r--r-- | views/default/widgets/river_widget/edit.php | 13 | 
3 files changed, 30 insertions, 4 deletions
| diff --git a/actions/widgets/save.php b/actions/widgets/save.php index dad48b30b..e15deab77 100644 --- a/actions/widgets/save.php +++ b/actions/widgets/save.php @@ -4,6 +4,14 @@   *   * @package Elgg.Core   * @subpackage Widgets.Management + * + * @uses int    $_REQUEST['guid']            The guid of the widget to save + * @uses array  $_REQUEST['params']          An array of params to set on the widget. + * @uses int    $_REQUEST['default_widgets'] Flag for if these settings are for default wigets. + * @uses string $_REQUEST['context']         An optional context of the widget. Used to return + *                                           the correct output if widget content changes + *                                           depending on context. + *   */  elgg_set_context('widgets'); @@ -11,10 +19,15 @@ elgg_set_context('widgets');  $guid = get_input('guid');  $params = get_input('params');  $default_widgets = get_input('default_widgets', 0); +$context = get_input('context');  $widget = get_entity($guid);  if ($widget && $widget->saveSettings($params)) {  	elgg_set_page_owner_guid($widget->getContainerGUID()); +	if ($context) { +		elgg_push_context($context); +	} +	  	if (!$default_widgets) {  		if (elgg_view_exists("widgets/$widget->handler/content")) {  			$view = "widgets/$widget->handler/content"; diff --git a/views/default/widgets/river_widget/content.php b/views/default/widgets/river_widget/content.php index 427fd92bf..867fc9db6 100644 --- a/views/default/widgets/river_widget/content.php +++ b/views/default/widgets/river_widget/content.php @@ -10,13 +10,13 @@ $options = array(  	'pagination' => false,  ); -if (elgg_in_context('profile')) { -	$options['subject_guid'] = elgg_get_page_owner_guid(); -} else { +if (elgg_in_context('dashboard')) {  	if ($vars['entity']->content_type == 'friends') { -		$options['relationship_guid'] = elgg_get_logged_in_user_guid(); +		$options['relationship_guid'] = elgg_get_page_owner_guid();  		$options['relationship'] = 'friend';  	} +} else { +	$options['subject_guid'] = elgg_get_page_owner_guid();  }  $content = elgg_list_river($options); diff --git a/views/default/widgets/river_widget/edit.php b/views/default/widgets/river_widget/edit.php index e0351e883..228212e47 100644 --- a/views/default/widgets/river_widget/edit.php +++ b/views/default/widgets/river_widget/edit.php @@ -43,3 +43,16 @@ $num_dropdown = elgg_view('input/dropdown', $params);  	<?php echo elgg_echo('widget:numbertodisplay'); ?>:  	<?php echo $num_dropdown; ?>  </div> + +<?php +// pass the context so we have the correct output upon save. +if (elgg_in_context('dashboard')) { +	$context = 'dashboard'; +} else { +	$context = 'profile'; +} + +echo elgg_view('input/hidden', array( +	'name' => 'context', +	'value' => $context +));
\ No newline at end of file | 
