Take values as parameter when editing something

Signed-off-by: Roman Schmerold (BNoiZe) <bnoize@froxlor.org>
This commit is contained in:
Roman Schmerold (BNoiZe)
2015-02-02 19:13:52 +01:00
parent 609bd557c5
commit 72ce20224d
7 changed files with 87 additions and 186 deletions

View File

@@ -26,10 +26,10 @@ class HTMLform2 {
* @access public
* @static
* @param array $formdata (default: array())
* @param int $newForm (default: 0)
* @param array $data (default: array())
* @return void
*/
public static function genHTMLform($formdata = array(), $newForm = false) {
public static function genHTMLform($formdata = array(), $data = array()) {
global $lng, $theme;
self::$_form = '';
@@ -47,25 +47,20 @@ class HTMLform2 {
if (isset($fielddata['visible'])) {
if ($fielddata['visible'] == false) {
continue;
} elseif ($fielddata['visible'] === 'new' && $newForm == false) {
} elseif ($fielddata['visible'] === 'new' && !empty($data)) {
continue;
} elseif ($fielddata['visible'] === 'edit' && $newForm == true) {
} elseif ($fielddata['visible'] === 'edit' && empty($data)) {
continue;
}
}
// Set value to default val if new form
if ($newForm) {
$fielddata = self::_checkForValue($fielddata);
// Set value if given
if (!empty($data)) {
$fielddata = self::_setValue($fieldname, $fielddata, $data);
}
$field = self::_parseDataField($fieldname, $fielddata);
// Addons
foreach ($fielddata['addons'] as $addonname => $addondata) {
$field .= self::_parseDataField($addonname, $addondata);
}
$label = $fielddata['label'] . self::_getMandatoryFlag($fielddata);
if (isset($fielddata['desc']) && $fielddata['desc'] != "") {
$desc = $fielddata['desc'];
@@ -82,29 +77,19 @@ class HTMLform2 {
return self::$_form;
}
private static function _checkForValue($fielddata) {
switch($fielddata['type']) {
case 'checkbox':
if (isset($fielddata['default'])) {
$fielddata['attributes']['checked'] = $fielddata['default'];
} else {
$fielddata['attributes']['checked'] = false;
}
break;
case 'select':
if (isset($fielddata['default'])) {
$fielddata['selected'] = $fielddata['default'];
} else {
unset($fielddata['selected']);
}
break;
default:
if (isset($fielddata['default'])) {
$fielddata['value'] = $fielddata['default'];
} else {
unset($fielddata['value']);
}
break;
private static function _setValue($fieldname, $fielddata, $data) {
if (isset($data[$fieldname])) {
switch($fielddata['type']) {
case 'checkbox':
$fielddata['attributes']['checked'] = ($data[$fieldname] == 1) ? true : false;
break;
case 'select':
$fielddata['selected'] = $data[$fieldname];
break;
default:
$fielddata['value'] = $data[$fieldname];
break;
}
}
return $fielddata;
@@ -399,8 +384,8 @@ class HTMLform2 {
$attributes = self::_parseAttributes($fieldname, $fielddata);
unset($attributes['value']);
$attributes = self::_glueAttributes($attributes);
$value = $fielddata['value'];
$value = isset($fielddata['value']) ? $fielddata['value'] : "";
eval("\$return = \"" . getTemplate("htmlform/textarea", "1") . "\";");
return $return;
}