diff options
Diffstat (limited to 'engine/lib/widgets.php')
-rw-r--r-- | engine/lib/widgets.php | 1050 |
1 files changed, 525 insertions, 525 deletions
diff --git a/engine/lib/widgets.php b/engine/lib/widgets.php index 8793370ef..f6f01f660 100644 --- a/engine/lib/widgets.php +++ b/engine/lib/widgets.php @@ -1,528 +1,528 @@ -<?php
-
- /**
- * Elgg widgets library.
- * Contains code for handling widgets.
- *
- * @package Elgg
- * @subpackage Core
+<?php + + /** + * Elgg widgets library. + * Contains code for handling widgets. + * + * @package Elgg + * @subpackage Core + + + * @link http://elgg.org/ + */ + + /** + * Override ElggObject in order to store widget data in ultra-private stores. + */ + class ElggWidget extends ElggObject + { + protected function initialise_attributes() + { + parent::initialise_attributes(); + + $this->attributes['subtype'] = "widget"; + } + + public function __construct($guid = null) { parent::__construct($guid); } + + /** + * Override entity get and sets in order to save data to private data store. + */ + public function get($name) + { + // See if its in our base attribute + if (isset($this->attributes[$name])) { + return $this->attributes[$name]; + } + + // No, so see if its in the private data store. + $meta = get_private_setting($this->guid, $name); + if ($meta) + return $meta; + + // Can't find it, so return null + return null; + } + + /** + * Override entity get and sets in order to save data to private data store. + */ + public function set($name, $value) + { + if (array_key_exists($name, $this->attributes)) + { + // Check that we're not trying to change the guid! + if ((array_key_exists('guid', $this->attributes)) && ($name=='guid')) + return false; + + $this->attributes[$name] = $value; + } + else + return set_private_setting($this->guid, $name, $value); + + return true; + } + } + + /** + * Register a particular context for use with widgets. + * + * @param string $context The context we wish to enable context for + */ + function use_widgets($context) { + + global $CONFIG; + if (!isset($CONFIG->widgets)) + $CONFIG->widgets = new stdClass; + if (!isset($CONFIG->widgets->contexts)) { + $CONFIG->widgets->contexts = array(); + } + if (!empty($context)) { + $CONFIG->widgets->contexts[] = $context; + } + + } + + /** + * Determines whether or not the current context is using widgets + * + * @return true|false Depending on widget status + */ + function using_widgets() { + + global $CONFIG; + $context = get_context(); + if (isset($CONFIG->widgets->contexts) && is_array($CONFIG->widgets->contexts)) { + if (in_array($context, $CONFIG->widgets->contexts)) return true; + } + + return false; + + } + + /** + * When given a widget entity and a new requested location, saves the new location + * and also provides a sensible ordering for all widgets in that column + * + * @param ElggObject $widget The widget entity + * @param int $order The order within the column + * @param int $column The column (1, 2 or 3) + * @return true|false Depending on success + */ + function save_widget_location(ElggObject $widget, $order, $column) { + + if ($widget instanceof ElggObject) { + if ($widget->subtype == "widget") { + + // If you can't move the widget, don't save a new location + if (!$widget->draggable) + return false; + + // Sanitise the column value + if ($column != 1 || $column != 2 || $column != 3) + $column = 1; + + $widget->column = (int) $column; + + $ordertmp = array(); + + if ($entities = get_entities_from_metadata_multi(array( + 'context' => $widget->context, + 'column' => $column, + ),'object','widget')) { + foreach($entities as $entity) { + $entityorder = $entity->order; + if ($entityorder < $order) { + $ordertmp[$entityorder] = $entity; + } + if ($entityorder >= $order) { + $ordertmp[$entityorder + 10000] = $entity; + } + } + } + + $ordertmp[$order] = $widget; + ksort($ordertmp); + + $orderticker = 10; + foreach($ordertmp as $orderval => $entity) { + $entity->order = $orderticker; + $orderticker += 10; + } + + return true; + + } else { + register_error($widget->subtype); + } + + } + + return false; + + } + + /** + * Get widgets for a particular context and column, in order of display + * + * @param int $user_guid The owner user GUID + * @param string $context The context (profile, dashboard etc) + * @param int $column The column (1 or 2) + * @return array|false An array of widget ElggObjects, or false + */ + function get_widgets($user_guid, $context, $column) { + + if ($widgets = get_entities_from_private_setting_multi(array( + 'column' => $column, + 'context' => $context), "object", "widget", $user_guid, "", 10000)) + /*if ($widgets = get_user_objects_by_metadata($user_guid, "widget", array( + 'column' => $column, + 'context' => $context, + ), 10000)) { + */ + { + + $widgetorder = array(); + foreach($widgets as $widget) { + $order = $widget->order; + while(isset($widgetorder[$order])) { + $order++; + } + $widgetorder[$order] = $widget; + } + + ksort($widgetorder); + + return $widgetorder; + + } + + return false; + + } + + /** + * Displays a particular widget + * + * @param ElggObject $widget The widget to display + * @return string The HTML for the widget, including JavaScript wrapper + */ + function display_widget(ElggObject $widget) { + + return elgg_view_entity($widget); + + } + + /** + * Add a new widget + * + * @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) + * @param int $access_id If not specified, it is set to the default access level + * @return true|false Depending on success + */ + function add_widget($user_guid, $handler, $context, $order = 0, $column = 1, $access_id = null) { + + 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->container_guid = $user_guid; + if (isset($access_id)) { + $widget->access_id = $access_id; + } else { + $widget->access_id = get_default_access(); + } + + if (!$widget->save()) + return false; + + $widget->handler = $handler; + $widget->context = $context; + $widget->column = $column; + $widget->order = $order; + + // save_widget_location($widget, $order, $column); + return true; + + } + + return false; + + } + + /** + * Define a new widget type + * + * @param string $handler The identifier for the widget handler + * @param string $name The name of the widget type + * @param string $description A description for the widget type + * @param string $context A comma-separated list of contexts where this widget is allowed (default: 'all') + * @param true|false $multiple Whether or not multiple instances of this widget are allowed on a single dashboard (default: false) + * @param string $position A comma-separated list of positions on the page (side or main) where this widget is allowed (default: "side,main") + * @return true|false Depending on success + */ + + function add_widget_type($handler, $name, $description, $context = "all", $multiple = false, $positions = "side,main") { + + if (!empty($handler) && !empty($name)) { + + global $CONFIG; + + if (!isset($CONFIG->widgets)) + $CONFIG->widgets = new stdClass; + + if (!isset($CONFIG->widgets->handlers)) + $CONFIG->widgets->handlers = array(); + + $handlerobj = new stdClass; + $handlerobj->name = $name; + $handlerobj->description = $description; + $handlerobj->context = explode(",",$context); + $handlerobj->multiple = $multiple; + $handlerobj->positions = explode(",",$positions); + + $CONFIG->widgets->handlers[$handler] = $handlerobj; + + return true; + + } + + return false; + + } + + /** + * Determines whether or not widgets with the specified handler have been defined + * + * @param string $handler The widget handler identifying string + * @return true|false Whether or not those widgets exist + */ + function widget_type_exists($handler) { + + global $CONFIG; + if (!empty($CONFIG->widgets) + && !empty($CONFIG->widgets->handlers) + && is_array($CONFIG->widgets->handlers) + && array_key_exists($handler, $CONFIG->widgets->handlers)) + return true; + + return false; + + } + + /** + * Returns an array of stdClass objects representing the defined widget types + * + * @return array A list of types defined (if any) + */ + function get_widget_types() { + + global $CONFIG; + if (!empty($CONFIG->widgets) + && !empty($CONFIG->widgets->handlers) + && is_array($CONFIG->widgets->handlers)) { + + $context = get_context(); + + foreach($CONFIG->widgets->handlers as $key => $handler) { + if (!in_array('all',$handler->context) && + !in_array($context,$handler->context)) { + unset($CONFIG->widgets->handlers[$key]); + } + } + + return $CONFIG->widgets->handlers; + + } + + return array(); + + } + + /** + * 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 + */ + function save_widget_info($widget_guid, $params) { + + 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; + + } + + function reorder_widgets_from_panel($panelstring1, $panelstring2, $panelstring3, $context, $owner) { + + $return = true; + + $mainwidgets = explode('::',$panelstring1); + $sidewidgets = explode('::',$panelstring2); + $rightwidgets = explode('::',$panelstring3); + + $handlers = array(); + $guids = array(); + + if (is_array($mainwidgets) && sizeof($mainwidgets) > 0) { + foreach($mainwidgets as $widget) { + + $guid = (int) $widget; + + if ("{$guid}" == "{$widget}") { + $guids[1][] = $widget; + } else { + $handlers[1][] = $widget; + } + + } + } + if (is_array($sidewidgets) && sizeof($sidewidgets) > 0) { + foreach($sidewidgets as $widget) { + + $guid = (int) $widget; + + if ("{$guid}" == "{$widget}") { + $guids[2][] = $widget; + } else { + $handlers[2][] = $widget; + } + + } + } + if (is_array($rightwidgets) && sizeof($rightwidgets) > 0) { + foreach($rightwidgets as $widget) { + + $guid = (int) $widget; + + if ("{$guid}" == "{$widget}") { + $guids[3][] = $widget; + } else { + $handlers[3][] = $widget; + } + + } + } + + // Reorder existing widgets or delete ones that have vanished + foreach (array(1,2,3) as $column) { + if ($dbwidgets = get_widgets($owner,$context,$column)) { + + foreach($dbwidgets as $dbwidget) { + if (in_array($dbwidget->getGUID(),$guids[1]) || in_array($dbwidget->getGUID(),$guids[2]) || in_array($dbwidget->getGUID(),$guids[3])) { + if (in_array($dbwidget->getGUID(),$guids[1])) { + $pos = array_search($dbwidget->getGUID(),$guids[1]); + $col = 1; + } else if (in_array($dbwidget->getGUID(),$guids[2])) { + $pos = array_search($dbwidget->getGUID(),$guids[2]); + $col = 2; + } else { + $pos = array_search($dbwidget->getGUID(),$guids[3]); + $col = 3; + } + $pos = ($pos + 1) * 10; + $dbwidget->column = $col; + $dbwidget->order = $pos; + } else { + $dbguid = $dbwidget->getGUID(); + if (!$dbwidget->delete()) { + $return = false; + } else { + // Remove state cookie + setcookie('widget' + $dbguid, null); + } + } + } + + } + // Add new ones + if (sizeof($guids[$column]) > 0) { + foreach($guids[$column] as $key => $guid) { + if ($guid == 0) { + $pos = ($key + 1) * 10; + $handler = $handlers[$column][$key]; + if (!add_widget($owner,$handler,$context,$pos,$column)) + $return = false; + } + } + } + } + + return $return; + + } + + /** + * Run some things once. + * + */ + function widget_run_once() + { + // Register a class + add_subtype("object", "widget", "ElggWidget"); + } + + /** + * Function to initialise widgets functionality on Elgg init + * + */ + function widgets_init() { + + register_action('widgets/reorder'); + register_action('widgets/save'); + register_action('widgets/add'); + + // Now run this stuff, but only once + run_function_once("widget_run_once"); + } + + // Register event + register_elgg_event_handler('init','system','widgets_init'); + + // Use widgets on the dashboard + use_widgets('dashboard'); - * @link http://elgg.org/
- */
-
- /**
- * Override ElggObject in order to store widget data in ultra-private stores.
- */
- class ElggWidget extends ElggObject
- {
- protected function initialise_attributes()
- {
- parent::initialise_attributes();
-
- $this->attributes['subtype'] = "widget";
- }
-
- public function __construct($guid = null) { parent::__construct($guid); }
-
- /**
- * Override entity get and sets in order to save data to private data store.
- */
- public function get($name)
- {
- // See if its in our base attribute
- if (isset($this->attributes[$name])) {
- return $this->attributes[$name];
- }
-
- // No, so see if its in the private data store.
- $meta = get_private_setting($this->guid, $name);
- if ($meta)
- return $meta;
-
- // Can't find it, so return null
- return null;
- }
-
- /**
- * Override entity get and sets in order to save data to private data store.
- */
- public function set($name, $value)
- {
- if (array_key_exists($name, $this->attributes))
- {
- // Check that we're not trying to change the guid!
- if ((array_key_exists('guid', $this->attributes)) && ($name=='guid'))
- return false;
-
- $this->attributes[$name] = $value;
- }
- else
- return set_private_setting($this->guid, $name, $value);
-
- return true;
- }
- }
-
- /**
- * Register a particular context for use with widgets.
- *
- * @param string $context The context we wish to enable context for
- */
- function use_widgets($context) {
-
- global $CONFIG;
- if (!isset($CONFIG->widgets))
- $CONFIG->widgets = new stdClass;
- if (!isset($CONFIG->widgets->contexts)) {
- $CONFIG->widgets->contexts = array();
- }
- if (!empty($context)) {
- $CONFIG->widgets->contexts[] = $context;
- }
-
- }
-
- /**
- * Determines whether or not the current context is using widgets
- *
- * @return true|false Depending on widget status
- */
- function using_widgets() {
-
- global $CONFIG;
- $context = get_context();
- if (isset($CONFIG->widgets->contexts) && is_array($CONFIG->widgets->contexts)) {
- if (in_array($context, $CONFIG->widgets->contexts)) return true;
- }
-
- return false;
-
- }
-
- /**
- * When given a widget entity and a new requested location, saves the new location
- * and also provides a sensible ordering for all widgets in that column
- *
- * @param ElggObject $widget The widget entity
- * @param int $order The order within the column
- * @param int $column The column (1, 2 or 3)
- * @return true|false Depending on success
- */
- function save_widget_location(ElggObject $widget, $order, $column) {
-
- if ($widget instanceof ElggObject) {
- if ($widget->subtype == "widget") {
-
- // If you can't move the widget, don't save a new location
- if (!$widget->draggable)
- return false;
-
- // Sanitise the column value
- if ($column != 1 || $column != 2 || $column != 3)
- $column = 1;
-
- $widget->column = (int) $column;
-
- $ordertmp = array();
-
- if ($entities = get_entities_from_metadata_multi(array(
- 'context' => $widget->context,
- 'column' => $column,
- ),'object','widget')) {
- foreach($entities as $entity) {
- $entityorder = $entity->order;
- if ($entityorder < $order) {
- $ordertmp[$entityorder] = $entity;
- }
- if ($entityorder >= $order) {
- $ordertmp[$entityorder + 10000] = $entity;
- }
- }
- }
-
- $ordertmp[$order] = $widget;
- ksort($ordertmp);
-
- $orderticker = 10;
- foreach($ordertmp as $orderval => $entity) {
- $entity->order = $orderticker;
- $orderticker += 10;
- }
-
- return true;
-
- } else {
- register_error($widget->subtype);
- }
-
- }
-
- return false;
-
- }
-
- /**
- * Get widgets for a particular context and column, in order of display
- *
- * @param int $user_guid The owner user GUID
- * @param string $context The context (profile, dashboard etc)
- * @param int $column The column (1 or 2)
- * @return array|false An array of widget ElggObjects, or false
- */
- function get_widgets($user_guid, $context, $column) {
-
- if ($widgets = get_entities_from_private_setting_multi(array(
- 'column' => $column,
- 'context' => $context), "object", "widget", $user_guid, "", 10000))
- /*if ($widgets = get_user_objects_by_metadata($user_guid, "widget", array(
- 'column' => $column,
- 'context' => $context,
- ), 10000)) {
- */
- {
-
- $widgetorder = array();
- foreach($widgets as $widget) {
- $order = $widget->order;
- while(isset($widgetorder[$order])) {
- $order++;
- }
- $widgetorder[$order] = $widget;
- }
-
- ksort($widgetorder);
-
- return $widgetorder;
-
- }
-
- return false;
-
- }
-
- /**
- * Displays a particular widget
- *
- * @param ElggObject $widget The widget to display
- * @return string The HTML for the widget, including JavaScript wrapper
- */
- function display_widget(ElggObject $widget) {
-
- return elgg_view_entity($widget);
-
- }
-
- /**
- * Add a new widget
- *
- * @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)
- * @param int $access_id If not specified, it is set to the default access level
- * @return true|false Depending on success
- */
- function add_widget($user_guid, $handler, $context, $order = 0, $column = 1, $access_id = null) {
-
- 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->container_guid = $user_guid;
- if (isset($access_id)) {
- $widget->access_id = $access_id;
- } else {
- $widget->access_id = get_default_access();
- }
-
- if (!$widget->save())
- return false;
-
- $widget->handler = $handler;
- $widget->context = $context;
- $widget->column = $column;
- $widget->order = $order;
-
- // save_widget_location($widget, $order, $column);
- return true;
-
- }
-
- return false;
-
- }
-
- /**
- * Define a new widget type
- *
- * @param string $handler The identifier for the widget handler
- * @param string $name The name of the widget type
- * @param string $description A description for the widget type
- * @param string $context A comma-separated list of contexts where this widget is allowed (default: 'all')
- * @param true|false $multiple Whether or not multiple instances of this widget are allowed on a single dashboard (default: false)
- * @param string $position A comma-separated list of positions on the page (side or main) where this widget is allowed (default: "side,main")
- * @return true|false Depending on success
- */
-
- function add_widget_type($handler, $name, $description, $context = "all", $multiple = false, $positions = "side,main") {
-
- if (!empty($handler) && !empty($name)) {
-
- global $CONFIG;
-
- if (!isset($CONFIG->widgets))
- $CONFIG->widgets = new stdClass;
-
- if (!isset($CONFIG->widgets->handlers))
- $CONFIG->widgets->handlers = array();
-
- $handlerobj = new stdClass;
- $handlerobj->name = $name;
- $handlerobj->description = $description;
- $handlerobj->context = explode(",",$context);
- $handlerobj->multiple = $multiple;
- $handlerobj->positions = explode(",",$positions);
-
- $CONFIG->widgets->handlers[$handler] = $handlerobj;
-
- return true;
-
- }
-
- return false;
-
- }
-
- /**
- * Determines whether or not widgets with the specified handler have been defined
- *
- * @param string $handler The widget handler identifying string
- * @return true|false Whether or not those widgets exist
- */
- function widget_type_exists($handler) {
-
- global $CONFIG;
- if (!empty($CONFIG->widgets)
- && !empty($CONFIG->widgets->handlers)
- && is_array($CONFIG->widgets->handlers)
- && array_key_exists($handler, $CONFIG->widgets->handlers))
- return true;
-
- return false;
-
- }
-
- /**
- * Returns an array of stdClass objects representing the defined widget types
- *
- * @return array A list of types defined (if any)
- */
- function get_widget_types() {
-
- global $CONFIG;
- if (!empty($CONFIG->widgets)
- && !empty($CONFIG->widgets->handlers)
- && is_array($CONFIG->widgets->handlers)) {
-
- $context = get_context();
-
- foreach($CONFIG->widgets->handlers as $key => $handler) {
- if (!in_array('all',$handler->context) &&
- !in_array($context,$handler->context)) {
- unset($CONFIG->widgets->handlers[$key]);
- }
- }
-
- return $CONFIG->widgets->handlers;
-
- }
-
- return array();
-
- }
-
- /**
- * 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
- */
- function save_widget_info($widget_guid, $params) {
-
- 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;
-
- }
-
- function reorder_widgets_from_panel($panelstring1, $panelstring2, $panelstring3, $context, $owner) {
-
- $return = true;
-
- $mainwidgets = explode('::',$panelstring1);
- $sidewidgets = explode('::',$panelstring2);
- $rightwidgets = explode('::',$panelstring3);
-
- $handlers = array();
- $guids = array();
-
- if (is_array($mainwidgets) && sizeof($mainwidgets) > 0) {
- foreach($mainwidgets as $widget) {
-
- $guid = (int) $widget;
-
- if ("{$guid}" == "{$widget}") {
- $guids[1][] = $widget;
- } else {
- $handlers[1][] = $widget;
- }
-
- }
- }
- if (is_array($sidewidgets) && sizeof($sidewidgets) > 0) {
- foreach($sidewidgets as $widget) {
-
- $guid = (int) $widget;
-
- if ("{$guid}" == "{$widget}") {
- $guids[2][] = $widget;
- } else {
- $handlers[2][] = $widget;
- }
-
- }
- }
- if (is_array($rightwidgets) && sizeof($rightwidgets) > 0) {
- foreach($rightwidgets as $widget) {
-
- $guid = (int) $widget;
-
- if ("{$guid}" == "{$widget}") {
- $guids[3][] = $widget;
- } else {
- $handlers[3][] = $widget;
- }
-
- }
- }
-
- // Reorder existing widgets or delete ones that have vanished
- foreach (array(1,2,3) as $column) {
- if ($dbwidgets = get_widgets($owner,$context,$column)) {
-
- foreach($dbwidgets as $dbwidget) {
- if (in_array($dbwidget->getGUID(),$guids[1]) || in_array($dbwidget->getGUID(),$guids[2]) || in_array($dbwidget->getGUID(),$guids[3])) {
- if (in_array($dbwidget->getGUID(),$guids[1])) {
- $pos = array_search($dbwidget->getGUID(),$guids[1]);
- $col = 1;
- } else if (in_array($dbwidget->getGUID(),$guids[2])) {
- $pos = array_search($dbwidget->getGUID(),$guids[2]);
- $col = 2;
- } else {
- $pos = array_search($dbwidget->getGUID(),$guids[3]);
- $col = 3;
- }
- $pos = ($pos + 1) * 10;
- $dbwidget->column = $col;
- $dbwidget->order = $pos;
- } else {
- $dbguid = $dbwidget->getGUID();
- if (!$dbwidget->delete()) {
- $return = false;
- } else {
- // Remove state cookie
- setcookie('widget' + $dbguid, null);
- }
- }
- }
-
- }
- // Add new ones
- if (sizeof($guids[$column]) > 0) {
- foreach($guids[$column] as $key => $guid) {
- if ($guid == 0) {
- $pos = ($key + 1) * 10;
- $handler = $handlers[$column][$key];
- if (!add_widget($owner,$handler,$context,$pos,$column))
- $return = false;
- }
- }
- }
- }
-
- return $return;
-
- }
-
- /**
- * Run some things once.
- *
- */
- function widget_run_once()
- {
- // Register a class
- add_subtype("object", "widget", "ElggWidget");
- }
-
- /**
- * Function to initialise widgets functionality on Elgg init
- *
- */
- function widgets_init() {
-
- register_action('widgets/reorder');
- register_action('widgets/save');
- register_action('widgets/add');
-
- // Now run this stuff, but only once
- run_function_once("widget_run_once");
- }
-
- // Register event
- register_elgg_event_handler('init','system','widgets_init');
-
- // Use widgets on the dashboard
- use_widgets('dashboard');
-
-
?>
\ No newline at end of file |