1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-17 03:54:09 +02:00

Correct inline editing of userclasses in Admin -> Users and re-ordered userclasses in Admin -> Userclasses. autocomplete nowswitched off in usersettings.php

This commit is contained in:
Cameron
2015-05-15 13:07:26 -07:00
parent fc4f9dc712
commit 2b436ded30
5 changed files with 37 additions and 17 deletions

View File

@@ -3354,24 +3354,35 @@ class e_form
break;
case 'userclasses':
// return $value;
$classes = explode(',', $value);
$uv = array();
foreach ($classes as $cid)
{
$uv[] = $this->_uc->uc_get_classname($cid);
if(!empty($parms['defaultLabel']) && $cid === '')
{
$uv[] = $parms['defaultLabel'];
continue;
}
$uv[] = $this->_uc->getName($cid);
}
$dispvalue = implode(vartrue($parms['separator'],"<br />"), $uv);
// Inline Editing.
if(!vartrue($attributes['noedit']) && vartrue($parms['editable']) && !vartrue($parms['link'])) // avoid bad markup, better solution coming up
{
$mode = preg_replace('/[^\w]/', '', vartrue($_GET['mode'], ''));
$optlist = $parm['xxxxx']; // XXX TODO - add param for choice of class list options below.
$array = e107::getUserClass()->uc_required_class_list('nobody,admin,main,public,classes'); //XXX Ugly looking (non-standard) function naming - TODO discuss name change.
$source = str_replace('"',"'",json_encode($array, JSON_FORCE_OBJECT));
$uc_options = vartrue($parms['classlist'], 'public,guest, nobody,member,admin,main,classes'); // defaults to 'public,guest,nobody,member,classes' (userclass handler)
$array = e107::getUserClass()->uc_required_class_list($uc_options); //XXX Ugly looking (non-standard) function naming - TODO discuss name change.
//$mode = preg_replace('/[^\w]/', '', vartrue($_GET['mode'], ''));
$mode = $tp->filter(vartrue($_GET['mode'], ''),'w');
$source = str_replace('"',"'",json_encode($array, JSON_FORCE_OBJECT));
//NOTE Leading ',' required on $value; so it picks up existing value.
$value = "<a class='e-tip e-editable editable-click' data-placement='bottom' data-value=',".$value."' data-name='".$field."' data-source=\"".$source."\" title=\"".LAN_EDIT." ".$attributes['title']."\" data-type='checklist' data-pk='".$id."' data-url='".e_SELF."?mode={$mode}&amp;action=inline&amp;id={$id}&amp;ajax_used=1' href='#'>".$dispvalue."</a>";
}
@@ -3379,8 +3390,8 @@ class e_form
{
$value = $dispvalue;
}
unset($parms['classlist']);
break;
@@ -3968,6 +3979,7 @@ class e_form
case 'userclasses':
$uc_options = vartrue($parms['classlist'], 'public,guest,nobody,member,admin,main,classes'); // defaults to 'public,guest,nobody,member,classes' (userclass handler)
unset($parms['classlist']);
// $method = ($attributes['type'] == 'userclass') ? 'uc_select' : 'uc_select';
if(vartrue($attributes['type']) == 'userclasses'){ $parms['multiple'] = true; }
$ret = vartrue($parms['pre']).$this->uc_select($key, $value, $uc_options, vartrue($parms, array())). vartrue($parms['post']);