mirror of
https://github.com/e107inc/e107.git
synced 2025-08-02 04:40:44 +02:00
Userclass fixes. Now clears userclass cache after changes in admin are made.
This commit is contained in:
@@ -408,7 +408,7 @@ class frontpage
|
|||||||
|
|
||||||
foreach($fp_settings as $order => $current_value)
|
foreach($fp_settings as $order => $current_value)
|
||||||
{
|
{
|
||||||
$title = e107::getUserClass()->uc_get_classname($current_value['class']);
|
$title = e107::getUserClass()->getName($current_value['class']);
|
||||||
$text .= "
|
$text .= "
|
||||||
<tr>
|
<tr>
|
||||||
<td class='left'>".$order."</td>
|
<td class='left'>".$order."</td>
|
||||||
|
@@ -142,7 +142,7 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
|
|||||||
|
|
||||||
public function afterCreate($new_data, $old_data, $id)
|
public function afterCreate($new_data, $old_data, $id)
|
||||||
{
|
{
|
||||||
// do something
|
e107::getUserClass()->clearCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function beforeUpdate($new_data, $old_data, $id)
|
public function beforeUpdate($new_data, $old_data, $id)
|
||||||
@@ -152,9 +152,15 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
|
|||||||
|
|
||||||
public function afterUpdate($new_data, $old_data, $id)
|
public function afterUpdate($new_data, $old_data, $id)
|
||||||
{
|
{
|
||||||
// e107::getCache()->clear("wmessage");
|
e107::getUserClass()->clearCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function afterDelete($data,$id)
|
||||||
|
{
|
||||||
|
e107::getUserClass()->clearCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function onCreateError($new_data, $old_data)
|
public function onCreateError($new_data, $old_data)
|
||||||
{
|
{
|
||||||
// do something
|
// do something
|
||||||
@@ -172,7 +178,7 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
|
|||||||
$e_userclass->calc_tree();
|
$e_userclass->calc_tree();
|
||||||
$text = "<div id='userclass-tree-structure'>".$e_userclass->show_graphical_tree()."</div>";
|
$text = "<div id='userclass-tree-structure'>".$e_userclass->show_graphical_tree()."</div>";
|
||||||
|
|
||||||
return array('caption'=>'Class Structure', 'text' => $text);
|
return array('caption'=>'Class Structure', 'text' => $text); //TODO LAN
|
||||||
|
|
||||||
// $text .= $e_userclass->show_graphical_tree();
|
// $text .= $e_userclass->show_graphical_tree();
|
||||||
}
|
}
|
||||||
@@ -326,7 +332,7 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE);
|
|||||||
|
|
||||||
foreach ($irc as $i)
|
foreach ($irc as $i)
|
||||||
{
|
{
|
||||||
if (trim($i)) $icn[] = e107::getUserClass()->uc_get_classname($i);
|
if (trim($i)) $icn[] = e107::getUserClass()->getName($i);
|
||||||
}
|
}
|
||||||
|
|
||||||
$class_text = $frm->userclass('init_classes',$initial_classes, 'checkbox', 'classes,force');
|
$class_text = $frm->userclass('init_classes',$initial_classes, 'checkbox', 'classes,force');
|
||||||
|
@@ -313,7 +313,7 @@ class signup_shortcodes extends e_shortcode
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
$ret = $USERCLASS_SUBSCRIBE_START;
|
$ret = $USERCLASS_SUBSCRIBE_START;
|
||||||
$ret .= $e_userclass->vetted_tree('class',array($this,show_signup_class),varset($signupData['user_class'],''),'editable, no-excludes');
|
$ret .= $e_userclass->vetted_tree('class',array($this,'show_signup_class'),varset($signupData['user_class'],''),'editable, no-excludes');
|
||||||
$ret .= $USERCLASS_SUBSCRIBE_END;
|
$ret .= $USERCLASS_SUBSCRIBE_END;
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
@@ -321,12 +321,43 @@ class signup_shortcodes extends e_shortcode
|
|||||||
|
|
||||||
function show_signup_class($treename, $classnum, $current_value, $nest_level)
|
function show_signup_class($treename, $classnum, $current_value, $nest_level)
|
||||||
{
|
{
|
||||||
global $USERCLASS_SUBSCRIBE_ROW, $e_userclass, $tp;
|
$tp = e107::getParser();
|
||||||
|
$uc = e107::getUserClass();
|
||||||
|
$frm = e107::getForm();
|
||||||
|
|
||||||
|
if(deftrue('BOOTSTRAP'))
|
||||||
|
{
|
||||||
|
|
||||||
|
$text = "<div class='checkbox'>";
|
||||||
|
$label = $tp->toHTML($uc->getName($classnum),false, 'defs');
|
||||||
|
$diz = $tp->toHTML($uc->getDescription($classnum),false,'defs');
|
||||||
|
$text .= $frm->checkbox('class[]', $classnum, $current_value, array('label'=>$label,'title'=> $diz, 'class'=>'e-tip'));
|
||||||
|
|
||||||
|
$text .= "</div>";
|
||||||
|
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
global $USERCLASS_SUBSCRIBE_ROW;
|
||||||
|
|
||||||
|
|
||||||
$tmp = explode(',',$current_value);
|
$tmp = explode(',',$current_value);
|
||||||
$search = array('{USERCLASS_ID}', '{USERCLASS_NAME}', '{USERCLASS_DESCRIPTION}', '{USERCLASS_INDENT}', '{USERCLASS_CHECKED}');
|
|
||||||
$replace = array($classnum, $tp->toHTML($e_userclass->uc_get_classname($classnum), FALSE, 'defs'),
|
$shortcodes = array(
|
||||||
$tp->toHTML($e_userclass->uc_get_classdescription($classnum), FALSE, 'defs'), " style='text-indent:".(1.2*$nest_level)."em'",
|
'USERCLASS_ID' => $classnum,
|
||||||
( in_array($classnum, $tmp) ? " checked='checked'" : ''));
|
'USERCLASS_NAME' => $tp->toHTML($uc->getName($classnum),false, 'defs'),
|
||||||
|
'USERCLASS_DESCRIPTION' => $tp->toHTML($uc->getDescription($classnum),false,'defs'),
|
||||||
|
'USERCLASS_INDENT' => " style='text-indent:".(1.2*$nest_level)."em'",
|
||||||
|
'USERCLASS_CHECKED' => (in_array($classnum, $tmp) ? " checked='checked'" : '')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return $tp->simpleParse($USERCLASS_SUBSCRIBE_ROW, $shortcodes);
|
||||||
|
|
||||||
return str_replace($search, $replace, $USERCLASS_SUBSCRIBE_ROW);
|
return str_replace($search, $replace, $USERCLASS_SUBSCRIBE_ROW);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1299,6 +1299,7 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
$labelClass = (!empty($options['inline'])) ? 'checkbox-inline' : 'checkbox';
|
$labelClass = (!empty($options['inline'])) ? 'checkbox-inline' : 'checkbox';
|
||||||
|
$labelTitle = '';
|
||||||
|
|
||||||
$options = $this->format_options('checkbox', $name, $options);
|
$options = $this->format_options('checkbox', $name, $options);
|
||||||
|
|
||||||
@@ -1308,9 +1309,22 @@ class e_form
|
|||||||
|
|
||||||
$active = ($checked === true) ? " active" : ""; // allow for styling if needed.
|
$active = ($checked === true) ? " active" : ""; // allow for styling if needed.
|
||||||
|
|
||||||
|
if(!empty($options['label'])) // add attributes to <label>
|
||||||
|
{
|
||||||
|
if(!empty($options['title']))
|
||||||
|
{
|
||||||
|
$labelTitle = " title=\"".$options['title']."\"";
|
||||||
|
unset($options['title']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($options['class']))
|
||||||
|
{
|
||||||
|
$labelClass .= " ".$options['class'];
|
||||||
|
unset($options['class']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$pre = (vartrue($options['label'])) ? "<label class='".$labelClass.$active."'>" : ""; // Bootstrap compatible markup
|
$pre = (vartrue($options['label'])) ? "<label class='".$labelClass.$active."'{$labelTitle}>" : ""; // Bootstrap compatible markup
|
||||||
$post = (vartrue($options['label'])) ? $options['label']."</label>" : "";
|
$post = (vartrue($options['label'])) ? $options['label']."</label>" : "";
|
||||||
unset($options['label']); // not to be used as attribute;
|
unset($options['label']); // not to be used as attribute;
|
||||||
|
|
||||||
|
@@ -991,6 +991,69 @@ class e_user_model extends e_admin_model
|
|||||||
$this->_extended_model = null;
|
$this->_extended_model = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add userclass to user and save.
|
||||||
|
* @param null $userClassId
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function addClass($userClassId=null)
|
||||||
|
{
|
||||||
|
if(empty($userClassId))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$curClasses = explode(",", $this->getData('user_class'));
|
||||||
|
$curClasses[] = $userClassId;
|
||||||
|
$curClasses = array_unique($curClasses);
|
||||||
|
|
||||||
|
$insert = implode(",", $curClasses);
|
||||||
|
|
||||||
|
//FIXME - @SecretR - I'm missing something here with setCore() etc.
|
||||||
|
// $this->setCore('user_class',$insert );
|
||||||
|
// $this->saveDebug(false);
|
||||||
|
|
||||||
|
$uid = $this->getData('user_id');
|
||||||
|
|
||||||
|
return e107::getDb()->update('user',"user_class='".$insert."' WHERE user_id = ".$uid." LIMIT 1");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a userclass from the user.
|
||||||
|
* @param null $userClassId
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function removeClass($userClassId=null)
|
||||||
|
{
|
||||||
|
if(empty($userClassId))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$curClasses = explode(",", $this->getData('user_class'));
|
||||||
|
|
||||||
|
foreach($curClasses as $k=>$v)
|
||||||
|
{
|
||||||
|
if($v == $userClassId)
|
||||||
|
{
|
||||||
|
unset($curClasses[$k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$uid = $this->getData('user_id');
|
||||||
|
|
||||||
|
$insert = implode(",", $curClasses);
|
||||||
|
|
||||||
|
return e107::getDb()->update('user',"user_class='".$insert."' WHERE user_id = ".$uid." LIMIT 1");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO - add some more useful methods, sc_* methods support
|
// TODO - add some more useful methods, sc_* methods support
|
||||||
|
@@ -864,7 +864,7 @@ class user_class
|
|||||||
* @param integer $id - class number. A negative number indicates 'not a member of...'
|
* @param integer $id - class number. A negative number indicates 'not a member of...'
|
||||||
* @return string class name
|
* @return string class name
|
||||||
*/
|
*/
|
||||||
public function uc_get_classname($id)
|
public function getName($id)
|
||||||
{
|
{
|
||||||
$cn = abs($id);
|
$cn = abs($id);
|
||||||
$ucString = 'Class:'.$id; // Debugging aid - this should be overridden
|
$ucString = 'Class:'.$id; // Debugging aid - this should be overridden
|
||||||
@@ -889,13 +889,16 @@ class user_class
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return class description for given class ID
|
* Return class description for given class ID
|
||||||
* @param integer $id - class number. Must be >= 0
|
* @param integer $id - class number. Must be >= 0
|
||||||
* @return string class description
|
* @return string class description
|
||||||
*/
|
*/
|
||||||
public function uc_get_classdescription($id)
|
public function getDescription($id)
|
||||||
{
|
{
|
||||||
|
$id = intval($id);
|
||||||
|
|
||||||
if(isset($this->class_tree[$id]))
|
if(isset($this->class_tree[$id]))
|
||||||
{
|
{
|
||||||
return $this->class_tree[$id]['userclass_description'];
|
return $this->class_tree[$id]['userclass_description'];
|
||||||
@@ -909,6 +912,33 @@ class user_class
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BC Alias. of getName();
|
||||||
|
* @deprecated
|
||||||
|
* @param $id
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function uc_get_classname($id)
|
||||||
|
{
|
||||||
|
return $this->getName($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BC Alias of getDescription
|
||||||
|
* @deprecated
|
||||||
|
* @param $id
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function uc_get_classdescription($id)
|
||||||
|
{
|
||||||
|
return $this->getDescription($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return class icon for given class ID
|
* Return class icon for given class ID
|
||||||
* @param integer $id - class number. Must be >= 0
|
* @param integer $id - class number. Must be >= 0
|
||||||
@@ -1031,6 +1061,16 @@ class user_class
|
|||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear user class cache
|
||||||
|
* @return none
|
||||||
|
*/
|
||||||
|
public function clearCache()
|
||||||
|
{
|
||||||
|
e107::getCache()->clear_sys(UC_CACHE_TAG);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1881,8 +1921,7 @@ class user_class_admin extends user_class
|
|||||||
*/
|
*/
|
||||||
public function clearCache()
|
public function clearCache()
|
||||||
{
|
{
|
||||||
$e107 = e107::getInstance();
|
e107::getCache()->clear_sys(UC_CACHE_TAG);
|
||||||
$e107->ecache->clear_sys(UC_CACHE_TAG);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user