1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-30 19:30:25 +02:00

PHP7 User-Extended Fix. Checkboxes now working correctly and saving as an array. Some BC fixes may be needed.

This commit is contained in:
Cameron
2016-03-21 19:15:20 -07:00
parent bf2db49dd1
commit 1d803612ab
5 changed files with 59 additions and 12 deletions

View File

@@ -358,13 +358,14 @@ if(E107_DEBUG_LEVEL > 0)
$text .= "<table style='width:70%;margin-left:0px'><tr><td>";
$text .= EXTLAN_62."</td><td style='70%'><select style='width:99%' class='tbox e-select' name='table_db' onchange=\"this.form.submit()\" >
<option value='' class='caption'>".EXTLAN_61."</option>\n";
$result = mysql_list_tables($mySQLdefaultdb);
while ($row2 = mysql_fetch_row($result))
$result = e107::getDb()->tables();
foreach($result as $row2)
{
$fld = str_replace(MPREFIX,"",$row2[0]);
$fld = $row2;
$selected = (varset($_POST['table_db'],'') == $fld || $curVals[0] == $fld) ? " selected='selected'" : "";
if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
// if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
{
$text .= "<option value=\"".$fld."\" $selected>".$fld."</option>\n";
}
@@ -1082,12 +1083,15 @@ class users_ext
$text .= "<table style='width:70%;margin-left:0px'><tr><td>";
$text .= EXTLAN_62."</td><td style='70%'><select style='width:99%' class='tbox e-select' name='table_db' onchange=\"this.form.submit()\" >
<option value='' class='caption'>".EXTLAN_61."</option>\n";
$result = mysql_list_tables($mySQLdefaultdb);
while ($row2 = mysql_fetch_row($result))
$result = e107::getDb()->tables();
foreach ($result as $row2)
{
$fld = str_replace(MPREFIX,"",$row2[0]);
// $fld = str_replace(MPREFIX,"",$row2[0]);
$fld = $row2;
$selected = (varset($_POST['table_db'],'') == $fld || $curVals[0] == $fld) ? " selected='selected'" : "";
if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
// if (MPREFIX!='' && strpos($row2[0], MPREFIX)!==FALSE)
{
$text .= "<option value=\"".$fld."\" $selected>".$fld."</option>\n";
}

View File

@@ -441,7 +441,12 @@ class e_array {
{
return false;
}
if(strpos($ArrayData,"0 => \'")!=false)
{
$ArrayData = stripslashes($ArrayData);
}
$data = "";
$ArrayData = '$data = '.$ArrayData.';';
@eval($ArrayData);

View File

@@ -1505,6 +1505,7 @@ class e_form
function checkboxes($name, $option_array, $checked, $options=array())
{
$name = (strpos($name, '[') === false) ? $name.'[]' : $name;
if(!is_array($checked)) $checked = explode(",",$checked);
$text = "";
@@ -1518,6 +1519,11 @@ class e_form
$key = $k;
$c = in_array($k, $checked) ? true : false;
}
elseif(!empty($options['useLabelValues']))
{
$key = $label;
$c = in_array($label, $checked) ? true : false;
}
else
{
$key = 1;

View File

@@ -55,3 +55,17 @@ if (!function_exists('json_encode'))
return $json->decode($json_obj);
}
}
// Fix for exim missing.
if(!function_exists('exif_imagetype'))
{
function exif_imagetype($filename)
{
if((list($width, $height, $type, $attr) = getimagesize( $filename ) ) !== false)
{
return $type;
}
return false;
}
}

View File

@@ -173,10 +173,15 @@ class e107_user_extended
case EUF_DATE :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
case EUF_CHECKBOX :
case EUF_RADIO :
$target['_FIELD_TYPES'][$k] = 'todb';
break;
case EUF_CHECKBOX :
$target['_FIELD_TYPES'][$k] = 'array';
break;
case EUF_INTEGER :
$target['_FIELD_TYPES'][$k] = 'int';
@@ -477,6 +482,7 @@ class e107_user_extended
break;
case EUF_TEXTAREA:
case EUF_CHECKBOX :
$db_type = 'TEXT';
break;
@@ -486,7 +492,7 @@ class e107_user_extended
case EUF_DB_FIELD :
case EUF_LANGUAGE :
case EUF_PREDEFINED :
case EUF_CHECKBOX :
$db_type = 'VARCHAR(255)';
break;
@@ -764,6 +770,13 @@ class e107_user_extended
break;
case EUF_CHECKBOX : //checkboxes
// print_a($choices);
$curval = e107::unserialize($curval);
return e107::getForm()->checkboxes($fname.'[]',$choices, $curval, array('useLabelValues'=>1));
/*
foreach($choices as $choice)
{
$choice = trim($choice);
@@ -785,7 +798,7 @@ class e107_user_extended
if(deftrue('BOOTSTRAP'))
{
$ret .= $frm->checkbox($fname,$val,($curval == $val),array('label'=>$label, 'required'=> $struct['user_extended_struct_required']));
$ret .= $frm->checkbox($fname.'[]',$val,($curval == $val), array('label'=>$label));
}
else
{
@@ -793,8 +806,13 @@ class e107_user_extended
$ret .= "<input {$include} type='checkbox' name='{$fname}[]' value='{$val}' {$chk} /> {$label}<br />";
}
}
return $ret;
*/
break;
case EUF_DROPDOWN : //dropdown