<?php
/**
* Implements INPUT qtag.
*
* Renders an input item of a form.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_INPUT($env, $target, $attributes) {
$rendered = '';
$form = FormFactory::getForm($env, $target);
FormFactory::createInputItem($env, $attributes, $form);
$rendered .= str_replace('[INPUT|', '[INPUT_RENDER|', $attributes['tag_full']);
return $rendered;
}
/**
* Implements INPUT_RENDER qtag.
*
* Helper qtag, that renders an INPUT after all input items are loaded.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_INPUT_RENDER($env, $target, $attributes) {
$rendered = '';
$form = FormFactory::getForm($env, $target);
if (!(empty($attributes['name'])) && !(empty($form->getItem($attributes['name'])))) {
$input = $form->getItem($attributes['name']);
if ($input->isFirst()) {
$rendered .= $form->renderFormOpen();
}
$rendered .= ($form->isValidated()) ? '' : $input->renderFormItem();
if ($input->isLast()) {
$rendered .= $form->renderFormClose();
}
}
return $rendered;
}
/**
* Implements FORM qtag.
*
* Renders a form.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_FORM($env, $target, $attributes) {
$form = FormFactory::getForm($env, $target);
$form->loadAttributes($attributes);
$string = '';
// If the form has been submitted, validate it.
if ($form->isSubmitted() && ($validate_ok = $form->checkValidate())) {
$string = $validate_ok;
}
return $string;
}
/**
* Implements LIST_VALUES qtag.
*
* Use subnodes of a node as possible values for a form item.
*
* @param Environment $env
* The Environment.
*
* @param string $target
* The qtag's target.
*
* @param array $attributes
* The qtag's attributes.
*
* @return string
* The rendered qtag.
*/
function qtag_LIST_VALUES($env, $target, $attributes) {
$attributes['editable'] = 'false';
$attributes['clean'] = TRUE;
$attributes['separator'] = ',';
$dirlist = new DirList($env, $target, 'list-values', $attributes, 'form');
return $dirlist->render();
}
|