* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* parameters saved in /wiki.d/$pagename.prm
* values saved in /wiki.d/$pagename.val
*/
Markup('frminput','inline','/\\(:frm([a-z0-9]+)(\\s+.*)?:\\)/e',
"Keep(BFrmInput('$1',PSS('$2')))");
Markup('frmread','inline','/\\(:frd([a-z0-9]*)(\\s+.*)?:\\)/e',
"Keep(BFrmRead('$1',PSS('$2')))");
Markup('testp','inline','/\\(:testp:\\)/e', "Keep(\$_POST['testok'])");
$HandleActions['zform'] = 'Handlezform';
function BFrmInput($type, $MatchList) {
global $ScriptUrl, $WorkDir, $pagename;
static $mult, $Fields, $FieldIdx, $vals, $BFrmNmParms;
$args = ParseArgs($MatchList);
$name = $args[''][0];
if ($type!='op' and $type!='init') {
if ($mult!='') {
if ($mult=='select') $out = '
';
$mult='';
}
if ($type!='end') {
if (isset($BFrmNmParms) and $name!='')
foreach ($BFrmNmParms as $v) $Fields[$name][$v] = $args[$v];
if (isset($args['regex']))
$Fields[$name]['regex'] = $args['regex'];
if (isset($vals[$name])) $value = $vals[$name];
else if ($args['value']) $value = $args['value'];
if (isset($value)) $Fields[$name]['value'] = $value;
$Fields[$name]['type'] = $type;
}
}
if ($type == 'init') {
if ($args['param'])
foreach ($args['param'] as $v) $BFrmNmParms = $v;
$out = "
";
}
else {
if ($args['size']) $size = " size=".$args['size'];
if (isset($args['disp'])) $disp = $args['disp'];
else $disp = $name;
if ($type!='op') $Fields[$name]["disp"] = $disp;
if ($type=='op') {
$dsp = str_replace('-', '', "disp_$name");
$Fields[$FieldIdx][$dsp] = $disp;
if (isset($Fields[$FieldIdx]['value'])) {
if ($Fields[$FieldIdx]['value']==$name) {
$sel=' selected';
$chk=' checked';
}
}
} else if ($type=='check') {
if (isset($value))
if ($value==$name) $chk=' checked';
}
else
$FieldIdx=$name;
switch ($type) {
case 'button':
if ($args['function'])
$Fields[$name]['function'] = $args['function'];
$out .= BFrmInp('submit', $name, " $disp ");
break;
case 'msg':
if ($args['function'])
$out .= $args['function']();
else
$out .= "$vals[$name]";
break;
case 'field':
$fld = "";
if (strtolower($args['pos'])=='right')
$out .= "$disp $fld";
else
$out .= "$fld $disp";
break;
case 'hidden':
$out .= "\n".BFrmInp('hidden', $name, $value);
break;
case 'check':
$out .= BFrmInp('checkbox', $name, $name, $chk)." $disp";
break;
case 'text':
$rows = $args['rows'] ? $args['rows'] : 4;
$cols = $args['cols'] ? $args['cols'] : 40;
$value = str_replace('`', "\n", $value);
$out .= "";
break;
case 'radio':
if (!isset($value)) $Fields[$name]['value']= '';
$mult='radio';
break;
case 'select':
if (!isset($value)) $Fields[$name]['value']= '';
$out .= "";
}
else
$mult='select';
break;
case 'op':
if ($mult=='radio')
$out .= BFrmInp('radio', $FieldIdx, $name, $chk)." $disp";
else if ($mult=='select')
$out .= "