aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Profitt <brett.profitt@gmail.com>2011-10-29 19:19:48 -0700
committerBrett Profitt <brett.profitt@gmail.com>2011-10-29 19:19:48 -0700
commita50dd81e3737d8dc14f4a700255b3a19c58988b1 (patch)
tree6b6fbf2d2c85d425059188d6e9115066a74e535c
parent41842ae982bdea00f8b52a9d610837febe3230ec (diff)
downloadelgg-a50dd81e3737d8dc14f4a700255b3a19c58988b1.tar.gz
elgg-a50dd81e3737d8dc14f4a700255b3a19c58988b1.tar.bz2
Fixes #4001. Activity widget passes a context so correct output is displayed upon save.
-rw-r--r--actions/widgets/save.php13
-rw-r--r--views/default/widgets/river_widget/content.php8
-rw-r--r--views/default/widgets/river_widget/edit.php13
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