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

Adding checkboxes as an option for extended user fields - non-functional - work in progress.

This commit is contained in:
CaMer0n 2009-08-06 20:29:58 +00:00
parent f58c4bfeb8
commit 7aceb3eb7c

View File

@ -11,9 +11,9 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/user_extended_class.php,v $
| $Revision: 1.23 $
| $Date: 2009-04-23 19:13:18 $
| $Author: e107steved $
| $Revision: 1.24 $
| $Date: 2009-08-06 20:29:58 $
| $Author: e107coders $
+----------------------------------------------------------------------------+
*/
@ -50,6 +50,7 @@ class e107_user_extended
define('EUF_DATE',7);
define('EUF_LANGUAGE',8);
define('EUF_PREDEFINED',9);
define('EUF_CHECKBOX',10);
$this->typeArray = array(
'text' => 1,
@ -60,7 +61,8 @@ class e107_user_extended
'integer' => 6,
'date' => 7,
'language' => 8,
'list' => 9
'list' => 9,
'checkbox' => 10
);
$this->user_extended_types = array(
@ -72,7 +74,8 @@ class e107_user_extended
6 => UE_LAN_6,
7 => UE_LAN_7,
8 => UE_LAN_8,
9 => UE_LAN_9
9 => UE_LAN_9,
10=> UE_LAN_10
);
//load array with field names from main user table, so we can disallow these
@ -117,6 +120,7 @@ class e107_user_extended
case EUF_DATE :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
case EUF_CHECKBOX :
$target['_FIELD_TYPES'][$k] = 'todb';
break;
case EUF_RADIO :
@ -148,6 +152,7 @@ class e107_user_extended
case EUF_DATE :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
$target['data'][$f] = $this->fieldDefinitions[$k]['user_extended_struct_default'];
$target['_FIELD_TYPES'][$f] = 'todb';
break;
@ -156,6 +161,10 @@ class e107_user_extended
$target['data'][$f] = $this->fieldDefinitions[$k]['user_extended_struct_default'];
$target['_FIELD_TYPES'][$f] = 'int';
break;
case EUF_CHECKBOX :
$target['data'][$f] = $this->fieldDefinitions[$k]['user_extended_struct_default'];
$target['_FIELD_TYPES'][$f] = 'array';
break;
}
}
}
@ -205,7 +214,7 @@ class e107_user_extended
if (isset($inArray[$f]) || ($isSignup && ($defs['user_extended_struct_required'] == 1)))
{ // Only allow valid keys
$val = varset($inArray[$f], FALSE);
$err = $this->user_extended_validate_entry($val, $defs);
$err = $this->user_extended_validate_entry($val, $defs);
if ($err === true)
{ // General error - usually empty field; could be unacceptable value, or regex fail and no error message defined
$eufVals['errortext'][$f] = str_replace('--SOMETHING--',$tp->toHtml($defs['user_extended_struct_text'],FALSE,'defs'),LAN_USER_75);
@ -213,8 +222,8 @@ class e107_user_extended
}
elseif ($err)
{ // Specific error message returned - usually regex fail
$eufVals['errortext'][$f] = $err;
$eufVals['errors'][$f] = ERR_GENERIC;
$eufVals['errortext'][$f] = $err;
$eufVals['errors'][$f] = ERR_GENERIC;
}
elseif (!$err)
{
@ -232,6 +241,7 @@ class e107_user_extended
$hidden_fields = "^".$hidden_fields."^";
}
$eufVals['data']['user_hidden_fields'] = $hidden_fields;
return $eufVals;
}
@ -314,6 +324,7 @@ class e107_user_extended
case EUF_DB_FIELD :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
case EUF_CHECKBOX :
$db_type = 'VARCHAR(255)';
break;
@ -481,6 +492,25 @@ class e107_user_extended
return $ret;
break;
case EUF_CHECKBOX : //checkboxes
foreach($choices as $choice)
{
$choice = trim($choice);
if(strpos($choice,"|")!==FALSE)
{
list($val,$label) = explode("|",$choice);
}
else
{
$val = $choice;
$label = $choice;
}
$chk = ($curval == $val)? " checked='checked' " : "";
$ret .= "<input {$include} type='checkbox' name='{$fname}[]' value='{$val}' {$chk} /> {$label}<br />";
}
return $ret;
break;
case EUF_DROPDOWN : //dropdown
$ret = "<select {$include} name='{$fname}'>\n";
$ret .= "<option value=''>&nbsp;</option>\n"; // ensures that the user chose it.