diff options
Diffstat (limited to 'actions/widgets/save.php')
| -rw-r--r-- | actions/widgets/save.php | 68 |
1 files changed, 37 insertions, 31 deletions
diff --git a/actions/widgets/save.php b/actions/widgets/save.php index 6fdf79c11..e15deab77 100644 --- a/actions/widgets/save.php +++ b/actions/widgets/save.php @@ -1,38 +1,44 @@ <?php +/** + * Elgg save widget settings action + * + * @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 widget save action - * - * @package Elgg - * @subpackage Core +elgg_set_context('widgets'); - * @author Curverider Ltd +$guid = get_input('guid'); +$params = get_input('params'); +$default_widgets = get_input('default_widgets', 0); +$context = get_input('context'); - * @link http://elgg.org/ - */ - - action_gatekeeper(); - - $guid = get_input('guid'); - $params = $_REQUEST['params']; - $pageurl = get_input('pageurl'); - $noforward = get_input('noforward',false); - - $result = false; - - if (!empty($guid)) { - - $result = save_widget_info($guid,$params); - - } - - if ($result) { - system_message(elgg_echo('widgets:save:success')); +$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"; } else { - register_error(elgg_echo('widgets:save:failure')); + elgg_deprecated_notice("widgets use content as the display view", 1.8); + $view = "widgets/$widget->handler/view"; } - - if (!$noforward) - forward($_SERVER['HTTP_REFERER']); + echo elgg_view($view, array('entity' => $widget)); + } +} else { + register_error(elgg_echo('widgets:save:failure')); +} -?>
\ No newline at end of file +forward(REFERER);
\ No newline at end of file |
