mirror of
https://github.com/e107inc/e107.git
synced 2025-08-06 14:46:56 +02:00
Admin > Users would only allow viewing of one user extended-field in list mode under some circumstances. Checkbox field-type corrected.
This commit is contained in:
@@ -350,22 +350,23 @@ class users_admin_ui extends e_admin_ui
|
||||
|
||||
// Extended fields - FIXME - better field types
|
||||
|
||||
if($sql->select('user_extended_struct', '*', "user_extended_struct_type > 0 AND user_extended_struct_text != '_system_' ORDER BY user_extended_struct_parent ASC"))
|
||||
if($rows = $sql->retrieve('user_extended_struct', '*', "user_extended_struct_type > 0 AND user_extended_struct_text != '_system_' ORDER BY user_extended_struct_parent ASC",true))
|
||||
{
|
||||
// TODO FIXME use the handler to build fields and field attributes
|
||||
// FIXME a way to load 3rd party language files for extended user fields
|
||||
e107::coreLan('user_extended');
|
||||
while ($row = $sql->fetch())
|
||||
foreach ($rows as $row)
|
||||
{
|
||||
$field = "user_".$row['user_extended_struct_name'];
|
||||
// $title = ucfirst(str_replace("user_","",$field));
|
||||
$label = $tp->toHtml($row['user_extended_struct_text'],false,'defs');
|
||||
$this->fields[$field] = array('title' => $label,'width' => 'auto', 'type'=>'method', 'method'=>'user_extended', 'data'=>false, 'tab'=>1, 'noedit'=>false);
|
||||
$this->fields[$field] = array('title' => $label,'width' => 'auto', 'type'=>'method', 'readParms'=>array('ueType'=>$row['user_extended_struct_type']), 'method'=>'user_extended', 'data'=>false, 'tab'=>1, 'noedit'=>false);
|
||||
|
||||
$this->extended[] = $field;
|
||||
$this->extendedData[$field] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
$this->fields['user_signature']['writeParms']['data'] = e107::getUserClass()->uc_required_class_list("classes");
|
||||
|
||||
$this->fields['user_signature'] = array('title' => LAN_USER_09, 'type' => 'textarea', 'data'=>'str', 'width' => 'auto');
|
||||
@@ -2315,6 +2316,13 @@ class users_admin_form_ui extends e_admin_form_ui
|
||||
{
|
||||
$field = $att['field'];
|
||||
$data = $this->getController()->getListModel()->get($field); // ($att['field']);
|
||||
|
||||
|
||||
return e107::getUserExt()->renderValue($data, $att['ueType']);
|
||||
|
||||
return print_a($att,true);
|
||||
|
||||
|
||||
return $data;
|
||||
|
||||
}
|
||||
|
@@ -570,6 +570,12 @@ if (isset($_POST['add_field']))
|
||||
{
|
||||
$_POST['user_values'] = array($_POST['table_db'],$_POST['field_id'],$_POST['field_value'],$_POST['field_order']);
|
||||
}
|
||||
|
||||
if(!empty($_POST['sort_user_values']))
|
||||
{
|
||||
sort($_POST['user_values']);
|
||||
}
|
||||
|
||||
$new_values = $user->make_delimited($_POST['user_values']);
|
||||
$new_parms = $tp->toDB($_POST['user_include']."^,^".$_POST['user_regex']."^,^".$_POST['user_regexfail']."^,^".$_POST['user_hide']);
|
||||
|
||||
@@ -611,6 +617,12 @@ if (isset($_POST['update_field']))
|
||||
{
|
||||
$_POST['user_values'] = array($_POST['table_db'],$_POST['field_id'],$_POST['field_value'],$_POST['field_order']);
|
||||
}
|
||||
|
||||
if(!empty($_POST['sort_user_values']))
|
||||
{
|
||||
sort($_POST['user_values']);
|
||||
}
|
||||
|
||||
$upd_values = $user->make_delimited($_POST['user_values']);
|
||||
$upd_parms = $tp->toDB($_POST['user_include']."^,^".$_POST['user_regex']."^,^".$_POST['user_regexfail']."^,^".$_POST['user_hide']);
|
||||
$result = $mes->addAuto($ue->user_extended_modify($sub_action, $tp->toDB($_POST['user_field']), $tp->toDB($_POST['user_text']), intval($_POST['user_type']), $upd_parms, $upd_values, $tp->toDB($_POST['user_default']), intval($_POST['user_required']), intval($_POST['user_read']), intval($_POST['user_write']), intval($_POST['user_applicable']), intval($_POST['user_parent'])), 'update', EXTLAN_29, false, false);
|
||||
@@ -1071,7 +1083,12 @@ class users_ext
|
||||
$text .= "
|
||||
</div>
|
||||
<input type='button' class='btn btn-primary' value='".EXTLAN_48."' onclick=\"duplicateHTML('value_line','value_container');\" />
|
||||
<br /><span class='field-help'>".EXTLAN_17."</span></div>";
|
||||
<br /><span class='field-help'>".EXTLAN_17."</span>
|
||||
|
||||
|
||||
<div style='margin-top:10px'>".$frm->checkbox('sort_user_values',1, false, "Sort values")."</div>
|
||||
|
||||
</div>";
|
||||
// End of Values. --------------------------------------
|
||||
|
||||
|
||||
|
@@ -144,6 +144,29 @@
|
||||
$uVal = str_replace(chr(1), '', $udata['user_'.$parms[0]]);
|
||||
switch ($ueStruct["user_".$parms[0]]['user_extended_struct_type'])
|
||||
{
|
||||
|
||||
case EUF_CHECKBOX:
|
||||
|
||||
$uVal = e107::unserialize($uVal);
|
||||
|
||||
if(!empty($uVal))
|
||||
{
|
||||
return implode(', ',$uVal);
|
||||
|
||||
/*
|
||||
$text = '<ul>';
|
||||
foreach($uVal as $v)
|
||||
{
|
||||
$text .= "<li>".$v."</li>";
|
||||
|
||||
}
|
||||
$text .= "</ul>";
|
||||
$ret_data = $text;*/
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case EUF_DB_FIELD : // check for db_lookup type
|
||||
$tmp = explode(',',$ueStruct['user_'.$parms[0]]['user_extended_struct_values']);
|
||||
$sql_ue = new db; // Use our own DB object to avoid conflicts
|
||||
|
@@ -772,7 +772,10 @@ class e107_user_extended
|
||||
case EUF_CHECKBOX : //checkboxes
|
||||
|
||||
// print_a($choices);
|
||||
$curval = e107::unserialize($curval);
|
||||
if(!is_array($curval))
|
||||
{
|
||||
$curval = e107::unserialize($curval);
|
||||
}
|
||||
|
||||
return e107::getForm()->checkboxes($fname.'[]',$choices, $curval, array('useLabelValues'=>1));
|
||||
/*
|
||||
@@ -1108,5 +1111,54 @@ class e107_user_extended
|
||||
return $temp->getValue($value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render Extended User Field Data in a read-only fashion.
|
||||
* @param $value
|
||||
* @param $type
|
||||
* @return array|string
|
||||
*/
|
||||
function renderValue($value, $type)
|
||||
{
|
||||
|
||||
//TODO FIXME Add more types.
|
||||
|
||||
switch($type)
|
||||
{
|
||||
case EUF_CHECKBOX:
|
||||
$value = e107::unserialize($value);
|
||||
|
||||
if(!empty($value))
|
||||
{
|
||||
|
||||
sort($value);
|
||||
return implode('<br />',$value);
|
||||
|
||||
/*
|
||||
$text = '<ul>';
|
||||
foreach($uVal as $v)
|
||||
{
|
||||
$text .= "<li>".$v."</li>";
|
||||
|
||||
}
|
||||
$text .= "</ul>";
|
||||
$ret_data = $text;*/
|
||||
}
|
||||
break;
|
||||
|
||||
case EUF_DATE : //check for 0000-00-00 in date field
|
||||
if($value == '0000-00-00') { $value = ''; }
|
||||
return $value;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
return $value;
|
||||
// code to be executed if n is different from all labels;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
@@ -130,6 +130,22 @@ img.featurebox { border-radius: 5px }
|
||||
#login-template .logo { padding-top:50px; margin-left:auto; margin-right: auto }
|
||||
|
||||
.modal-lg { width: 70% }
|
||||
|
||||
|
||||
table label.checkbox {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* CUSTOM Responsive Styles */
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user