mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-27 04:18:55 +00:00
- store error result in dbal for later retrieving
- use method for moving modules up/down (will be extended later to not only support an amount of 1) - utilize the module methods in installation git-svn-id: file:///svn/phpbb/trunk@6061 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
90b7ac2dbf
commit
7159120b25
3 changed files with 213 additions and 211 deletions
|
@ -124,91 +124,13 @@ class acp_modules
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$module_info = array($module_id => $row);
|
$move_module_name = $this->move_module_by($row, $action, 1);
|
||||||
|
|
||||||
// Get the adjacent forum
|
if ($move_module_name !== false)
|
||||||
$sql = 'SELECT module_id, left_id, right_id, module_langname
|
|
||||||
FROM ' . MODULES_TABLE . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND parent_id = {$row['parent_id']}
|
|
||||||
AND " . (($action == 'move_up') ? "right_id < {$row['right_id']} ORDER BY right_id DESC" : "left_id > {$row['left_id']} ORDER BY left_id ASC");
|
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
|
||||||
|
|
||||||
if (!($row = $db->sql_fetchrow($result)))
|
|
||||||
{
|
{
|
||||||
// already on top or at bottom
|
add_log('admin', 'LOG_MODULE_' . strtoupper($action), $move_module_name);
|
||||||
break;
|
$this->remove_cache_file();
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
$module_info[$row['module_id']] = $row;
|
|
||||||
|
|
||||||
if ($action == 'move_up')
|
|
||||||
{
|
|
||||||
$up_id = $module_id;
|
|
||||||
$down_id = $row['module_id'];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$up_id = $row['module_id'];
|
|
||||||
$down_id = $module_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
$move_module_name = $this->lang_name($row['module_langname']);
|
|
||||||
$diff_up = $module_info[$up_id]['right_id'] - $module_info[$up_id]['left_id'];
|
|
||||||
$diff_down = $module_info[$down_id]['right_id'] - $module_info[$down_id]['left_id'];
|
|
||||||
|
|
||||||
$ids = array();
|
|
||||||
|
|
||||||
$sql = 'SELECT module_id
|
|
||||||
FROM ' . MODULES_TABLE . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND left_id > " . $module_info[$up_id]['left_id'] . '
|
|
||||||
AND right_id < ' . $module_info[$up_id]['right_id'];
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
|
||||||
{
|
|
||||||
$ids[] = $row['module_id'];
|
|
||||||
}
|
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
// Start transaction
|
|
||||||
$db->sql_transaction('begin');
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . '
|
|
||||||
SET left_id = left_id + ' . ($diff_up + 1) . ', right_id = right_id + ' . ($diff_up + 1) . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND left_id > " . $module_info[$down_id]['left_id'] . '
|
|
||||||
AND right_id < ' . $module_info[$down_id]['right_id'];
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
if (sizeof($ids))
|
|
||||||
{
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . '
|
|
||||||
SET left_id = left_id - ' . ($diff_down + 1) . ', right_id = right_id - ' . ($diff_down + 1) . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND module_id IN (" . implode(', ', $ids) . ')';
|
|
||||||
$db->sql_query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . '
|
|
||||||
SET left_id = ' . $module_info[$down_id]['left_id'] . ', right_id = ' . ($module_info[$down_id]['left_id'] + $diff_up) . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND module_id = $up_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . '
|
|
||||||
SET left_id = ' . ($module_info[$up_id]['right_id'] - $diff_down) . ', right_id = ' . $module_info[$up_id]['right_id'] . "
|
|
||||||
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
|
||||||
AND module_id = $down_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$db->sql_transaction('commit');
|
|
||||||
|
|
||||||
add_log('admin', 'LOG_MODULE_' . strtoupper($action), $move_module_name);
|
|
||||||
|
|
||||||
$this->remove_cache_file();
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -781,8 +703,10 @@ class acp_modules
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update/Add module
|
* Update/Add module
|
||||||
|
*
|
||||||
|
* @param bool $run_inline if set to true errors will be returned and no logs being written
|
||||||
*/
|
*/
|
||||||
function update_module_data(&$module_data)
|
function update_module_data(&$module_data, $run_inline = false)
|
||||||
{
|
{
|
||||||
global $db, $user;
|
global $db, $user;
|
||||||
|
|
||||||
|
@ -790,8 +714,6 @@ class acp_modules
|
||||||
{
|
{
|
||||||
// no module_id means we're creating a new category/module
|
// no module_id means we're creating a new category/module
|
||||||
|
|
||||||
$db->sql_transaction('begin');
|
|
||||||
|
|
||||||
if ($module_data['parent_id'])
|
if ($module_data['parent_id'])
|
||||||
{
|
{
|
||||||
$sql = 'SELECT left_id, right_id
|
$sql = 'SELECT left_id, right_id
|
||||||
|
@ -802,6 +724,11 @@ class acp_modules
|
||||||
|
|
||||||
if (!$row = $db->sql_fetchrow($result))
|
if (!$row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
|
if ($run_inline)
|
||||||
|
{
|
||||||
|
return 'PARENT_NO_EXIST';
|
||||||
|
}
|
||||||
|
|
||||||
trigger_error($user->lang['PARENT_NO_EXIST']);
|
trigger_error($user->lang['PARENT_NO_EXIST']);
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
@ -837,10 +764,12 @@ class acp_modules
|
||||||
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
$db->sql_transaction('commit');
|
|
||||||
|
|
||||||
$module_data['module_id'] = $db->sql_nextid();
|
$module_data['module_id'] = $db->sql_nextid();
|
||||||
add_log('admin', 'LOG_MODULE_ADD', $this->lang_name($module_data['module_langname']));
|
|
||||||
|
if (!$run_inline)
|
||||||
|
{
|
||||||
|
add_log('admin', 'LOG_MODULE_ADD', $this->lang_name($module_data['module_langname']));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -868,7 +797,10 @@ class acp_modules
|
||||||
AND module_id = {$module_data['module_id']}";
|
AND module_id = {$module_data['module_id']}";
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
|
|
||||||
add_log('admin', 'LOG_MODULE_EDIT', $this->lang_name($module_data['module_langname']));
|
if (!$run_inline)
|
||||||
|
{
|
||||||
|
add_log('admin', 'LOG_MODULE_EDIT', $this->lang_name($module_data['module_langname']));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return array();
|
return array();
|
||||||
|
@ -998,6 +930,101 @@ class acp_modules
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move module position by $amount up/down
|
||||||
|
* @todo support more than one step up/down (at the moment $amount needs to be 1)!
|
||||||
|
*/
|
||||||
|
function move_module_by($module_row, $action = 'move_up', $amount)
|
||||||
|
{
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$module_id = $module_row['module_id'];
|
||||||
|
$module_info = array($module_row['module_id'] => $module_row);
|
||||||
|
|
||||||
|
// Get the adjacent module
|
||||||
|
$sql = 'SELECT module_id, left_id, right_id, module_langname
|
||||||
|
FROM ' . MODULES_TABLE . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND parent_id = {$module_row['parent_id']}
|
||||||
|
AND " . (($action == 'move_up') ? "right_id < {$module_row['right_id']} ORDER BY right_id DESC" : "left_id > {$module_row['left_id']} ORDER BY left_id ASC");
|
||||||
|
$result = $db->sql_query_limit($sql, 1, ($amount - 1));
|
||||||
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if (!$row)
|
||||||
|
{
|
||||||
|
// already on top or at bottom
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$module_info[$row['module_id']] = $row;
|
||||||
|
|
||||||
|
if ($action == 'move_up')
|
||||||
|
{
|
||||||
|
$up_id = $module_id;
|
||||||
|
$down_id = $row['module_id'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$up_id = $row['module_id'];
|
||||||
|
$down_id = $module_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$move_module_name = $this->lang_name($row['module_langname']);
|
||||||
|
$diff_up = $module_info[$up_id]['right_id'] - $module_info[$up_id]['left_id'];
|
||||||
|
$diff_down = $module_info[$down_id]['right_id'] - $module_info[$down_id]['left_id'];
|
||||||
|
|
||||||
|
$ids = array();
|
||||||
|
|
||||||
|
$sql = 'SELECT module_id
|
||||||
|
FROM ' . MODULES_TABLE . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND left_id > " . $module_info[$up_id]['left_id'] . '
|
||||||
|
AND right_id < ' . $module_info[$up_id]['right_id'];
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$ids[] = $row['module_id'];
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
// Start transaction
|
||||||
|
$db->sql_transaction('begin');
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||||
|
SET left_id = left_id + ' . ($diff_up + 1) . ', right_id = right_id + ' . ($diff_up + 1) . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND left_id > " . $module_info[$down_id]['left_id'] . '
|
||||||
|
AND right_id < ' . $module_info[$down_id]['right_id'];
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
if (sizeof($ids))
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||||
|
SET left_id = left_id - ' . ($diff_down + 1) . ', right_id = right_id - ' . ($diff_down + 1) . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND module_id IN (" . implode(', ', $ids) . ')';
|
||||||
|
$db->sql_query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||||
|
SET left_id = ' . $module_info[$down_id]['left_id'] . ', right_id = ' . ($module_info[$down_id]['left_id'] + $diff_up) . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND module_id = $up_id";
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||||
|
SET left_id = ' . ($module_info[$up_id]['right_id'] - $diff_down) . ', right_id = ' . $module_info[$up_id]['right_id'] . "
|
||||||
|
WHERE module_class = '" . $db->sql_escape($this->module_class) . "'
|
||||||
|
AND module_id = $down_id";
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
$db->sql_transaction('commit');
|
||||||
|
|
||||||
|
return $move_module_name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -32,6 +32,12 @@ class dbal
|
||||||
var $server = '';
|
var $server = '';
|
||||||
var $dbname = '';
|
var $dbname = '';
|
||||||
|
|
||||||
|
// Set to true if error triggered
|
||||||
|
var $sql_error_triggered = false;
|
||||||
|
|
||||||
|
// Holding the last sql query on sql error
|
||||||
|
var $sql_error_sql = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
|
@ -49,6 +55,9 @@ class dbal
|
||||||
*/
|
*/
|
||||||
function sql_return_on_error($fail = false)
|
function sql_return_on_error($fail = false)
|
||||||
{
|
{
|
||||||
|
$this->sql_error_triggered = false;
|
||||||
|
$this->sql_error_sql = '';
|
||||||
|
|
||||||
$this->return_on_error = $fail;
|
$this->return_on_error = $fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,6 +176,9 @@ class dbal
|
||||||
*
|
*
|
||||||
* Idea for this from Ikonboard
|
* Idea for this from Ikonboard
|
||||||
* Possible query values: INSERT, INSERT_SELECT, MULTI_INSERT, UPDATE, SELECT
|
* Possible query values: INSERT, INSERT_SELECT, MULTI_INSERT, UPDATE, SELECT
|
||||||
|
*
|
||||||
|
* If a key is 'module_name' and firebird used it gets adjusted to '"module_name"'
|
||||||
|
* on INSERT, INSERT_SELECT, UPDATE and SELECT
|
||||||
*/
|
*/
|
||||||
function sql_build_array($query, $assoc_ary = false)
|
function sql_build_array($query, $assoc_ary = false)
|
||||||
{
|
{
|
||||||
|
@ -175,13 +187,13 @@ class dbal
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = array();
|
$fields = $values = array();
|
||||||
$values = array();
|
|
||||||
if ($query == 'INSERT' || $query == 'INSERT_SELECT')
|
if ($query == 'INSERT' || $query == 'INSERT_SELECT')
|
||||||
{
|
{
|
||||||
foreach ($assoc_ary as $key => $var)
|
foreach ($assoc_ary as $key => $var)
|
||||||
{
|
{
|
||||||
$fields[] = $key;
|
$fields[] = ($key == 'module_name' && SQL_LAYER == 'firebird') ? '"' . $key . '"' : $key;
|
||||||
|
|
||||||
if (is_null($var))
|
if (is_null($var))
|
||||||
{
|
{
|
||||||
|
@ -235,6 +247,8 @@ class dbal
|
||||||
$values = array();
|
$values = array();
|
||||||
foreach ($assoc_ary as $key => $var)
|
foreach ($assoc_ary as $key => $var)
|
||||||
{
|
{
|
||||||
|
$key = ($key == 'module_name' && SQL_LAYER == 'firebird') ? '"' . $key . '"' : $key;
|
||||||
|
|
||||||
if (is_null($var))
|
if (is_null($var))
|
||||||
{
|
{
|
||||||
$values[] = "$key = NULL";
|
$values[] = "$key = NULL";
|
||||||
|
@ -313,6 +327,10 @@ class dbal
|
||||||
{
|
{
|
||||||
global $auth, $user;
|
global $auth, $user;
|
||||||
|
|
||||||
|
// Set var to retrieve errored status
|
||||||
|
$this->sql_error_triggered = true;
|
||||||
|
$this->sql_error_sql = $sql;
|
||||||
|
|
||||||
$error = $this->_sql_error();
|
$error = $this->_sql_error();
|
||||||
|
|
||||||
if (!$this->return_on_error)
|
if (!$this->return_on_error)
|
||||||
|
|
|
@ -1136,16 +1136,10 @@ class install_install extends module
|
||||||
/**
|
/**
|
||||||
* Populate the module tables
|
* Populate the module tables
|
||||||
*/
|
*/
|
||||||
function add_modules($mode, $sub)
|
function add_modules()
|
||||||
{
|
{
|
||||||
global $db, $lang, $phpbb_root_path, $phpEx;
|
global $db, $lang, $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
// Obtain any submitted data
|
|
||||||
foreach ($this->request_vars as $var)
|
|
||||||
{
|
|
||||||
$$var = request_var($var, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
include_once($phpbb_root_path . 'includes/constants.' . $phpEx);
|
include_once($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||||
include_once($phpbb_root_path . 'includes/acp/acp_modules.' . $phpEx);
|
include_once($phpbb_root_path . 'includes/acp/acp_modules.' . $phpEx);
|
||||||
|
|
||||||
|
@ -1158,24 +1152,18 @@ class install_install extends module
|
||||||
$_module = &new acp_modules();
|
$_module = &new acp_modules();
|
||||||
$module_classes = array('acp', 'mcp', 'ucp');
|
$module_classes = array('acp', 'mcp', 'ucp');
|
||||||
|
|
||||||
switch ($dbms)
|
// Add categories
|
||||||
{
|
|
||||||
case 'firebird':
|
|
||||||
$column_name = '"module_name"';
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$column_name = 'module_name';
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($module_classes as $module_class)
|
foreach ($module_classes as $module_class)
|
||||||
{
|
{
|
||||||
$categories = array();
|
$categories = array();
|
||||||
|
|
||||||
|
// Set the module class
|
||||||
|
$_module->module_class = $module_class;
|
||||||
|
|
||||||
foreach ($this->module_categories[$module_class] as $cat_name => $subs)
|
foreach ($this->module_categories[$module_class] as $cat_name => $subs)
|
||||||
{
|
{
|
||||||
$module_data = array(
|
$module_data = array(
|
||||||
$column_name => '',
|
'module_name' => '',
|
||||||
'module_enabled' => 1,
|
'module_enabled' => 1,
|
||||||
'module_display' => 1,
|
'module_display' => 1,
|
||||||
'parent_id' => 0,
|
'parent_id' => 0,
|
||||||
|
@ -1183,26 +1171,28 @@ class install_install extends module
|
||||||
'module_langname' => $cat_name,
|
'module_langname' => $cat_name,
|
||||||
'module_mode' => '',
|
'module_mode' => '',
|
||||||
'module_auth' => '',
|
'module_auth' => '',
|
||||||
|
|
||||||
'left_id' => 0,
|
|
||||||
'right_id' => 0,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
// Add category
|
||||||
if (!$db->sql_query($sql))
|
$_module->update_module_data($module_data, true);
|
||||||
|
|
||||||
|
// Check for last sql error happened
|
||||||
|
if ($db->sql_error_triggered)
|
||||||
{
|
{
|
||||||
$error = $db->sql_error();
|
$error = $db->sql_error($db->sql_error_sql);
|
||||||
$this->p_master->db_error($error['message'], $sql, __LINE__, __FILE__);
|
$this->p_master->db_error($error['message'], $db->sql_error_sql, __LINE__, __FILE__);
|
||||||
}
|
}
|
||||||
$categories[$cat_name]['id'] = $db->sql_nextid();
|
|
||||||
|
$categories[$cat_name]['id'] = $module_data['module_id'];
|
||||||
$categories[$cat_name]['parent_id'] = 0;
|
$categories[$cat_name]['parent_id'] = 0;
|
||||||
|
|
||||||
|
// Create sub-categories...
|
||||||
if (is_array($subs))
|
if (is_array($subs))
|
||||||
{
|
{
|
||||||
foreach ($subs as $level2_name)
|
foreach ($subs as $level2_name)
|
||||||
{
|
{
|
||||||
$module_data = array(
|
$module_data = array(
|
||||||
$column_name => '',
|
'module_name' => '',
|
||||||
'module_enabled' => 1,
|
'module_enabled' => 1,
|
||||||
'module_display' => 1,
|
'module_display' => 1,
|
||||||
'parent_id' => $categories[$cat_name]['id'],
|
'parent_id' => $categories[$cat_name]['id'],
|
||||||
|
@ -1210,26 +1200,24 @@ class install_install extends module
|
||||||
'module_langname' => $level2_name,
|
'module_langname' => $level2_name,
|
||||||
'module_mode' => '',
|
'module_mode' => '',
|
||||||
'module_auth' => '',
|
'module_auth' => '',
|
||||||
|
|
||||||
'left_id' => 0,
|
|
||||||
'right_id' => 0,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
$_module->update_module_data($module_data, true);
|
||||||
if (!$db->sql_query($sql))
|
|
||||||
|
// Check for last sql error happened
|
||||||
|
if ($db->sql_error_triggered)
|
||||||
{
|
{
|
||||||
$error = $db->sql_error();
|
$error = $db->sql_error($db->sql_error_sql);
|
||||||
$this->p_master->db_error($error['message'], $sql, __LINE__, __FILE__);
|
$this->p_master->db_error($error['message'], $db->sql_error_sql, __LINE__, __FILE__);
|
||||||
}
|
}
|
||||||
$categories[$level2_name]['id'] = $db->sql_nextid();
|
|
||||||
|
$categories[$level2_name]['id'] = $module_data['module_id'];
|
||||||
$categories[$level2_name]['parent_id'] = $categories[$cat_name]['id'];
|
$categories[$level2_name]['parent_id'] = $categories[$cat_name]['id'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
recalc_btree('module_id', MODULES_TABLE, $module_class);
|
// Get the modules we want to add... returned sorted by name
|
||||||
|
|
||||||
// Get the modules we want to add...
|
|
||||||
$module_info = $_module->get_module_infos('', $module_class);
|
$module_info = $_module->get_module_infos('', $module_class);
|
||||||
|
|
||||||
foreach ($module_info as $module_name => $fileinfo)
|
foreach ($module_info as $module_name => $fileinfo)
|
||||||
|
@ -1239,7 +1227,7 @@ class install_install extends module
|
||||||
foreach ($row['cat'] as $cat_name)
|
foreach ($row['cat'] as $cat_name)
|
||||||
{
|
{
|
||||||
$module_data = array(
|
$module_data = array(
|
||||||
$column_name => $module_name,
|
'module_name' => $module_name,
|
||||||
'module_enabled' => 1,
|
'module_enabled' => 1,
|
||||||
'module_display' => (isset($row['display'])) ? $row['display'] : 1,
|
'module_display' => (isset($row['display'])) ? $row['display'] : 1,
|
||||||
'parent_id' => $categories[$cat_name]['id'],
|
'parent_id' => $categories[$cat_name]['id'],
|
||||||
|
@ -1249,43 +1237,14 @@ class install_install extends module
|
||||||
'module_auth' => $row['auth'],
|
'module_auth' => $row['auth'],
|
||||||
);
|
);
|
||||||
|
|
||||||
$sql = 'SELECT left_id, right_id
|
$_module->update_module_data($module_data, true);
|
||||||
FROM ' . MODULES_TABLE . "
|
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND module_id = {$module_data['parent_id']}";
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
$row2 = $db->sql_fetchrow($result);
|
// Check for last sql error happened
|
||||||
|
if ($db->sql_error_triggered)
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
if ($categories[$cat_name]['parent_id'] || $module_class != 'acp')
|
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
$error = $db->sql_error($db->sql_error_sql);
|
||||||
SET left_id = left_id + 2, right_id = right_id + 2
|
$this->p_master->db_error($error['message'], $db->sql_error_sql, __LINE__, __FILE__);
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND left_id > {$row2['right_id']}";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
|
||||||
SET right_id = right_id + 2
|
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND {$row2['left_id']} BETWEEN left_id AND right_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
|
||||||
SET left_id = left_id + 3, right_id = right_id + 3
|
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND left_id > {$row2['left_id']}";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
}
|
|
||||||
$module_data['left_id'] = ($categories[$cat_name]['parent_id']) ? $row2['right_id'] : $row2['left_id'] + 1;
|
|
||||||
$module_data['right_id'] = ($categories[$cat_name]['parent_id']) ? $row2['right_id'] + 1 : $row2['left_id'] + 2;
|
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
|
||||||
$db->sql_query($sql);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1294,33 +1253,35 @@ class install_install extends module
|
||||||
// Manage Users should ideally be the first thing you see on the Users & groups tab
|
// Manage Users should ideally be the first thing you see on the Users & groups tab
|
||||||
if ($module_class == 'acp')
|
if ($module_class == 'acp')
|
||||||
{
|
{
|
||||||
$sql = 'SELECT module_id, left_id, right_id FROM ' . MODULES_TABLE . "
|
// Move main module 4 up...
|
||||||
WHERE module_langname = 'ACP_CAT_USERS'
|
for ($i = 1; $i <= 4; $i++)
|
||||||
AND module_class = 'acp'";
|
{
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
$sql = 'SELECT *
|
||||||
$row2 = $db->sql_fetchrow($result);
|
FROM ' . MODULES_TABLE . "
|
||||||
$db->sql_freeresult($result);
|
WHERE module_name = 'main'
|
||||||
|
AND module_class = 'acp'
|
||||||
|
AND module_mode = 'main'";
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
$_module->move_module_by($row, 'move_up', 1);
|
||||||
SET left_id = left_id + 3, right_id = right_id + 3
|
}
|
||||||
WHERE module_class = 'acp'
|
|
||||||
AND left_id > {$row2['left_id']}
|
|
||||||
AND left_id < {$row2['right_id']}";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'SELECT * FROM ' . MODULES_TABLE . "
|
// Move permissions intro screen module 4 up...
|
||||||
WHERE module_langname = 'ACP_MANAGE_USERS'
|
for ($i = 1; $i <= 4; $i++)
|
||||||
AND module_class = 'acp'";
|
{
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
$sql = 'SELECT *
|
||||||
$module_data = $db->sql_fetchrow($result);
|
FROM ' . MODULES_TABLE . "
|
||||||
$db->sql_freeresult($result);
|
WHERE module_name = 'permissions'
|
||||||
|
AND module_class = 'acp'
|
||||||
|
AND module_mode = 'intro'";
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$module_data['left_id'] = $row2['left_id'] + 1;
|
$_module->move_module_by($row, 'move_up', 1);
|
||||||
$module_data['right_id'] = $row2['left_id'] + 2;
|
}
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $module_data) . "
|
|
||||||
WHERE module_id = {$module_data['module_id']}";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// And now for the special ones
|
// And now for the special ones
|
||||||
|
@ -1340,36 +1301,31 @@ class install_install extends module
|
||||||
{
|
{
|
||||||
$sql = 'SELECT * FROM ' . MODULES_TABLE . "
|
$sql = 'SELECT * FROM ' . MODULES_TABLE . "
|
||||||
WHERE module_langname = '$mod_name'
|
WHERE module_langname = '$mod_name'
|
||||||
AND module_class = '$module_class'
|
AND module_class = '$module_class'
|
||||||
|
AND module_name <> ''
|
||||||
LIMIT 1";
|
LIMIT 1";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$module_data = $db->sql_fetchrow($result);
|
$module_data = $db->sql_fetchrow($result);
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
|
||||||
SET left_id = left_id + 2, right_id = right_id + 2
|
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND left_id > {$row2['right_id']}";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . MODULES_TABLE . "
|
|
||||||
SET right_id = right_id + 2
|
|
||||||
WHERE module_class = '" . $module_class . "'
|
|
||||||
AND {$row2['left_id']} BETWEEN left_id AND right_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
unset($module_data['module_id']);
|
unset($module_data['module_id']);
|
||||||
$module_data['parent_id'] = $row2['module_id'];
|
unset($module_data['left_id']);
|
||||||
$module_data['left_id'] = $row2['right_id'];
|
unset($module_data['right_id']);
|
||||||
$module_data['right_id'] = $row2['right_id'] + 1;
|
|
||||||
|
|
||||||
$sql = 'INSERT INTO ' . MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $module_data);
|
$module_data['parent_id'] = $row2['module_id'];
|
||||||
$db->sql_query($sql);
|
|
||||||
|
$_module->update_module_data($module_data, true);
|
||||||
|
|
||||||
|
// Check for last sql error happened
|
||||||
|
if ($db->sql_error_triggered)
|
||||||
|
{
|
||||||
|
$error = $db->sql_error($db->sql_error_sql);
|
||||||
|
$this->p_master->db_error($error['message'], $db->sql_error_sql, __LINE__, __FILE__);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
recalc_btree('module_id', MODULES_TABLE, $module_class);
|
|
||||||
$_module->remove_cache_file();
|
$_module->remove_cache_file();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1876,6 +1832,7 @@ class install_install extends module
|
||||||
'UCP_ZEBRA' => null,
|
'UCP_ZEBRA' => null,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
var $module_extras = array(
|
var $module_extras = array(
|
||||||
'acp' => array(
|
'acp' => array(
|
||||||
'ACP_QUICK_ACCESS' => array(
|
'ACP_QUICK_ACCESS' => array(
|
||||||
|
|
Loading…
Add table
Reference in a new issue