1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-04 13:47:31 +02:00

Fixes #974 - user extended fields were not using correct form element in admin area.

This commit is contained in:
Cameron
2015-04-24 00:13:09 -07:00
parent 1b16cadb47
commit 821922c31a
2 changed files with 81 additions and 23 deletions

View File

@@ -258,7 +258,15 @@ class users_admin_ui extends e_admin_ui
'user_new_period' => array('title' => USRLAN_190, 'type' => 'number', 'writeParms' => array('maxlength' => 3, 'post' => LANDT_04s), 'help' => USRLAN_191, 'data' => 'int',), 'user_new_period' => array('title' => USRLAN_190, 'type' => 'number', 'writeParms' => array('maxlength' => 3, 'post' => LANDT_04s), 'help' => USRLAN_191, 'data' => 'int',),
); );
protected $extended = array(); public $extended = array();
public $extendedData = array();
function getExtended()
{
return $this->extendedData;
}
function init() function init()
{ {
@@ -278,7 +286,7 @@ class users_admin_ui extends e_admin_ui
// Extended fields - FIXME - better field types // Extended fields - FIXME - better field types
if($sql->select('user_extended_struct', 'user_extended_struct_name,user_extended_struct_text', "user_extended_struct_type > 0 AND user_extended_struct_text != '_system_' ORDER BY user_extended_struct_parent ASC")) if($sql->select('user_extended_struct', '*', "user_extended_struct_type > 0 AND user_extended_struct_text != '_system_' ORDER BY user_extended_struct_parent ASC"))
{ {
// TODO FIXME use the handler to build fields and field attributes // TODO FIXME use the handler to build fields and field attributes
// FIXME a way to load 3rd party language files for extended user fields // FIXME a way to load 3rd party language files for extended user fields
@@ -286,11 +294,12 @@ class users_admin_ui extends e_admin_ui
while ($row = $sql->fetch()) while ($row = $sql->fetch())
{ {
$field = "user_".$row['user_extended_struct_name']; $field = "user_".$row['user_extended_struct_name'];
$title = ucfirst(str_replace("user_","",$field)); // $title = ucfirst(str_replace("user_","",$field));
$label = $tp->toHtml($row['user_extended_struct_text'],false,'defs'); $label = $tp->toHtml($row['user_extended_struct_text'],false,'defs');
$this->fields[$field] = array('title' => $label,'width' => 'auto', 'data'=>false,'type'=>'text', 'tab'=>1, 'noedit'=>false); $this->fields[$field] = array('title' => $label,'width' => 'auto', 'type'=>'method', 'method'=>'user_extended', 'data'=>false, 'tab'=>1, 'noedit'=>false);
$this->extended[] = $field; $this->extended[] = $field;
$this->extendedData[$field] = $row;
} }
} }
$this->fields['user_signature']['writeParms']['data'] = e107::getUserClass()->uc_required_class_list("classes"); $this->fields['user_signature']['writeParms']['data'] = e107::getUserClass()->uc_required_class_list("classes");
@@ -340,6 +349,8 @@ class users_admin_ui extends e_admin_ui
} }
protected function getAvatarList() protected function getAvatarList()
{ {
$avs = array(''=>LAN_NONE); $avs = array(''=>LAN_NONE);
@@ -384,11 +395,22 @@ class users_admin_ui extends e_admin_ui
} }
// Handle the Extended Fields. // Handle the Extended Fields.
$this->saveExtended($new_data);
return $new_data;
}
function saveExtended($new_data)
{
$update = array(); $update = array();
foreach($this->extended as $key) // Grab Extended field data. foreach($this->extended as $key) // Grab Extended field data.
{ {
$update[$key] = vartrue($new_data[$key],'_NULL_'); $update[$key] = vartrue($new_data['ue'][$key],'_NULL_');
} }
e107::getMessage()->addDebug(print_a($update,true)); e107::getMessage()->addDebug(print_a($update,true));
@@ -427,18 +449,15 @@ class users_admin_ui extends e_admin_ui
} }
else else
{ {
// e107::getMessage()->addSuccess('Extended Fields Updated'); //TODO Replace with Generic or existing LAN. // e107::getMessage()->addSuccess('Extended Fields Updated'); //TODO Replace with Generic or existing LAN.
} }
} }
} }
return $new_data;
} }
/** /**
* Unban user trigger * Unban user trigger
* @param int $userid * @param int $userid
@@ -456,8 +475,10 @@ class users_admin_ui extends e_admin_ui
return; return;
} }
$sql->db_Update("user", "user_ban='0' WHERE user_id='".$userid."' "); $row = e107::user($userid);
$sql->db_Delete("banlist"," banlist_ip='{$row['user_ip']}' ");
$sql->update("user", "user_ban='0' WHERE user_id='".$userid."' ");
$sql->delete("banlist"," banlist_ip='{$row['user_ip']}' ");
e107::getAdminLog()->log_event('USET_06', str_replace(array('--UID--', '--NAME--', '--EMAIL--'), array($sysuser->getId(), $sysuser->getName(), $sysuser->getValue('email')), USRLAN_162), E_LOG_INFORMATIVE); e107::getAdminLog()->log_event('USET_06', str_replace(array('--UID--', '--NAME--', '--EMAIL--'), array($sysuser->getId(), $sysuser->getName(), $sysuser->getValue('email')), USRLAN_162), E_LOG_INFORMATIVE);
e107::getMessage()->addSuccess("(".$sysuser->getId().".".$sysuser->getName()." - ".$sysuser->getValue('email').") ".USRLAN_9); e107::getMessage()->addSuccess("(".$sysuser->getId().".".$sysuser->getName()." - ".$sysuser->getValue('email').") ".USRLAN_9);
@@ -2042,6 +2063,36 @@ class users_admin_ui extends e_admin_ui
class users_admin_form_ui extends e_admin_form_ui class users_admin_form_ui extends e_admin_form_ui
{ {
function user_extended($curval,$mode, $att)
{
if($mode == 'read')
{
$field = $att['field'];
$data = $this->getController()->getListModel()->get($field); // ($att['field']);
return $data;
}
if($mode == 'write')
{
// e107::getUserExt()->user_extended_edit
// return 'hello';
$field = $att['field'];
$extData = $this->getController()->getExtended();
$extData[$field]['user_extended_struct_required'] = 0;
return e107::getUserExt()->user_extended_edit($extData[$field],$curval);
// return print_a($att,true);
}
}
function user_perms($curval,$mode) function user_perms($curval,$mode)
{ {
if($mode == 'read') if($mode == 'read')

View File

@@ -3493,10 +3493,12 @@ class e_form
$value = e107::unserialize($value); // (saved as array, return it as an array) $value = e107::unserialize($value); // (saved as array, return it as an array)
} }
$meth = (!empty($attributes['method'])) ? $attributes['method'] : $method;
if(method_exists($this,$method)) if(method_exists($this,$meth))
{ {
$value = call_user_func_array(array($this, $method), array($value, 'read', $parms)); $parms['field'] = $field;
$value = call_user_func_array(array($this, $meth), array($value, 'read', $parms));
} }
else else
{ {
@@ -3634,6 +3636,7 @@ class e_form
{ {
// return print_a($value,true); // return print_a($value,true);
$parms = vartrue($attributes['writeParms'], array()); $parms = vartrue($attributes['writeParms'], array());
$tp = e107::getParser(); $tp = e107::getParser();
if(is_string($parms)) parse_str($parms, $parms); if(is_string($parms)) parse_str($parms, $parms);
@@ -3749,6 +3752,7 @@ class e_form
break; break;
case 'tags': case 'tags':
$maxlength = vartrue($parms['maxlength'], 255);
$ret = vartrue($parms['pre']).$this->tags($key, $value, $maxlength, $parms).vartrue($parms['post']); // vartrue($parms['__options']) is limited. See 'required'=>true $ret = vartrue($parms['pre']).$this->tags($key, $value, $maxlength, $parms).vartrue($parms['post']); // vartrue($parms['__options']) is limited. See 'required'=>true
break; break;
@@ -4011,7 +4015,10 @@ class e_form
break; break;
case 'method': // Custom Function case 'method': // Custom Function
$ret = call_user_func_array(array($this, $key), array($value, 'write', $parms)); $meth = (!empty($attributes['method'])) ? $attributes['method'] : $key;
$parms['field'] = $key;
$ret = call_user_func_array(array($this, $meth), array($value, 'write', $parms));
break; break;
case 'upload': //TODO - from method case 'upload': //TODO - from method