Example #1
0
/**
 * Saves a widget's settings (by passing an array of
 * (name => value) pairs to save_{$handler}_widget)
 *
 * @param int   $widget_guid The GUID of the widget we're saving to
 * @param array $params      An array of name => value parameters
 *
 * @return bool
 * @deprecated 1.8 Use elgg_save_widget_settings
 */
function save_widget_info($widget_guid, $params)
{
    elgg_deprecated_notice("save_widget_info() is deprecated for elgg_save_widget_settings", 1.8);
    if ($widget = get_entity($widget_guid)) {
        $subtype = $widget->getSubtype();
        if ($subtype != "widget") {
            return false;
        }
        $handler = $widget->handler;
        if (empty($handler) || !widget_type_exists($handler)) {
            return false;
        }
        if (!$widget->canEdit()) {
            return false;
        }
        // Save the params to the widget
        if (is_array($params) && sizeof($params) > 0) {
            foreach ($params as $name => $value) {
                if (!empty($name) && !in_array($name, array('guid', 'owner_guid', 'site_guid'))) {
                    if (is_array($value)) {
                        // @todo Handle arrays securely
                        $widget->setMetaData($name, $value, "", true);
                    } else {
                        $widget->{$name} = $value;
                    }
                }
            }
            $widget->save();
        }
        $function = "save_{$handler}_widget";
        if (is_callable($function)) {
            return $function($params);
        }
        return true;
    }
    return false;
}
Example #2
0
/**
 * Add a new widget that is being cloned via StickyWidgets.
 *
 * @param int $user_guid User GUID to associate this widget with
 * @param string $handler The handler for this widget
 * @param string $context The page context for this widget
 * @param int $order The order to display this widget in
 * @param int $column The column to display this widget in (1, 2 or 3)
 * @return true|false Depending on success
 */
function add_widget_via_sticky($user_guid, $handler, $context, $order = 0, $column = 1)
{
    if (empty($user_guid) || empty($context) || empty($handler) || !widget_type_exists($handler)) {
        return false;
    }
    if ($user = get_user($user_guid)) {
        $widget = new ElggWidget();
        $widget->owner_guid = $user_guid;
        $widget->access_id = 1;
        $widget->container_guid = $user_guid;
        $ctx = get_context();
        set_context('add_sticky_widgets');
        if (!$widget->save()) {
            set_context($ctx);
            return false;
        }
        set_context($ctx);
        $widget->handler = $handler;
        $widget->context = $context;
        $widget->column = $column;
        $widget->order = $order;
        // save_widget_location($widget, $order, $column);
        return true;
    }
    return false;
}