aboutsummaryrefslogtreecommitdiff
path: root/mod/defaultwidgets/start.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-19 02:12:32 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-19 02:12:32 +0000
commit373ff03a2b6315eea13a97065774972ad3713ab6 (patch)
treedf051d2a4c1d150fd75b2f3db2d4647a5e1ebda9 /mod/defaultwidgets/start.php
parent06f0e7b1aa5f6fd393d9a0b580f94709e29e10df (diff)
downloadelgg-373ff03a2b6315eea13a97065774972ad3713ab6.tar.gz
elgg-373ff03a2b6315eea13a97065774972ad3713ab6.tar.bz2
Fixes #2753: Default widgets merged into core as extensible admin section and updated to work with new widgets. Will need an upgrade for users running the old default widgets in 1.7.
git-svn-id: http://code.elgg.org/elgg/trunk@8302 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/defaultwidgets/start.php')
-rw-r--r--mod/defaultwidgets/start.php206
1 files changed, 0 insertions, 206 deletions
diff --git a/mod/defaultwidgets/start.php b/mod/defaultwidgets/start.php
deleted file mode 100644
index 89754f4f4..000000000
--- a/mod/defaultwidgets/start.php
+++ /dev/null
@@ -1,206 +0,0 @@
-<?php
-/**
- * Elgg default_widgets plugin.
- *
- * @package DefaultWidgets
- *
- * Code based on the work of:
- * @link http://www.tastyseed.com
- * @link http://www.chadsowald.com
- * @links http://www.somosmas.org
- *
- */
-
-/**
- * Default widgets initialisation
- *
- * These parameters are required for the event API, but we won't use them:
- *
- * @param unknown_type $event
- * @param unknown_type $object_type
- * @param unknown_type $object
- */
-function defaultwidgets_init() {
- // register create user event hook
- elgg_register_event_handler('create', 'user', 'defaultwidgets_newusers' );
-
- // set the widget access to the default access on validation if this is not an admin-created user
- if (!elgg_is_admin_logged_in()) {
- elgg_register_event_handler('validate', 'user', 'defaultwidgets_reset_access');
- }
-
- $action_dir = elgg_get_plugins_path() . 'defaultwidgets/actions';
- elgg_register_action("defaultwidgets/update", "$action_dir/update.php", 'admin');
-
- elgg_register_plugin_hook_handler('permissions_check', 'user', 'defaultwidgets_can_edit');
- elgg_register_plugin_hook_handler('permissions_check', 'object', 'defaultwidgets_can_edit');
- elgg_register_plugin_hook_handler('container_permissions_check', 'user', 'defaultwidgets_can_edit_container');
-
- // @todo These submenu pages should be DRYed up
- //elgg_add_admin_menu_item('default_profile_widgets', elgg_echo('defaultwidgets:menu:profile'), 'appearance');
- //elgg_add_admin_menu_item('default_dashboard_widgets', elgg_echo('defaultwidgets:menu:dashboard'), 'appearance');
-}
-
-/**
- * Overrides default permissions for the default widgets context
- *
- */
-function defaultwidgets_can_edit($hook_name, $entity_type, $return_value, $parameters) {
- global $defaultwidget_access;
-
- if ($defaultwidget_access) {
- return true;
- }
- return $return_value;
-}
-
-/**
- * Override the canEditMetadata function to return true for messages
- *
- */
-function defaultwidgets_can_edit_metadata($hook_name, $entity_type, $return_value, $parameters) {
- global $defaultwidget_access;
-
- if ($defaultwidget_access) {
- return true;
- }
- return $return_value;
-
-}
-
-/**
- * Override the canEdit function to return true for messages within a particular context.
- *
- */
-function defaultwidgets_can_edit_container($hook_name, $entity_type, $return_value, $parameters) {
- global $defaultwidget_access;
-
- if ($defaultwidget_access) {
- return true;
- }
- return $return_value;
-}
-
-/**
- * Extends the create user event to add admin defined widgets to the dashboard/profile context
- */
-function defaultwidgets_newusers($event, $object_type, $object) {
-
- // turn on permissions override
- global $defaultwidget_access, $CONFIG;
- $defaultwidget_access = true;
-
- // get the new user guid
- $guid = $object->guid;
-
- if (elgg_is_admin_logged_in()) {
- // this is an admin-created user
- // no permissions problems, so set proper access now
- // use system default access (not the admin's default access!, because that could be a personal access level)
- $widget_access = elgg_get_config('default_access');
- } else {
- // this is a regular registration
- // set widget access to public for now and reset it properly during the validate event
- // to avoid Elgg permissions problems
- $widget_access = ACCESS_PUBLIC;
- }
-
- // check if it's set
- if (! empty ( $guid )) {
-
- // get the user entity
- if ($user = get_entity ( $guid )) {
-
- // can this user edit
- if ($user->canEdit ()) {
-
- // each of the contexts to add widgets for
- $contexts = array ('profile', 'dashboard' );
-
- // get the entities for the module
- $entities = elgg_get_entities (array('type' => 'object', 'subtype' => 'moddefaultwidgets', 'limit' => 9999));
-
- // check if the entity exists
- if (isset ( $entities [0] )) {
-
- // get the widgets for the context
- $entity = $entities [0];
-
- foreach ( $contexts as $context ) {
- $current_widgets = $entity->$context;
- list ( $left, $middle, $right ) = split ( '%%', $current_widgets );
-
- // split columns into seperate widgets
- $area1widgets = split ( '::', $left );
- $area2widgets = split ( '::', $middle );
- $area3widgets = split ( '::', $right );
-
- // clear out variables if no widgets are available
- if ($area1widgets [0] == "")
- $area1widgets = false;
- if ($area2widgets [0] == "")
- $area2widgets = false;
- if ($area3widgets [0] == "")
- $area3widgets = false;
-
- // generate left column widgets for a new user
- if ($area1widgets) {
- foreach ( $area1widgets as $i => $widget ) {
- add_widget ( $guid, $widget, $context, ($i + 1), 1, $widget_access );
- }
- }
-
- // generate middle column widgets for a new user
- if ($area2widgets) {
- foreach ( $area2widgets as $i => $widget ) {
- add_widget ( $guid, $widget, $context, ($i + 1), 2, $widget_access );
- }
- }
-
- // generate right column widgets for a new user
- if ($area3widgets) {
- foreach ( $area3widgets as $i => $widget ) {
- add_widget ( $guid, $widget, $context, ($i + 1), 3, $widget_access );
- }
- }
- }
- }
- }
- }
- }
-
- // turn off permissions override
- $defaultwidget_access = false;
-}
-
-function defaultwidgets_reset_access($event, $object_type, $object) {
-
- global $defaultwidget_access;
-
- // turn on permissions override
- $defaultwidget_access = true;
-
- // the widgets are disabled, so turn on the ability to see disabled entities
-
- $access_status = access_get_show_hidden_status();
- access_show_hidden_entities(true);
-
- $widgets = elgg_get_entities(array('type' => 'object', 'subtype' => 'widget', 'owner_guid' => $object->getGUID()));
-
- if ($widgets) {
- foreach($widgets as $widget) {
- $widget->access_id = get_default_access();
- $widget->save();
- }
- }
-
- access_show_hidden_entities($access_status);
-
- // turn off permissions override
- $defaultwidget_access = false;
-
- return true;
-}
-
-// Make sure the status initialisation function is called on initialisation
-elgg_register_event_handler('init', 'system', 'defaultwidgets_init');