1
0

smartified serendipity_guessInput

This commit is contained in:
onli
2013-06-06 19:19:10 +02:00
parent 6447659882
commit 357285a579
2 changed files with 70 additions and 55 deletions

View File

@@ -390,84 +390,51 @@ function serendipity_replaceEmbeddedConfigVars ($s) {
*/
function serendipity_guessInput($type, $name, $value='', $default='') {
global $serendipity;
$output = "";
$data = array();
$curOptions = array();
switch ($type) {
case 'bool':
$value = serendipity_get_bool($value);
if ($value === null) {
$value = $default;
}
$output .= '<div class="form_radio">';
$output .= '<input class="input_radio" id="radio_cfg_' . $name . '_yes" type="radio" name="' . $name . '" value="true" ';
$output .= (($value == true) ? 'checked="checked"' : ''). ' />
<label for="radio_cfg_' . $name . '_yes"> ' . YES . '</label>';
$output .= '</div>';
$output .= '<div class="form_radio">';
$output .= '<input class="input_radio" id="radio_cfg_' . $name . '_no" type="radio" name="' . $name . '" value="false" ';
$output .= (($value == true) ? '' : 'checked="checked"'). ' />
<label for="radio_cfg_' . $name . '_no"> ' . NO . '</label>';
$output .= '</div>';
break;
case 'fullprotected':
$output .= '<input autocomplete="off" class="input_textbox" type="password" size="30" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
break;
case 'protected':
$output .= '<input class="input_textbox" type="password" size="30" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
break;
case 'multilist':
$output .= '<select name="'. $name .'[]" multiple="multiple" size="5">';
foreach ((array)$default as $k => $v) {
$default = (array)$default;
$value = (array)$value;
foreach ($default as $k => $v) {
$selected = false;
foreach((array)$value AS $vk => $vv) {
foreach($value AS $vk => $vv) {
if ($vv['confkey'] == $v['confkey']) {
$selected = true;
}
}
$output .= sprintf('<option value="%s"%s>%s</option>'. "\n",
$v['confkey'],
($selected ? ' selected="selected"' : ''),
$v['confvalue']);
$curOptions[$name][$k]['selected'] = $selected;
}
$output .= '</select>';
break;
case 'list':
$output .= '<select name="'. $name .'">';
$cval = (string)$value;
foreach ((array)$default as $k => $v) {
$default = (array)$default;
foreach ($default as $k => $v) {
$selected = ((string)$k == (string)$value);
if (empty($cval) && ((string)$k === 'false' || (string)$k === null)) {
$selected = true;
}
$output .= sprintf('<option value="%s"%s>%s</option>'. "\n",
$k,
($selected ? ' selected="selected"' : ''),
$v);
$curOptions[$name][$k]['selected'] = $selected;
}
$output .= '</select>';
break;
case 'file':
$output .= '<input class="input_file" type="file" size="30" name="' . $name . '" />';
break;
case 'textarea':
$output .= '<textarea rows="5" cols="40" name="' . $name . '">' . htmlspecialchars($value) . '</textarea>';
break;
default:
$output .= '<input class="input_textbox" type="text" size="30" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
break;
}
return $output;
$data['type'] = $type;
$data['name'] = $name;
$data['value'] = $value;
$data['default'] = $default;
$data['selected'] = $curOptions;
return serendipity_smarty_show('admin/guess_input.tpl', $data);
}
/**
@@ -489,10 +456,8 @@ function serendipity_printConfigTemplate($config, $from = false, $noForm = false
$data['formToken'] = serendipity_setFormToken();
$data['allowToggle'] = $allowToggle;
$el_count = -1;
foreach ($config as &$category) {
$el_count++;
foreach ($category['items'] as &$item) {
$value = $from[$item['var']];

View File

@@ -0,0 +1,50 @@
{if $type == 'bool'}
<div class="form_radio">
<input class="input_radio" id="radio_cfg_{$name}_yes" type="radio" name="{$name}" value="true"
{if $value == true} checked="checked" {/if}
/>
<label for="radio_cfg_{$name}_yes">{$CONST.YES}</label>
</div>
<div class="form_radio">
<input class="input_radio" id="radio_cfg_{$name}_no" type="radio" name="{$name}" value="false"
{if NOT $value == true} checked="checked" {/if}
/>
<label for="radio_cfg_{$name}_no">{$CONST.NO}</label>
</div>
{elseif $type == 'fullprotected'}
<input autocomplete="off" class="input_textbox" type="password" size="30" name="{$name}" value="{$value|escape:"html"}" />
{elseif $type == 'protected'}
<input class="input_textbox" type="password" size="30" name="{$name}" value="{$value|escape:"html"}" />
{elseif $type == 'multilist'}
<select name="{$name}[]" multiple="multiple" size="5">';
{foreach $default as $k => $v}
<option value="{$v.confkey}" {if $selected.$name.$k.selected} selected="selected" {/if} >
{$v.confvalue}
</option>
{/foreach}
</select>
{elseif $type == 'list'}
<select name="{$name}">
{foreach $default as $k => $v}
<option value="{$k}" {if $selected.$name.$k.selected} selected="selected" {/if} >
{$v}
</option>
{/foreach}
</select>
{elseif $type == 'file'}
<input class="input_file" type="file" size="30" name="{$name}" />
{elseif $type == 'textarea'}
<textarea rows="5" cols="40" name="{$name}">{$value|escape:"html"}</textarea>
{else}
<input class="input_textbox" type="text" size="30" name="{$name}" value="{$value|escape:"html"}" />
{/if}