1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-04 21:57:51 +02:00

Allow lots more userclasses. Fix table update part of update routine

This commit is contained in:
e107steved
2009-06-29 21:26:58 +00:00
parent 7c395b8c16
commit 595291f1d0
4 changed files with 25 additions and 18 deletions

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_admin/sql/core_sql.php,v $ | $Source: /cvs_backup/e107_0.8/e107_admin/sql/core_sql.php,v $
| $Revision: 1.16 $ | $Revision: 1.17 $
| $Date: 2008-12-17 20:03:53 $ | $Date: 2009-06-29 21:26:58 $
| $Author: mcfly_e107 $ | $Author: e107steved $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
header("location:../index.php"); header("location:../index.php");
@@ -546,7 +546,7 @@ CREATE TABLE user (
# Table structure for table `userclass_classes` # Table structure for table `userclass_classes`
# #
CREATE TABLE userclass_classes ( CREATE TABLE userclass_classes (
userclass_id tinyint(3) unsigned NOT NULL default '0', userclass_id smallint(5) unsigned NOT NULL default '0',
userclass_name varchar(100) NOT NULL default '', userclass_name varchar(100) NOT NULL default '',
userclass_description varchar(250) NOT NULL default '', userclass_description varchar(250) NOT NULL default '',
userclass_editclass tinyint(3) unsigned NOT NULL default '0', userclass_editclass tinyint(3) unsigned NOT NULL default '0',

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_admin/update_routines.php,v $ | $Source: /cvs_backup/e107_0.8/e107_admin/update_routines.php,v $
| $Revision: 1.37 $ | $Revision: 1.38 $
| $Date: 2009-05-24 15:34:36 $ | $Date: 2009-06-29 21:26:58 $
| $Author: e107steved $ | $Author: e107steved $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -607,7 +607,7 @@ function update_706_to_800($type='')
if ((($actual_defs = $db_parser->get_current_table($ct)) === FALSE) || !is_array($actual_defs)) // Adds current default prefix if ((($actual_defs = $db_parser->get_current_table($ct)) === FALSE) || !is_array($actual_defs)) // Adds current default prefix
{ {
// echo "Couldn't get table structure: {$ct}<br />"; echo "Couldn't get table structure: {$ct}<br />";
} }
else else
{ {
@@ -916,10 +916,10 @@ function addIndexToTable($target, $indexSpec, $just_check, &$updateMessages, $op
function catch_error(&$target) function catch_error(&$target)
{ {
if ($target->getLastErrorText() != '' && E107_DEBUG_LEVEL != 0) if ($target->mySQLlastErrText() != '' && E107_DEBUG_LEVEL != 0)
{ {
$tmp2 = debug_backtrace(); $tmp2 = debug_backtrace();
$tmp = $target->getLastErrorText(); $tmp = $target->mySQLlastErrText();
echo $tmp." [ ".basename(__FILE__)." on line ".$tmp2[0]['line']."] <br />"; echo $tmp." [ ".basename(__FILE__)." on line ".$tmp2[0]['line']."] <br />";
} }
return; return;

View File

@@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/db_table_admin_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/db_table_admin_class.php,v $
| $Revision: 1.7 $ | $Revision: 1.8 $
| $Date: 2008-12-20 00:55:29 $ | $Date: 2009-06-29 21:26:58 $
| $Author: mcfly_e107 $ | $Author: e107steved $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -45,7 +45,7 @@ class db_table_admin
$sql->db_Select_gen('SET SQL_QUOTE_SHOW_CREATE = 1'); $sql->db_Select_gen('SET SQL_QUOTE_SHOW_CREATE = 1');
$qry = 'SHOW CREATE TABLE `'.$prefix.$table_name."`"; $qry = 'SHOW CREATE TABLE `'.$prefix.$table_name."`";
if (!($z = $sql->db_Select_gen($qry))) { return FALSE; } if (!($z = $sql->db_Select_gen($qry))) { return FALSE; }
$row = $sql->db_Fetch(); $row = $sql->db_Fetch(MYSQL_NUM);
$tmp = str_replace("`", "", stripslashes($row[1])).';'; // Add semicolon to work with our parser $tmp = str_replace("`", "", stripslashes($row[1])).';'; // Add semicolon to work with our parser
$count = preg_match_all("#CREATE\s+?TABLE\s+?`{0,1}({$prefix}{$table_name})`{0,1}\s+?\((.*?)\)\s+?(?:TYPE|ENGINE)\s*\=\s*(.*?);#is",$tmp,$matches,PREG_SET_ORDER); $count = preg_match_all("#CREATE\s+?TABLE\s+?`{0,1}({$prefix}{$table_name})`{0,1}\s+?\((.*?)\)\s+?(?:TYPE|ENGINE)\s*\=\s*(.*?);#is",$tmp,$matches,PREG_SET_ORDER);
if ($count === FALSE) { return "Error occurred";} if ($count === FALSE) { return "Error occurred";}

View File

@@ -11,8 +11,8 @@
| GNU General Public License (http://gnu.org). | GNU General Public License (http://gnu.org).
| |
| $Source: /cvs_backup/e107_0.8/e107_handlers/userclass_class.php,v $ | $Source: /cvs_backup/e107_0.8/e107_handlers/userclass_class.php,v $
| $Revision: 1.32 $ | $Revision: 1.33 $
| $Date: 2009-04-30 20:10:10 $ | $Date: 2009-06-29 21:26:58 $
| $Author: e107steved $ | $Author: e107steved $
+----------------------------------------------------------------------------+ +----------------------------------------------------------------------------+
*/ */
@@ -43,6 +43,7 @@ define('e_UC_ADMINMOD',249);
define('e_UC_MODS',248); define('e_UC_MODS',248);
define('e_UC_NEWUSER',247); // Users in 'probationary' period define('e_UC_NEWUSER',247); // Users in 'probationary' period
define('e_UC_SPECIAL_BASE',245); // Assign class IDs 245 and above for fixed/special purposes define('e_UC_SPECIAL_BASE',245); // Assign class IDs 245 and above for fixed/special purposes
define('e_UC_SPECIAL_END',255); // Highest 'special' class
define('UC_CLASS_ICON_DIR','userclasses/'); // Directory for userclass icons define('UC_CLASS_ICON_DIR','userclasses/'); // Directory for userclass icons
define('UC_ICON_DIR',e_IMAGE.'generic/'); // Directory for the icons used in the admin tree displays define('UC_ICON_DIR',e_IMAGE.'generic/'); // Directory for the icons used in the admin tree displays
@@ -1122,6 +1123,12 @@ class user_class_admin extends user_class
{ {
if (!isset($this->class_tree[$i])) return $i; if (!isset($this->class_tree[$i])) return $i;
} }
// Big system!! Assign a class in the 0.8-only block above 255
for ($i = e_UC_SPECIAL_END+1; ($i < 32767); $i++)
{
if (!isset($this->class_tree[$i])) return $i;
}
return FALSE; // Just in case all classes assigned! return FALSE; // Just in case all classes assigned!
} }
@@ -1233,10 +1240,10 @@ class user_class_admin extends user_class
function checkAdminInfo(&$data, $id) function checkAdminInfo(&$data, $id)
{ {
$ret = TRUE; $ret = TRUE;
if ($id < e_UC_SPECIAL_BASE) return TRUE; if (($id < e_UC_SPECIAL_BASE) || ($id > e_UC_SPECIAL_END)) return TRUE;
if (isset($data['userclass_parent'])) if (isset($data['userclass_parent']))
{ {
if ($data['userclass_parent'] < e_UC_SPECIAL_BASE) if (($data['userclass_parent'] < e_UC_SPECIAL_BASE) || ($data['userclass_parent'] > e_UC_SPECIAL_END))
{ {
$data['userclass_parent'] = e_UC_NOBODY; $data['userclass_parent'] = e_UC_NOBODY;
$ret = FALSE; $ret = FALSE;
@@ -1252,7 +1259,7 @@ class user_class_admin extends user_class
$ret = FALSE; $ret = FALSE;
} }
} }
elseif ($data['userclass_editclass'] < e_UC_SPECIAL_BASE) elseif (($data['userclass_editclass'] < e_UC_SPECIAL_BASE) || ($data['userclass_editclass'] > e_UC_SPECIAL_END))
{ {
$data['userclass_editclass'] = e_UC_MAINADMIN; $data['userclass_editclass'] = e_UC_MAINADMIN;
$ret = FALSE; $ret = FALSE;