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:
@@ -395,8 +395,7 @@ class acp_portal
|
||||
AND module_column = ' . ($module_data['module_column'] + 1);
|
||||
$db->sql_query($sql);
|
||||
$updated = $db->sql_affectedrows();
|
||||
if ($updated)
|
||||
{
|
||||
|
||||
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
|
||||
SET module_column = module_column + 1
|
||||
WHERE module_id = ' . $module_id;
|
||||
@@ -407,6 +406,20 @@ class acp_portal
|
||||
WHERE module_order >= ' . $module_data['module_order'] . '
|
||||
AND module_column = ' . $module_data['module_column'];
|
||||
$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);
|
||||
$db->sql_query($sql);
|
||||
$updated = $db->sql_affectedrows();
|
||||
if ($updated)
|
||||
{
|
||||
|
||||
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
|
||||
SET module_column = module_column + 2
|
||||
WHERE module_id = ' . $module_id;
|
||||
@@ -432,7 +444,22 @@ class acp_portal
|
||||
WHERE module_order >= ' . $module_data['module_order'] . '
|
||||
AND module_column = ' . $module_data['module_column'];
|
||||
$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
|
||||
@@ -470,8 +497,7 @@ class acp_portal
|
||||
AND module_column = ' . ($module_data['module_column'] - 1);
|
||||
$db->sql_query($sql);
|
||||
$updated = $db->sql_affectedrows();
|
||||
if ($updated)
|
||||
{
|
||||
|
||||
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
|
||||
SET module_column = module_column - 1
|
||||
WHERE module_id = ' . $module_id;
|
||||
@@ -482,6 +508,20 @@ class acp_portal
|
||||
WHERE module_order >= ' . $module_data['module_order'] . '
|
||||
AND module_column = ' . $module_data['module_column'];
|
||||
$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);
|
||||
$db->sql_query($sql);
|
||||
$updated = $db->sql_affectedrows();
|
||||
if ($updated)
|
||||
{
|
||||
|
||||
$sql = 'UPDATE ' . PORTAL_MODULES_TABLE . '
|
||||
SET module_column = module_column - 2
|
||||
WHERE module_id = ' . $module_id;
|
||||
@@ -507,6 +546,20 @@ class acp_portal
|
||||
WHERE module_order >= ' . $module_data['module_order'] . '
|
||||
AND module_column = ' . $module_data['module_column'];
|
||||
$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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user