Example #1
0
/**
 * ...
 *
 * @param array $params
 * @param Smarty $smarty
 * @return string
 *
 * @package application.helper.smarty.form
 * @author Integry Systems
 */
function smarty_function_textarea($params, $smarty)
{
    if (empty($params['name'])) {
        $params['name'] = $smarty->getTemplateVars('input_name');
    }
    // @todo: can be removed when all TinyMCE editors are instantiated via Angular
    if (empty($params['id']) && empty($params['tinymce'])) {
        $params['id'] = uniqid();
    }
    $formParams = $smarty->_tag_stack[0][1];
    $formHandler = $formParams['handle'];
    $fieldName = $params['name'];
    if (empty($params['ng_model']) && !empty($formParams['model'])) {
        $params['ng-model'] = $formParams['model'] . '.' . $params['name'];
        unset($params['ng_model']);
    }
    $params = $smarty->applyFieldValidation($params, $formHandler);
    if (!empty($params['tinymce'])) {
        if (is_bool($params['tinymce'])) {
            $params['tinymce'] = 'getTinyMceOpts()';
        }
        $params['ui-tinymce'] = $params['tinymce'];
        unset($params['tinymce']);
    }
    // Check permissions
    if ($formParams['readonly']) {
        $params['readonly'] = 'readonly';
    }
    $content = '<textarea';
    $content = $smarty->appendParams($content, $params);
    $content .= '>' . htmlspecialchars($formHandler->get($fieldName), ENT_QUOTES, 'UTF-8') . '</textarea>';
    $content = $smarty->formatControl($content, $params);
    return $content;
}
Example #2
0
/**
 * ...
 *
 * @param array $params
 * @param Smarty $smarty
 * @return string
 *
 * @package application.helper.smarty.form
 * @author Integry Systems
 */
function smarty_function_selectfield($params, $smarty)
{
    if (empty($params['name'])) {
        $params['name'] = $smarty->getTemplateVars('input_name');
    }
    $formParams = $smarty->_tag_stack[0][1];
    $formHandler = $formParams['handle'];
    if (!empty($formParams['model']) && !empty($formParams['name'])) {
        $params['ng-model'] = $formParams['model'] . '.' . $params['name'];
    }
    $options = $params['options'];
    if (empty($options)) {
        $options = array();
    }
    unset($params['options']);
    $before = isset($params['before']) ? $params['before'] : '';
    $after = isset($params['after']) ? $params['after'] : '';
    $defaultValue = isset($params['value']) ? $params['value'] : '';
    unset($params['value'], $params['before'], $params['after']);
    // Check permissions
    if ($formParams['readonly']) {
        $params['disabled'] = 'disabled';
    }
    if ($formHandler) {
        $fieldValue = $formHandler->get($params['name']);
        if (is_null($fieldValue)) {
            $fieldValue = $defaultValue;
        }
        //$params['initialValue'] = $fieldValue;
    }
    $content = '<select';
    $content = $smarty->appendParams($content, $params);
    $content .= ">\n";
    if (isset($params['blank'])) {
        $content .= '<option></option>';
    }
    $content .= $before;
    foreach ($options as $value => $title) {
        if (preg_match('/optgroup_\\d+/', $value)) {
            $content .= "\t" . '<optgroup label="' . htmlspecialchars($title) . '" />' . "\n";
        } else {
            if (is_array($fieldValue) && in_array($value, $fieldValue) || !is_array($fieldValue) && $fieldValue == $value && strlen($fieldValue) == strlen($value)) {
                $content .= "\t" . '<option value="' . $value . '" selected="selected">' . htmlspecialchars($title) . '</option>' . "\n";
            } else {
                $content .= "\t" . '<option value="' . $value . '">' . htmlspecialchars($title) . '</option>' . "\n";
            }
        }
    }
    $content .= $after . '</select>';
    $content = $smarty->formatControl($content, $params);
    return $content;
}