aboutsummaryrefslogtreecommitdiff
path: root/mod/defaultwidgets
diff options
context:
space:
mode:
Diffstat (limited to 'mod/defaultwidgets')
-rw-r--r--mod/defaultwidgets/actions/update.php61
-rw-r--r--mod/defaultwidgets/dashboard.php31
-rw-r--r--mod/defaultwidgets/languages/en.php28
-rw-r--r--mod/defaultwidgets/manifest.xml9
-rw-r--r--mod/defaultwidgets/profile.php31
-rw-r--r--mod/defaultwidgets/start.php256
-rw-r--r--mod/defaultwidgets/views/default/defaultwidgets/editor.php274
7 files changed, 690 insertions, 0 deletions
diff --git a/mod/defaultwidgets/actions/update.php b/mod/defaultwidgets/actions/update.php
new file mode 100644
index 000000000..aaf03430d
--- /dev/null
+++ b/mod/defaultwidgets/actions/update.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Elgg default_widgets plugin.
+ *
+ * @package DefaultWidgets
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider Ltd
+ *
+ **/
+
+// validate user is an admin
+admin_gatekeeper ();
+
+// get parameters
+$context = get_input ( 'context' );
+$leftbar = str_replace ( '::0', '', get_input ( 'debugField1' ) );
+$middlebar = str_replace ( '::0', '', get_input ( 'debugField2' ) );
+$rightbar = str_replace ( '::0', '', get_input ( 'debugField3' ) );
+
+// make sure enough parameters are set
+if ($context && isset ( $leftbar ) && isset ( $middlebar ) && isset ( $rightbar )) {
+
+ // join widgets into a single string
+ $widgets = $leftbar . '%%' . $middlebar . '%%' . $rightbar;
+
+ // get the elgg object that contains our settings
+ $entities = elgg_get_entities (array('type' => 'object', 'subtype' => 'moddefaultwidgets', 'limit' => 9999));
+
+ // create new object unless one already exists
+ if (! isset ( $entities [0] )) {
+ $entity = new ElggObject ( );
+ $entity->subtype = 'moddefaultwidgets';
+ $entity->owner_guid = $_SESSION ['user']->getGUID ();
+ } else {
+ $entity = $entities [0];
+ }
+
+ // store the default widgets for each context
+ $entity->$context = $widgets;
+
+ // make sure this object is public.
+ $entity->access_id = 2;
+
+ // save the object or report error
+ if ($entity->save ()) {
+ system_message ( elgg_echo ( 'defaultwidgets:update:success' ) );
+ $entity->state = "active";
+ forward ( 'pg/admin' );
+ } else {
+ register_error ( elgg_echo ( 'defaultwidgets:update:failed' ) );
+ forward ( 'pg/defaultwidgets/' . $context );
+ }
+
+} else {
+
+ // report incorrect parameters error
+ register_error ( elgg_echo ( 'defaultwidgets:update:noparams' ) );
+ forward ( 'pg/defaultwidgets/' . $context );
+
+}
diff --git a/mod/defaultwidgets/dashboard.php b/mod/defaultwidgets/dashboard.php
new file mode 100644
index 000000000..889bc8121
--- /dev/null
+++ b/mod/defaultwidgets/dashboard.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Elgg default_widgets plugin.
+ *
+ * @package DefaultWidgets
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider Ltd
+ *
+ **/
+
+// load Elgg engine
+require_once (dirname ( dirname ( dirname ( __FILE__ ) ) ) . "/engine/start.php");
+
+// make sure only admins can view this
+admin_gatekeeper ();
+set_context ( 'admin' );
+
+// Set admin user for user block
+set_page_owner ( $_SESSION ['guid'] );
+
+// vars required for action gatekeeper
+$ts = time ();
+$token = generate_action_token ( $ts );
+$context = 'dashboard';
+
+// create the view
+$content = elgg_view ( "defaultwidgets/editor", array ('token' => $token, 'ts' => $ts, 'context' => $context ) );
+
+// Display main admin menu
+page_draw ( 'Default dashboard widgets for new users', $content );
diff --git a/mod/defaultwidgets/languages/en.php b/mod/defaultwidgets/languages/en.php
new file mode 100644
index 000000000..d6da12ba5
--- /dev/null
+++ b/mod/defaultwidgets/languages/en.php
@@ -0,0 +1,28 @@
+<?php
+
+$english = array (
+
+ /**
+ * Nice name for the entity (shown in admin panel)
+ */
+ 'item:object:moddefaultwidgets' => 'DefaultWidgets settings',
+
+ /**
+ * Menu items
+ */
+ 'defaultwidgets:menu:profile' => 'Default profile widgets',
+ 'defaultwidgets:menu:dashboard' => 'Default dashboard widgets',
+
+ 'defaultwidgets:admin:error' => 'Error: You are not logged in as an administrator',
+ 'defaultwidgets:admin:notfound' => 'Error: Page not found',
+ 'defaultwidgets:admin:loginfailure' => 'Warning: You are not currently logged is as an administrator',
+
+ 'defaultwidgets:update:success' => 'Your widget settings have been saved',
+ 'defaultwidgets:update:failed' => 'Error: settings have not been saved',
+ 'defaultwidgets:update:noparams' => 'Error: incorrect form parameters',
+
+ 'defaultwidgets:profile:title' => 'Set default widgets for new user profile pages',
+ 'defaultwidgets:dashboard:title' => 'Set default widgets for new user dashboard pages',
+);
+
+add_translation ( "en", $english );
diff --git a/mod/defaultwidgets/manifest.xml b/mod/defaultwidgets/manifest.xml
new file mode 100644
index 000000000..8388e5803
--- /dev/null
+++ b/mod/defaultwidgets/manifest.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+ <field key="author" value="Milan Magudia &amp; Curverider" />
+ <field key="version" value="2.04" />
+ <field key="description" value="This plugin enables an administrator to define a default set of widgets for new users" />
+ <field key="copyright" value="HedgeHogs &amp; Curverider Ltd" />
+ <field key="licence" value="GNU Public License version 2" />
+ <field key="elgg_version" value="2010030101" />
+</plugin_manifest>
diff --git a/mod/defaultwidgets/profile.php b/mod/defaultwidgets/profile.php
new file mode 100644
index 000000000..68bf7a492
--- /dev/null
+++ b/mod/defaultwidgets/profile.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Elgg default_widgets plugin.
+ *
+ * @package DefaultWidgets
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider Ltd
+ *
+ **/
+
+// load Elgg engine
+require_once (dirname ( dirname ( dirname ( __FILE__ ) ) ) . "/engine/start.php");
+
+// make sure only admins can view this
+admin_gatekeeper ();
+set_context ( 'admin' );
+
+// set admin user for user block
+set_page_owner ( $_SESSION ['guid'] );
+
+// vars required for action gatekeeper
+$ts = time ();
+$token = generate_action_token ( $ts );
+$context = 'profile';
+
+// create the view
+$content = elgg_view ( "defaultwidgets/editor", array ('token' => $token, 'ts' => $ts, 'context' => $context ) );
+
+// Display main admin menu
+page_draw ( 'Default profile widgets for new users', $content );
diff --git a/mod/defaultwidgets/start.php b/mod/defaultwidgets/start.php
new file mode 100644
index 000000000..e76e16e26
--- /dev/null
+++ b/mod/defaultwidgets/start.php
@@ -0,0 +1,256 @@
+<?php
+/**
+ * Elgg default_widgets plugin.
+ *
+ * @package DefaultWidgets
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider ltd
+ *
+ * Code based on the work of:
+ * @author Jade Dominguez, Chad Sowald
+ * @copyright tastyseed, 2008
+ * @copyright Chad Sowald, 2008
+ * @link http://www.tastyseed.com
+ * @link http://www.chadsowald.com
+ * @author Diego Ramirez
+ * @links http://www.somosmas.org
+ *
+ */
+
+global $CONFIG;
+
+/**
+ * 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() {
+
+ // Load system configuration
+ register_page_handler ( 'defaultwidgets', 'defaultwidgets_page_handler' );
+
+ // register create user event hook
+ register_elgg_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 (!isadminloggedin()) {
+ register_elgg_event_handler('validate', 'user', 'defaultwidgets_reset_access');
+ }
+
+ // Override metadata permissions
+ //register_plugin_hook ( 'permissions_check:metadata', 'object', 'defaultwidgets_can_edit_metadata' );
+}
+
+/**
+ * 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 (isadminloggedin()) {
+ // 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 = $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;
+}
+
+/**
+ * Default widgets page handler; allows the use of fancy URLs
+ *
+ * @param array $page From the page_handler function
+ * @return true|false Depending on success
+ */
+function defaultwidgets_page_handler($page) {
+ global $CONFIG;
+
+ if (isset ( $page [0] )) {
+
+ switch ($page [0]) {
+ case "profile" :
+ include (dirname ( __FILE__ ) . "/profile.php");
+ break;
+ case "dashboard" :
+ include (dirname ( __FILE__ ) . "/dashboard.php");
+ break;
+ }
+ } else {
+ register_error ( elgg_echo ( "defaultwidgets:admin:notfound" ) );
+ forward ( $CONFIG->wwwroot );
+ }
+ return true;
+}
+
+/**
+ * Page setup. Adds admin controls to the admin panel.
+ *
+ */
+function defaultwidgets_pagesetup() {
+ if (get_context () == 'admin' && isadminloggedin ()) {
+ global $CONFIG;
+ add_submenu_item ( elgg_echo ( 'defaultwidgets:menu:profile' ), $CONFIG->wwwroot . 'pg/defaultwidgets/profile' );
+ add_submenu_item ( elgg_echo ( 'defaultwidgets:menu:dashboard' ), $CONFIG->wwwroot . 'pg/defaultwidgets/dashboard' );
+ }
+}
+
+// Make sure the status initialisation function is called on initialisation
+register_elgg_event_handler ( 'init', 'system', 'defaultwidgets_init' );
+register_elgg_event_handler ( 'pagesetup', 'system', 'defaultwidgets_pagesetup' );
+
+register_plugin_hook ( 'permissions_check', 'user', 'defaultwidgets_can_edit' );
+register_plugin_hook ( 'permissions_check', 'object', 'defaultwidgets_can_edit' );
+register_plugin_hook ( 'container_permissions_check', 'user', 'defaultwidgets_can_edit_container' );
+
+register_action ( "defaultwidgets/update", false, $CONFIG->pluginspath . "defaultwidgets/actions/update.php" );
diff --git a/mod/defaultwidgets/views/default/defaultwidgets/editor.php b/mod/defaultwidgets/views/default/defaultwidgets/editor.php
new file mode 100644
index 000000000..2241dd264
--- /dev/null
+++ b/mod/defaultwidgets/views/default/defaultwidgets/editor.php
@@ -0,0 +1,274 @@
+<?php
+
+ /**
+ * Elgg default widget layout
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.org/
+ *
+ * Edited version of the widget editor to be used to set default widgets
+ * @author Milan Magudia & Curverider
+ * @copyright HedgeHogs.net & Curverider Ltd
+ *
+ **/
+
+ // set some defaults
+ $owner = page_owner_entity();
+ $context = $vars['context'];
+ $area1widgets = false;
+ $area2widgets = false;
+ $area3widgets = false;
+
+ // get available widget types
+ set_context ( $context );
+ $widgettypes = get_widget_types();
+ set_context ( 'admin' );
+
+ // 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];
+ $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;
+ }
+
+?>
+<script type="text/javascript">
+$(document).ready(function () {
+ $('div#customise_editpanel').slideToggle("fast");
+});
+</script>
+
+<div id="customise_editpanel" style="visibility:visible;">
+
+<div id="customise_editpanel_rhs">
+<h2><?php echo elgg_echo("widgets:gallery"); ?></h2>
+<div id="widget_picker_gallery">
+
+
+<?php
+
+ foreach($widgettypes as $handler => $widget) {
+
+?>
+
+<table class="draggable_widget" cellspacing="0"><tr><td>
+ <h3>
+ <?php echo $widget->name; ?>
+ <input type="hidden" name="multiple" value="<?php if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler]->multiple))) echo $widgettypes[$widget->handler]->multiple; ?>" />
+ <input type="hidden" name="side" value="<?php if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler])) && (is_array($widgettypes[$widget->handler]->positions))) echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
+ <input type="hidden" name="main" value="<?php if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler])) && (is_array($widgettypes[$widget->handler]->positions))) echo in_array('main',$widgettypes[$widget->handler]->positions); ?>" />
+ <input type="hidden" name="handler" value="<?php echo htmlentities($handler); ?>" />
+ <input type="hidden" name="description" value="<?php echo htmlentities($widget->description, null, 'UTF-8'); ?>" />
+ <input type="hidden" name="guid" value="0" />
+ </h3>
+</td>
+<td width="17px" align="right"></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
+</tr></table>
+
+<?php
+ }
+?>
+
+<br /><!-- bit of space at the bottom of the widget gallery -->
+
+</div><!-- /#customise_editpanel_rhs -->
+</div><!-- /#widget_picker_gallery -->
+
+
+<div class="customise_editpanel_instructions">
+<h2><?php echo elgg_echo('defaultwidgets:'.$context.':title'); ?></h2>
+<?php echo elgg_view('output/longtext', array('value' => elgg_echo('widgets:add:description'))); ?>
+</div>
+
+
+<div id="customise_page_view">
+
+<table cellspacing="0">
+ <tr>
+ <td colspan="2" align="left" valign="top">
+
+ <?php
+ if(get_context() == "profile"){
+ ?>
+ <h2 class="profile_box"><?php echo elgg_echo("widgets:profilebox"); ?></h2>
+ <div id="profile_box_widgets">
+ <p><small><?php echo elgg_echo('widgets:position:fixed'); ?></small></p>
+ </div>
+ <?php
+ }
+ ?>
+
+ </td>
+
+
+ <td rowspan="2" align="left" valign="top">
+ <h2><?php echo elgg_echo("widgets:rightcolumn"); ?></h2>
+ <div id="rightcolumn_widgets" <?php if(get_context() == "profile")echo "class=\"long\""; ?>>
+ <?php
+ $rightcolumn_widgets = "";
+ if (is_array($area3widgets) && sizeof($area3widgets) > 0) {
+ foreach($area3widgets as $widget) {
+ if (!empty($rightcolumn_widgets)) {
+ $rightcolumn_widgets .= "::";
+ }
+ $rightcolumn_widgets .= "{$widget}::0";
+ ?>
+
+ <table class="draggable_widget" cellspacing="0"><tr><td width="149px">
+ <h3>
+ <?php echo $widgettypes[$widget]->name; ?>
+ <input type="hidden" name="handler" value="<?php
+ echo $widget;
+ ?>" />
+ <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget]->multiple; ?>" />
+ <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget]->description); ?>" />
+ <input type="hidden" name="guid" value="0" />
+ </h3>
+ </td>
+ <td width="17px" align="right"></td>
+ <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
+ <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
+ </tr></table>
+
+ <?php
+
+ }
+ }
+ ?>
+
+ </div>
+ </td><!-- /rightcolumn td -->
+
+ </tr>
+
+ <tr>
+
+<td>
+<h2><?php echo elgg_echo("widgets:leftcolumn"); ?></h2>
+<div id="leftcolumn_widgets">
+
+<?php
+ $leftcolumn_widgets = "";
+ if (is_array($area1widgets) && sizeof($area1widgets) > 0) {
+ foreach($area1widgets as $widget) {
+ if (!empty($leftcolumn_widgets)) {
+ $leftcolumn_widgets .= "::";
+ }
+ $leftcolumn_widgets .= "{$widget}::0";
+?>
+
+<table class="draggable_widget" cellspacing="0"><tr><td width="149px">
+ <h3>
+ <?php echo $widgettypes[$widget]->name; ?>
+ <input type="hidden" name="handler" value="<?php
+ echo $widget;
+ ?>" />
+ <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget]->multiple; ?>" />
+ <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget]->description); ?>" />
+ <input type="hidden" name="guid" value="0" />
+ </h3>
+</td>
+<td width="17px" align="right"></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
+</tr></table>
+
+<?php
+
+ }
+ }
+?>
+</div>
+</td>
+
+<td>
+
+<h2><?php echo elgg_echo("widgets:middlecolumn"); ?></h2>
+<div id="middlecolumn_widgets">
+
+<?php
+ $middlecolumn_widgets = "";
+ if (is_array($area2widgets) && sizeof($area2widgets) > 0) {
+ foreach($area2widgets as $widget) {
+ if (!empty($middlecolumn_widgets)) {
+ $middlecolumn_widgets .= "::";
+ }
+ $middlecolumn_widgets .= "{$widget}::0";
+?>
+
+<table class="draggable_widget" cellspacing="0"><tr><td width="149px">
+ <h3>
+ <?php echo $widgettypes[$widget]->name; ?>
+ <input type="hidden" name="handler" value="<?php
+ echo $widget;
+ ?>" />
+ <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget]->multiple; ?>" />
+ <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget]->positions); ?>" />
+ <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget]->description); ?>" />
+ <input type="hidden" name="guid" value="0" />
+ </h3>
+</td>
+<td width="17px" align="right"></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
+<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
+</tr></table>
+
+<?php
+
+ }
+ }
+?>
+
+</div>
+</td>
+
+
+
+
+
+
+</tr>
+</table>
+
+</div><!-- /#customise_page_view -->
+
+<form action="<?php echo $vars['url']; ?>action/defaultwidgets/update" method="post">
+<textarea type="textarea" value="Left widgets" style="display:none" name="debugField1" id="debugField1" /><?php echo $leftcolumn_widgets; ?></textarea>
+<textarea type="textarea" value="Middle widgets" style="display:none" name="debugField2" id="debugField2" /><?php echo $middlecolumn_widgets; ?></textarea>
+<textarea type="textarea" value="Right widgets" style="display:none" name="debugField3" id="debugField3" /><?php echo $rightcolumn_widgets; ?></textarea>
+<?php
+ echo elgg_view('input/hidden',array('internalname' => '__elgg_token', 'value' => $vars['token']));
+ echo elgg_view('input/hidden',array('internalname' => '__elgg_ts', 'value' => $vars['ts']));
+?>
+<input type="hidden" name="context" value="<?php echo $context; ?>" />
+<input type="hidden" name="owner" value="<?php echo page_owner(); ?>" />
+<input type="submit" value="<?php echo elgg_echo('save'); ?>" class="submit_button" />
+
+</form>
+</div><!-- /customise_editpanel -->