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

Allow editing of selected fields of some 'system' userclasses.

Tidy up a bit.
This commit is contained in:
SteveD 2012-12-19 22:27:48 +00:00
parent 12ef7e3f1c
commit cfb76a758a
3 changed files with 263 additions and 183 deletions

View File

@ -48,27 +48,38 @@ $mes = e107::getMessage();
$message = '';
/**
* See whether a user class is fully editable.
* See whether a user class is editable.
*
* (Note: On fixed classes, only some fields are editable)
*
* @param integer $class_id
* @param boolean $redirect - if TRUE, will redirect to site home page if class not fully editable.
* @return boolean - TRUE if class fully editable, FALSE if not.
* @param boolean $redirect - if TRUE, will redirect to site home page if class not editable.
* @param boolean $fullEdit - set TRUE if full editing required, FALSE if some editing permitted
*
* @return boolean - TRUE if class editable (fully or partially), FALSE if not.
*/
function check_allowed($class_id, $redirect = true)
function checkAllowed($classID, $redirect = true, $fullEdit = FALSE)
{
$uc = e107::getUserClass();
if (!isset($uc->class_tree[$class_id]) || (!getperms('0') && !check_class($uc->class_tree[$class_id]['userclass_editclass'])))
global $e_userclass; // TODO: Get rid of this (we need the system admin object; not the user-level object)
$editLevel = $fullEdit ? 2 : 1;
if ($e_userclass->queryCanEditClass($classID) >= $editLevel)
{
return TRUE;
}
if ($redirect)
{
if(!$redirect) return false;
header('location:'.SITEURL);
exit;
}
return FALSE;
// Next bit probably redundant - editing of some parts of system class data is allowed.
if(!$uc->isEditableClass($class_id))
{
if(!$redirect) return false;
e107::getMessage()->addSession('You can\'t edit system user classes!', E_MESSAGE_ERROR);
e107::getMessage()->addSession(UCSLAN_90, E_MESSAGE_ERROR);
header('location:'.e_SELF);
exit;
}
@ -97,7 +108,7 @@ if(e_AJAX_REQUEST)
{
require_once(e_HANDLER.'js_helper.php');
$jshelper = new e_jshelper();
if(!check_allowed($class_num, false))
if(!checkAllowed($class_num, false))
{
//This will raise an error
//'Access denied' is the message which will be thrown
@ -186,30 +197,26 @@ if (isset($_POST['set_initial_classes']))
//---------------------------------------------------
if (isset($_POST['etrigger_delete']) && !empty($_POST['etrigger_delete']))
{
$class_id = intval(array_shift(array_keys($_POST['etrigger_delete'])));
check_allowed($class_id);
/* done already by check_allowed()
if (($class_id >= e_UC_SPECIAL_BASE) && ($class_id <= e_UC_SPECIAL_END))
{
$message = UCSLAN_29;
}*/
//elseif ($_POST['confirm'])
$classID = intval(array_shift(array_keys($_POST['etrigger_delete'])));
//checkAllowed($classID);
if ($e_userclass->queryCanDeleteClass($classID))
{
if ($e_userclass->delete_class($class_id) !== FALSE)
{
userclass2_adminlog("02","ID:{$class_id} (".$e_userclass->uc_get_classname($class_id).")");
if ($sql->db_Select('user', 'user_id, user_class', "user_class = '{$class_id}' OR user_class REGEXP('^{$class_id},') OR user_class REGEXP(',{$class_id},') OR user_class REGEXP(',{$class_id}$')"))
userclass2_adminlog("02","ID:{$class_id} (".$e_userclass->uc_get_classname($classID).")");
if ($sql->db_Select('user', 'user_id, user_class', "user_class = '{$classID}' OR user_class REGEXP('^{$classID},') OR user_class REGEXP(',{$classID},') OR user_class REGEXP(',{$classID}$')"))
{ // Delete existing users from class
while ($row = $sql->db_Fetch(MYSQL_ASSOC))
{
$uidList[$row['user_id']] = $row['user_class'];
}
$e_userclass->class_remove($class_id, $uidList);
$e_userclass->class_remove($classID, $uidList);
}
$e_pref = e107::getConfig();
if($e_pref->isData('frontpage/'.$class_id))
if($e_pref->isData('frontpage/'.$classID))
{
$e_pref->removePref('frontpage/'.$class_id)->save(false);
$e_pref->removePref('frontpage/'.$classID)->save(false);
}
/*if (isset($pref['frontpage'][$class_id]))
{
@ -223,10 +230,10 @@ if (isset($_POST['etrigger_delete']) && !empty($_POST['etrigger_delete']))
$emessage->add(UCSLAN_10, E_MESSAGE_ERROR);
}
}
/* else
else
{
$message = UCSLAN_4;
}*/
$emessage->add(UCSLAN_10, E_MESSAGE_ERROR);
}
}
@ -236,27 +243,9 @@ if (isset($_POST['etrigger_delete']) && !empty($_POST['etrigger_delete']))
//---------------------------------------------------
if (isset($_POST['createclass'])) // Add or edit
{
$class_record = array(
'userclass_name' => varset($tp->toDB($_POST['userclass_name']),''),
'userclass_description' => varset($tp->toDB($_POST['userclass_description']),''),
'userclass_editclass' => intval(varset($_POST['userclass_editclass'],0)),
'userclass_parent' => intval(varset($_POST['userclass_parent'],0)),
'userclass_visibility' => intval(varset($_POST['userclass_visibility'],0)),
'userclass_icon' => $tp->toDB(varset($_POST['userclass_icon'],'')),
'userclass_type' => intval(varset($_POST['userclass_type'],UC_TYPE_STD))
);
if ($class_record['userclass_type'] == UC_TYPE_GROUP)
{
$temp = array();
foreach ($_POST['group_classes_select'] as $gc)
{
$temp[] = intval($gc);
}
$class_record['userclass_accum'] = implode(',',$temp);
}
$do_tree = FALSE; // Set flag to rebuild tree if no errors
$forwardVals = FALSE; // Set to ripple through existing values to a subsequent pass
$fullEdit = TRUE; // Most of the time, we are allowed to edit everything
$do_tree = FALSE; // Set flag to rebuild tree if no errors
$forwardVals = FALSE; // Set to ripple through existing values to a subsequent pass
$tempID = intval(varset($_POST['userclass_id'], -1));
if (($tempID < 0) && $e_userclass->ucGetClassIDFromName($class_record['userclass_name']))
@ -264,19 +253,49 @@ if (isset($_POST['createclass'])) // Add or edit
$emessage->add(UCSLAN_63, E_MESSAGE_WARNING); // Duplicate name
$forwardVals = TRUE;
}
elseif ($e_userclass->checkAdminInfo($class_record, $tempID) === FALSE)
if ($tempID > 0)
{
$fullEdit = $e_userclass->queryCanEditClass($tempID) == 2;
}
$class_record = array(
'userclass_description' => varset($tp->toDB($_POST['userclass_description']),''),
'userclass_editclass' => intval(varset($_POST['userclass_editclass'],0)),
'userclass_parent' => intval(varset($_POST['userclass_parent'],0)),
'userclass_visibility' => intval(varset($_POST['userclass_visibility'],0)),
'userclass_icon' => $tp->toDB(varset($_POST['userclass_icon'],''))
);
if ($fullEdit)
{
$class_record['userclass_name'] = varset($tp->toDB($_POST['userclass_name']),'');
$class_record['userclass_type'] = intval(varset($_POST['userclass_type'],UC_TYPE_STD));
if ($class_record['userclass_type'] == UC_TYPE_GROUP)
{
$temp = array();
foreach ($_POST['group_classes_select'] as $gc)
{
$temp[] = intval($gc);
}
$class_record['userclass_accum'] = implode(',',$temp);
}
}
if ($e_userclass->checkAdminInfo($class_record, $tempID) === FALSE)
{
$emessage->add(UCSLAN_86); // Some fixed values changed
$forwardVals = TRUE;
}
if (!$forwardVals)
{
if ($tempID > 0)
{ // Editing existing class here
check_allowed($tempID);
checkAllowed($tempID);
$class_record['userclass_id'] = $tempID;
$e_userclass->save_edited_class($class_record);
userclass2_adminlog("03","ID:{$class_record['userclass_id']} (".$class_record['userclass_name'].")");
userclass2_adminlog('03',"ID:{$class_record['userclass_id']} (".$class_record['userclass_name'].")");
$do_tree = TRUE;
//$message .= UCSLAN_5;
$emessage->add(UCSLAN_5, E_MESSAGE_SUCCESS);
@ -319,11 +338,11 @@ if (isset($_POST['createclass'])) // Add or edit
}
}
if ($do_tree)
{
$e_userclass->calc_tree();
$e_userclass->save_tree();
}
if ($do_tree)
{
$e_userclass->calc_tree();
$e_userclass->save_tree();
}
}
@ -366,10 +385,12 @@ switch ($action)
// Class management
//-----------------------------------
case 'config' :
$fullEdit = TRUE;
if(isset($_POST['existing']))
{
$params = 'edit';
$class_num = intval(varset($_POST['existing'],0));
$fullEdit = $e_userclass->queryCanEditClass($class_num) == 2;
}
else
{
@ -389,7 +410,7 @@ switch ($action)
{
if (!$forwardVals)
{ // Get the values from DB (else just recycle data uer was trying to store)
check_allowed($class_num);
checkAllowed($class_num);
$sql->db_Select('userclass_classes', '*', "userclass_id='".intval($class_num)."' ");
$class_record = $sql->db_Fetch();
$userclass_id = $class_record['userclass_id']; // Update fields from DB if editing
@ -422,9 +443,16 @@ switch ($action)
$text .= "
<tr>
<td>".UCSLAN_12."</td>
<td>
<input class='tbox' type='text' size='30' maxlength='25' name='userclass_name' value='{$userclass_name}' />
<div class='field-help'>".UCSLAN_30."</div></td>
<td>";
if ($fullEdit)
{
$text .= "<input class='tbox' type='text' size='30' maxlength='25' name='userclass_name' value='{$userclass_name}' />";
}
else
{
$text .= "{$userclass_name}<input type='hidden' name='userclass_name' value='{$userclass_name}' />";
}
$text .= "<div class='field-help'>".UCSLAN_30."</div></td>
</tr>
<tr>
@ -445,12 +473,21 @@ switch ($action)
$text .= "
<tr>
<td>".UCSLAN_79."</td>
<td>\n
<td>";
$classTypes = array(UC_TYPE_STD => UCSLAN_80, UC_TYPE_GROUP => UCSLAN_81);
if ($fullEdit)
{
$text .= "\n
<select name='userclass_type' class='tbox' onchange='setGroupStatus(this)'>
<option value='".UC_TYPE_STD."'".(UC_TYPE_STD == $userclass_type ? " selected='selected'" : "").">".UCSLAN_80."</option>\n
<option value='".UC_TYPE_GROUP."'".(UC_TYPE_GROUP == $userclass_type ? " selected='selected'" : "").">".UCSLAN_81."</option>\n
</select>\n
<div class='field-help'>".UCSLAN_82."</div></td>
</select>\n";
}
else
{
$text .= $classTypes[$userclass_type]."<input type='hidden' name='userclass_type' value='{$userclass_type}' />";
}
$text .= "<div class='field-help'>".UCSLAN_82."</div></td>
</tr>
";
@ -948,8 +985,8 @@ class uclass_manager
foreach($classes as $row)
{
$this->fields['options']['readParms']['deleteClass'] = $e_userclass->isEditableClass($row['userclass_id']) ? '' : e_UC_NOBODY;
$text .= $frm->renderTableRow($this->fields, $this->fieldpref, $row, 'userclass_id'); // @TODO: Suppress delete icon on fixed classes.
$this->fields['options']['readParms']['deleteClass'] = $e_userclass->queryCanDeleteClass($row['userclass_id']) ? '' : e_UC_NOBODY;
$text .= $frm->renderTableRow($this->fields, $this->fieldpref, $row, 'userclass_id');
}
$text .= "</tbody></table></fieldset></form>";
@ -966,6 +1003,7 @@ require_once(e_ADMIN.'footer.php');
// @TODO: Is this function still required?
function headerjs()
{
$params = e107::getRegistry('pageParams');

View File

@ -1107,7 +1107,9 @@ class user_class_admin extends user_class
public function __construct()
{
parent::__construct();
$this->isAdmin = TRUE;
if (!(getperms('4') || getperms('0'))) return;
$this->isAdmin = TRUE; // We have full class management rights
}
@ -1119,7 +1121,7 @@ class user_class_admin extends user_class
*/
public function calc_tree()
{
$this->readTree(TRUE); // Make sure we have accurate data
$this->readTree(TRUE); // Make sure we have accurate data
foreach ($this->class_parents as $cp)
{
$rights = array();
@ -1256,8 +1258,14 @@ class user_class_admin extends user_class
/*
Next two routines generate a graphical tree, including option to open/close branches
*/
* Next two routines generate a graphical tree, including option to open/close branches
*
* function show_graphical subtree() is for internal use, called from function show_graphical_tree
*
* @param int $listnum - class number of first element to display, along with its children
* @param array $indent_images - array of images with which to start each line
* @param boolean $is_last - TRUE if this is the last element on the current branch of the tree
*/
protected function show_graphical_subtree($listnum, $indent_images, $is_last = FALSE)
{
$num_children = count(vartrue($this->class_tree[$listnum]['class_children']));
@ -1295,7 +1303,7 @@ class user_class_admin extends user_class
if ($this->graph_debug) $name_line .= "[vis:".$this->class_tree[$listnum]['userclass_visibility'].", edit:".$this->class_tree[$listnum]['userclass_editclass']."] = ".$this->class_tree[$listnum]['userclass_accum']." Children: ".implode(',',$this->class_tree[$listnum]['class_children']);
// Next (commented out) line gives a 'conventional' link
//$ret .= "<img src='".UC_ICON_DIR."topicon.png' alt='class icon' /><a style='text-decoration: none' class='userclass_edit' href='".e_ADMIN_ABS."userclass2.php?config.edit.{$this->class_tree[$listnum]['userclass_id']}'>".$name_line."</a></div>";
if($this->isEditableClass($this->class_tree[$listnum]['userclass_id']))
if($this->queryCanEditClass($this->class_tree[$listnum]['userclass_id']))
{
$url = e_SELF.'?action=edit&amp;id='.$this->class_tree[$listnum]['userclass_id'];
$onc = '';
@ -1323,16 +1331,16 @@ class user_class_admin extends user_class
{
$indent_images[] = 'line.gif';
}
foreach ($this->class_tree[$listnum]['class_children'] as $p)
if (isset($this->class_tree[$listnum]['class_children'])) foreach ($this->class_tree[$listnum]['class_children'] as $p)
{
$num_children--;
if ($num_children)
{ // Use icon indicating more below
$ret .= $this->show_graphical_subtree($p, $indent_images, FALSE);
$ret .= $this->show_graphical_subtree($p, $indent_images, FALSE);
}
else
{ // else last entry on this tree
$ret .= $this->show_graphical_subtree($p, $indent_images, TRUE);
$ret .= $this->show_graphical_subtree($p, $indent_images, TRUE);
}
}
$ret .= "</div>";
@ -1344,6 +1352,7 @@ class user_class_admin extends user_class
/**
* Create graphical class tree, including clickable links to expand/contract branches.
*
* @param boolean $show_debug - TRUE to display additional information against each class
* @return string - text for display
*/
@ -1382,7 +1391,7 @@ class user_class_admin extends user_class
if ($inc_id && isset($classrec['userclass_id'])) $ret['userclass_id'] = $classrec['userclass_id'];
foreach ($this->field_list as $fl => $val)
{
if (isset($classrec[$fl])) $ret[$fl] = $classrec[$fl];
if (isset($classrec[$fl])) $ret[$fl] = $classrec[$fl];
}
return $ret;
}
@ -1462,17 +1471,19 @@ class user_class_admin extends user_class
* TODO: use new array function
* @param array $classrec - class data
* @return boolean TRUE on success, FALSE on failure
*
* Note - only updates those fields which are present in the passed array, and ignores unexpected fields.
*/
public function save_edited_class($classrec)
{
if (!$classrec['userclass_id'])
{
echo "Programming bungle on save<br />";
echo 'Programming bungle on save - no ID field<br />';
return FALSE;
}
$qry = '';
$spacer = '';
if ($classrec['userclass_type'] == UC_TYPE_GROUP)
if (isset($classrec['userclass_type']) && ($classrec['userclass_type'] == UC_TYPE_GROUP))
{ // Need to make sure our ID is in the accumulation array
$temp = explode(',',$classrec['userclass_accum']);
if (!in_array($classrec['userclass_id'], $temp))
@ -1500,6 +1511,37 @@ class user_class_admin extends user_class
/**
* Check if a user may edit a user class.
* @param integer $classID > 0
* @param string $classList - comma-separated list of class IDs; defaults to those of current user
*
* @return integer:
* 0 - if editing not allowed at all
* 1 - if restricted editing allowed (usually because its a fixed class)
* 2 - All editing rights allowed
*/
public function queryCanEditClass($classID, $classList = USERCLASS_LIST)
{
if (!isset($this->class_tree[$classID])) return 0; // Class doesn't exist - no hope of editing!
$blockers = array(e_UC_PUBLIC => 1, e_UC_READONLY => 1, e_UC_NOBODY => 1, e_UC_GUEST => 1);
if (isset($blockers[$classID])) return 0; // Don't allow edit of some fixed classes
$canEdit = $this->isAdmin;
$possibles = array_flip(explode(',',$classList));
if (isset($possibles[$this->class_tree[$classID]['userclass_editclass']])) $canEdit = TRUE;
if (!$canEdit) return 0;
if (($classID >= e_UC_SPECIAL_BASE) && ($classID <= e_UC_SPECIAL_END)) return 1; // Restricted edit of fixed classes
if (isset($this->fixed_classes[$classID])) return 1; // This picks up fixed classes such as e_UC_PUBLIC outside the main range
return 2; // Full edit rights - a 'normal' class
}
/**
* Check if a class may be deleted. (Fixed classes, classes with descendants cannot be deleted)
@ -1509,12 +1551,12 @@ class user_class_admin extends user_class
public function queryCanDeleteClass($classID)
{
if (($classID >= e_UC_SPECIAL_BASE) && ($classID <= e_UC_SPECIAL_END)) return FALSE; // Don't allow deletion of fixed classes
if (isset($this->fixed_classes[$classID])) return FALSE; // This picks up classes such as e_UC_PUBLIC outside the main range which can't be deleted
if (isset($this->fixed_classes[$classID])) return FALSE; // This picks up fixed classes such as e_UC_PUBLIC outside the main range which can't be deleted
if (!isset($this->class_tree[$classID])) return FALSE;
if (count($this->class_tree[$classID]['class_children'])) return FALSE; // Can't delete class with descendants
foreach ($this->class_tree as $c)
{
if ($c['userclass_editclass'] == $classID) return FALSE;
if ($c['userclass_editclass'] == $classID) return FALSE; // Class specified as managing or using another class
if ($c['userclass_visibility'] == $classID) return FALSE;
}
return TRUE;

View File

@ -1,108 +1,108 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system - Language File.
|
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_userclass2.php,v $
| $Revision$
| $Date$
| $Author$
+----------------------------------------------------------------------------+
*/
define("UCSLAN_1", "Cleared all users from class.");
define("UCSLAN_2", "Class users updated.");
define("UCSLAN_3", "Class deleted.");
// define("UCSLAN_4", "Please tick the confirm box to delete this user class"); currently not in use
define("UCSLAN_5", "Class updated.");
define("UCSLAN_6", "Class saved to database.");
define("UCSLAN_7", "No user classes yet.");
define("UCSLAN_8", "Existing Classes");
define("UCSLAN_9", "No Icon");
define('UCSLAN_10', 'Class not deleted - it is a core class, or is used in the definition of another class, as either parent or edit class');
define("UCSLAN_11", "tick to confirm");
define("UCSLAN_12", "Class Name");
define("UCSLAN_13", "Class Description");
define("UCSLAN_14", "Update User Class");
define("UCSLAN_15", "Create New Class");
define("UCSLAN_16", "Assign users to class");
define("UCSLAN_17", "Remove");
define("UCSLAN_18", "Clear Class");
define("UCSLAN_19", "Assign users to");
define("UCSLAN_20", "class");
define("UCSLAN_21", "User Class Settings");
define("UCSLAN_22", "Users - click to move ...");
define("UCSLAN_23", "Users in this class ...");
define("UCSLAN_24", "Class Manager");
define("UCSLAN_25", 'Define/Edit Classes');
define("UCSLAN_26", 'Class Membership');
define("UCSLAN_27", 'Debug Help');
define("UCSLAN_28", 'Modify Class Membership');
define("UCSLAN_29", 'That class must not be deleted');
define("UCSLAN_30", 'Short name displayed in selectors');
define("UCSLAN_31", 'Information about applicability of class');
define("UCSLAN_32", 'Users in this class can add/remove themselves from the class being edited');
define("UCSLAN_33", 'Determines which users can see this class in drop-down lists');
define("UCSLAN_34", 'Class Visibility');
define("UCSLAN_35", 'Class Parent');
define("UCSLAN_36", 'If the top of the tree is \'No One\', permissions increase towards the top of the tree<br />If the top of the tree is \'Everyone\', permissions increase as you go down the tree');
define("UCSLAN_37", 'You must enter a name for the class');
define("UCSLAN_38", 'Initial User Class');
define("UCSLAN_39", 'No classes which can be set');
define("UCSLAN_40", 'Set initial classes');
define("UCSLAN_41", 'Settings updated');
define("UCSLAN_42", 'Nothing changed - not updated');
define("UCSLAN_43", 'Existing classes: ');
define("UCSLAN_44", 'None');
define("UCSLAN_45", 'Point at which classes set:');
define("UCSLAN_46", '(ignored if no verification)');
define("UCSLAN_47", 'Initial Signup');
define("UCSLAN_48", 'Verification by email or admin');
define("UCSLAN_49", 'These classes are set for any newly signed up user - either immediately, or once their site membership has been verified');
define("UCSLAN_50", 'Options/Setup');
define("UCSLAN_51", 'User Class Functions');
define("UCSLAN_52", 'Setup Options');
define("UCSLAN_53", 'Caution! Only use these options if you understand what they do');
define("UCSLAN_54", 'Set a default user hierarchy');
define("UCSLAN_55", 'Clear the user hierarchy');
define("UCSLAN_56", "(this sets a 'flat' user class structure)");
define("UCSLAN_57", '(the hierarchy can be modified later)');
define("UCSLAN_58", 'Execute');
define("UCSLAN_59", 'Enable admin logging of user class edits');
define("UCSLAN_60", 'User Class Configuration options');
define("UCSLAN_61", 'User class setup');
define("UCSLAN_62", 'Create default class tree: ');
define("UCSLAN_63", 'That class name already exists - please choose another');
define("UCSLAN_64", 'completed');
define("UCSLAN_65", 'Flatten user class hierarchy: ');
define("UCSLAN_66", 'Confirm flatten user class hierarchy');
define("UCSLAN_67", 'Confirm set default user class hierarchy');
define("UCSLAN_68", 'Class Icon');
define("UCSLAN_69", 'Optional icon associated with class - directory ');
define("UCSLAN_70", 'Rebuilding class hierarchy: ');
define("UCSLAN_71", 'User Class Maintenance');
define("UCSLAN_72", 'Rebuild class hierarchy ');
define('UCSLAN_73', '(This may be required if database corruption occurs)');
define('UCSLAN_74', 'Administrators and Moderators');
define('UCSLAN_75', 'Registered and logged in members');
define('UCSLAN_76', 'Site Administrators');
define('UCSLAN_77', 'Main site Administrators');
define('UCSLAN_78', 'Moderators for Forums and other areas');
define('UCSLAN_79', 'Class Type');
define('UCSLAN_80', 'Standard');
define('UCSLAN_81', 'Group');
define('UCSLAN_82', 'A group brings together a number of individual classes');
define('UCSLAN_83', 'Classes in group');
define('UCSLAN_84', ' (Group)');
define('UCSLAN_85', 'You have assigned all available classes; please reassign one which is not in use');
define('UCSLAN_86', 'Some settings not allowed for admin classes - they have been set to defaults. ');
define('UCSLAN_87', 'Recently joined users');
define('UCSLAN_88', 'Identified search bots');
define('UCSLAN_89', 'Checked classes are members of the group');
define('UCSLAN_90', 'You can\'t edit system user classes!');
define('UCSLAN_91', '');
define("UCSLAN_UPDATE", 'Update');
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system - Language File.
|
| $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_userclass2.php,v $
| $Revision$
| $Date$
| $Author$
+----------------------------------------------------------------------------+
*/
//define("UCSLAN_1", "Cleared all users from class.");
//define("UCSLAN_2", "Class users updated.");
define("UCSLAN_3", 'Class deleted.');
// define("UCSLAN_4", "Please tick the confirm box to delete this user class"); currently not in use
define("UCSLAN_5", 'Class updated.');
define("UCSLAN_6", "Class saved to database.");
define("UCSLAN_7", "No user classes yet.");
define("UCSLAN_8", "Existing Classes");
define("UCSLAN_9", "No Icon");
define('UCSLAN_10', 'Class not deleted - it is a core class, or is used in the definition of another class, as either parent or edit class');
define("UCSLAN_11", "tick to confirm");
define("UCSLAN_12", "Class Name");
define("UCSLAN_13", "Class Description");
define("UCSLAN_14", "Update User Class");
define("UCSLAN_15", "Create New Class");
//define("UCSLAN_16", "Assign users to class");
//define("UCSLAN_17", "Remove");
define("UCSLAN_18", "Clear Class");
//define("UCSLAN_19", "Assign users to");
define("UCSLAN_20", "class");
//define("UCSLAN_21", "User Class Settings");
//define("UCSLAN_22", "Users - click to move ...");
//define("UCSLAN_23", "Users in this class ...");
define("UCSLAN_24", 'Class Manager');
define("UCSLAN_25", 'Create/Edit Classes');
define("UCSLAN_26", 'Class Membership');
define("UCSLAN_27", 'Debug Help');
//define("UCSLAN_28", 'Modify Class Membership');
define("UCSLAN_29", 'That class must not be deleted');
define("UCSLAN_30", 'Short name displayed in selectors');
define("UCSLAN_31", 'Information about applicability of class');
define("UCSLAN_32", 'Users in this class can add/remove themselves from the class being edited');
define("UCSLAN_33", 'Determines which users can see this class in drop-down lists');
define("UCSLAN_34", 'Class Visibility');
define("UCSLAN_35", 'Class Parent');
define("UCSLAN_36", 'If the top of the tree is \'No One\', permissions increase towards the top of the tree<br />If the top of the tree is \'Everyone\', permissions increase as you go down the tree');
define("UCSLAN_37", 'You must enter a name for the class');
define("UCSLAN_38", 'Initial User Class');
define("UCSLAN_39", 'No classes which can be set');
define("UCSLAN_40", 'Set initial classes');
define("UCSLAN_41", 'Settings updated');
define("UCSLAN_42", 'Nothing changed - not updated');
define("UCSLAN_43", 'Existing classes: ');
define("UCSLAN_44", 'None');
define("UCSLAN_45", 'Point at which classes set:');
define("UCSLAN_46", '(ignored if no verification)');
define("UCSLAN_47", 'Initial Signup');
define("UCSLAN_48", 'Verification by email or admin');
define("UCSLAN_49", 'These classes are set for any newly signed up user - either immediately, or once their site membership has been verified');
define("UCSLAN_50", 'Options/Setup');
define("UCSLAN_51", 'User Class Functions');
define("UCSLAN_52", 'Setup Options');
define("UCSLAN_53", 'Caution! Only use these options if you understand what they do');
define("UCSLAN_54", 'Set a default user hierarchy');
define("UCSLAN_55", 'Clear the user hierarchy');
define("UCSLAN_56", "(this sets a 'flat' user class structure)");
define("UCSLAN_57", '(the hierarchy can be modified later)');
define("UCSLAN_58", 'Execute');
define("UCSLAN_59", 'Enable admin logging of user class edits');
define("UCSLAN_60", 'User Class Configuration options');
define("UCSLAN_61", 'User class setup');
define("UCSLAN_62", 'Create default class tree: ');
define("UCSLAN_63", 'That class name already exists - please choose another');
define("UCSLAN_64", 'completed');
define("UCSLAN_65", 'Flatten user class hierarchy: ');
define("UCSLAN_66", 'Confirm flatten user class hierarchy');
define("UCSLAN_67", 'Confirm set default user class hierarchy');
define("UCSLAN_68", 'Class Icon');
define("UCSLAN_69", 'Optional icon associated with class - directory ');
define("UCSLAN_70", 'Rebuilding class hierarchy: ');
define("UCSLAN_71", 'User Class Maintenance');
define("UCSLAN_72", 'Rebuild class hierarchy ');
define('UCSLAN_73', '(This may be required if database corruption occurs)');
define('UCSLAN_74', 'Administrators and Moderators');
define('UCSLAN_75', 'Registered and logged in members');
define('UCSLAN_76', 'Site Administrators');
define('UCSLAN_77', 'Main site Administrators');
define('UCSLAN_78', 'Moderators for Forums and other areas');
define('UCSLAN_79', 'Class Type');
define('UCSLAN_80', 'Standard');
define('UCSLAN_81', 'Group');
define('UCSLAN_82', 'A group brings together a number of individual classes');
define('UCSLAN_83', 'Classes in group');
define('UCSLAN_84', ' (Group)');
define('UCSLAN_85', 'You have assigned all available classes; please reassign one which is not in use');
define('UCSLAN_86', 'Some settings not allowed for admin classes - they have been set to defaults. ');
define('UCSLAN_87', 'Recently joined users');
define('UCSLAN_88', 'Identified search bots');
define('UCSLAN_89', 'Checked classes are members of the group');
define('UCSLAN_90', 'You can\'t edit certain system user classes!');
define('UCSLAN_91', '');
define("UCSLAN_UPDATE", 'Update');
?>