diff options
-rw-r--r-- | actions/widgets/reorder.php | 3 | ||||
-rw-r--r-- | engine/lib/widgets.php | 29 | ||||
-rw-r--r-- | entities/index.php | 5 | ||||
-rw-r--r-- | views/default/canvas/layouts/widgets.php | 18 |
4 files changed, 42 insertions, 13 deletions
diff --git a/actions/widgets/reorder.php b/actions/widgets/reorder.php index 68fecfd6b..ff0fa4b52 100644 --- a/actions/widgets/reorder.php +++ b/actions/widgets/reorder.php @@ -17,8 +17,9 @@ $maincontent = get_input('debugField1');
$sidebar = get_input('debugField2');
+ $rightbar = get_input('debugField3');
- $result = reorder_widgets_from_panel($maincontent, $sidebar, $context, $owner);
+ $result = reorder_widgets_from_panel($maincontent, $sidebar, $rightbar, $context, $owner);
if ($result) {
system_message(elgg_echo('widgets:panel:save:success'));
diff --git a/engine/lib/widgets.php b/engine/lib/widgets.php index 171d4928e..6bfa4c428 100644 --- a/engine/lib/widgets.php +++ b/engine/lib/widgets.php @@ -53,7 +53,7 @@ *
* @param ElggObject $widget The widget entity
* @param int $order The order within the column
- * @param int $column The column (1 or 2)
+ * @param int $column The column (1, 2 or 3)
* @return true|false Depending on success
*/
function save_widget_location(ElggObject $widget, $order, $column) {
@@ -66,7 +66,7 @@ return false;
// Sanitise the column value
- if ($column != 1 || $column != 2)
+ if ($column != 1 || $column != 2 || $column != 3)
$column = 1;
$widget->column = (int) $column;
@@ -163,7 +163,7 @@ * @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 or 2)
+ * @param int $column The column to display this widget in (1, 2 or 3)
* @return true|false Depending on success
*/
function add_widget($user_guid, $handler, $context, $order = 0, $column = 1) {
@@ -329,12 +329,13 @@ }
- function reorder_widgets_from_panel($panelstring1, $panelstring2, $context, $owner) {
+ 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();
@@ -365,9 +366,22 @@ }
}
+ 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) as $column) {
+ foreach (array(1,2,3) as $column) {
if ($dbwidgets = get_widgets($owner,$context,$column)) {
foreach($dbwidgets as $dbwidget) {
@@ -375,9 +389,12 @@ if (in_array($dbwidget->getGUID(),$guids[1])) {
$pos = array_search($dbwidget->getGUID(),$guids[1]);
$col = 1;
- } else {
+ } 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;
diff --git a/entities/index.php b/entities/index.php index 3e573b338..b9890c1f8 100644 --- a/entities/index.php +++ b/entities/index.php @@ -35,8 +35,11 @@ // Set the body to be the full view of the entity, and the title to be its title
$area2 = elgg_view_entity($entity,true);
- if ($shell)
+ if ($shell) {
$body = elgg_view_layout('two_column_left_sidebar', '', $area1 . $area2);
+ } else {
+ $body = $area2;
+ }
// Otherwise?
} else {
diff --git a/views/default/canvas/layouts/widgets.php b/views/default/canvas/layouts/widgets.php index 57c46f3a4..0815242c8 100644 --- a/views/default/canvas/layouts/widgets.php +++ b/views/default/canvas/layouts/widgets.php @@ -17,8 +17,9 @@ $area1widgets = get_widgets(page_owner(),get_context(),1); $area2widgets = get_widgets(page_owner(),get_context(),2); + $area3widgets = get_widgets(page_owner(),get_context(),3); - if (empty($area1widgets) && empty($area2widgets)) { + if (empty($area1widgets) && empty($area2widgets) && empty($area3widgets)) { if (isset($vars['area3'])) $vars['area1'] = $vars['area3']; if (isset($vars['area4'])) $vars['area2'] = $vars['area4']; @@ -104,8 +105,8 @@ Choose the features you want to add to your page by dragging them from the <b>Wi <div id="rightcolumn_widgets" <?php if(get_context() == "profile")echo "class=\"long\""; ?>> <?php $sidebarwidgetstring = ""; - if (is_array($area2widgets) && sizeof($area2widgets) > 0) { - foreach($area2widgets as $widget) { + if (is_array($area3widgets) && sizeof($area3widgets) > 0) { + foreach($area3widgets as $widget) { if (!empty($sidebarwidgetstring)) { $sidebarwidgetstring .= "::"; } @@ -259,7 +260,7 @@ Choose the features you want to add to your page by dragging them from the <b>Wi <tr> <td colspan="2" align="left" valign="top"> <!-- profile box or 'dashboard info' notice --> - <?php echo $vars['area1']; ?> + <?php if (isset($vars['area1'])) echo $vars['area1']; ?> </td> <td rowspan="2" align="left" valign="top"> <?php @@ -273,7 +274,14 @@ Choose the features you want to add to your page by dragging them from the <b>Wi ?> <div id="widgets_right"> - <!-- this is where we need another widget column adding --> + <?php + + if (is_array($area3widgets) && sizeof($area3widgets) > 0) + foreach($area3widgets as $widget) { + echo elgg_view_entity($widget); + } + + ?> </div><!-- /#widgets_right --> </td> |