From a50dd81e3737d8dc14f4a700255b3a19c58988b1 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Sat, 29 Oct 2011 19:19:48 -0700 Subject: Fixes #4001. Activity widget passes a context so correct output is displayed upon save. --- actions/widgets/save.php | 13 +++++++++++++ views/default/widgets/river_widget/content.php | 8 ++++---- 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); : + + 'context', + 'value' => $context +)); \ No newline at end of file -- cgit v1.2.3