Modules can now be moved to the a different column, even if it is further down the column than any module in the new column

This commit is contained in:
Marc Alexander
2011-01-12 15:00:59 +00:00
parent bf324b1181
commit 22f8293466

View File

@@ -395,8 +395,7 @@ class acp_portal
AND module_column = ' . ($module_data['module_column'] + 1); AND module_column = ' . ($module_data['module_column'] + 1);
$db->sql_query($sql); $db->sql_query($sql);
$updated = $db->sql_affectedrows(); $updated = $db->sql_affectedrows();
if ($updated)
{
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . ' $sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_column = module_column + 1 SET module_column = module_column + 1
WHERE module_id = ' . $module_id; WHERE module_id = ' . $module_id;
@@ -407,6 +406,20 @@ class acp_portal
WHERE module_order >= ' . $module_data['module_order'] . ' WHERE module_order >= ' . $module_data['module_order'] . '
AND module_column = ' . $module_data['module_column']; AND module_column = ' . $module_data['module_column'];
$db->sql_query($sql); $db->sql_query($sql);
// the module that needs to moved is in the last row
if(!$updated)
{
$sql = 'SELECT MAX(module_order) as new_order
FROM ' . PORTAL_MODULES_TABLE . '
WHERE module_order < ' . $module_data['module_order'];
$db->sql_query($sql);
$new_order = $db->sql_fetchfield('new_order') + 1;
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_order = ' . $new_order . '
WHERE module_id = ' . $module_id;
$db->sql_query($sql);
} }
} }
} }
@@ -420,8 +433,7 @@ class acp_portal
AND module_column = ' . ($module_data['module_column'] + 2); AND module_column = ' . ($module_data['module_column'] + 2);
$db->sql_query($sql); $db->sql_query($sql);
$updated = $db->sql_affectedrows(); $updated = $db->sql_affectedrows();
if ($updated)
{
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . ' $sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_column = module_column + 2 SET module_column = module_column + 2
WHERE module_id = ' . $module_id; WHERE module_id = ' . $module_id;
@@ -432,7 +444,22 @@ class acp_portal
WHERE module_order >= ' . $module_data['module_order'] . ' WHERE module_order >= ' . $module_data['module_order'] . '
AND module_column = ' . $module_data['module_column']; AND module_column = ' . $module_data['module_column'];
$db->sql_query($sql); $db->sql_query($sql);
// the module that needs to moved is in the last row
if(!$updated)
{
$sql = 'SELECT MAX(module_order) as new_order
FROM ' . PORTAL_MODULES_TABLE . '
WHERE module_order < ' . $module_data['module_order'];
$db->sql_query($sql);
$new_order = $db->sql_fetchfield('new_order') + 1;
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_order = ' . $new_order . '
WHERE module_id = ' . $module_id;
$db->sql_query($sql);
} }
} }
} }
else else
@@ -470,8 +497,7 @@ class acp_portal
AND module_column = ' . ($module_data['module_column'] - 1); AND module_column = ' . ($module_data['module_column'] - 1);
$db->sql_query($sql); $db->sql_query($sql);
$updated = $db->sql_affectedrows(); $updated = $db->sql_affectedrows();
if ($updated)
{
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . ' $sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_column = module_column - 1 SET module_column = module_column - 1
WHERE module_id = ' . $module_id; WHERE module_id = ' . $module_id;
@@ -482,6 +508,20 @@ class acp_portal
WHERE module_order >= ' . $module_data['module_order'] . ' WHERE module_order >= ' . $module_data['module_order'] . '
AND module_column = ' . $module_data['module_column']; AND module_column = ' . $module_data['module_column'];
$db->sql_query($sql); $db->sql_query($sql);
// the module that needs to moved is in the last row
if(!$updated)
{
$sql = 'SELECT MAX(module_order) as new_order
FROM ' . PORTAL_MODULES_TABLE . '
WHERE module_order < ' . $module_data['module_order'];
$db->sql_query($sql);
$new_order = $db->sql_fetchfield('new_order') + 1;
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_order = ' . $new_order . '
WHERE module_id = ' . $module_id;
$db->sql_query($sql);
} }
} }
} }
@@ -495,8 +535,7 @@ class acp_portal
AND module_column = ' . ($module_data['module_column'] - 2); AND module_column = ' . ($module_data['module_column'] - 2);
$db->sql_query($sql); $db->sql_query($sql);
$updated = $db->sql_affectedrows(); $updated = $db->sql_affectedrows();
if ($updated)
{
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . ' $sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_column = module_column - 2 SET module_column = module_column - 2
WHERE module_id = ' . $module_id; WHERE module_id = ' . $module_id;
@@ -507,6 +546,20 @@ class acp_portal
WHERE module_order >= ' . $module_data['module_order'] . ' WHERE module_order >= ' . $module_data['module_order'] . '
AND module_column = ' . $module_data['module_column']; AND module_column = ' . $module_data['module_column'];
$db->sql_query($sql); $db->sql_query($sql);
// the module that needs to moved is in the last row
if(!$updated)
{
$sql = 'SELECT MAX(module_order) as new_order
FROM ' . PORTAL_MODULES_TABLE . '
WHERE module_order < ' . $module_data['module_order'];
$db->sql_query($sql);
$new_order = $db->sql_fetchfield('new_order') + 1;
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
SET module_order = ' . $new_order . '
WHERE module_id = ' . $module_id;
$db->sql_query($sql);
} }
} }
} }