ea-Geiercode-base-smarty
[ class tree: ea-Geier ] [ index: ea-Geier ] [ all elements ]

Source for file function.eaInput.php

Documentation is available at function.eaInput.php

  1. <?php
  2. /**
  3.  * smarty function plugin to produce input tags
  4.  *
  5.  * LICENSE:
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
  13.  * GNU General Public License for more details.
  14.  * You should have received a copy of the GNU General Public License along
  15.  * with this program; if not, write to the Free Software Foundation, Inc.,
  16.  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  17.  *
  18.  * @package       ea-Geier
  19.  * @subpackage code/base/smarty
  20.  * @author       m2mtech <tech@m2m.at>
  21.  * @copyright  2007 m2m server software gmbh
  22.  * @license       http://www.gnu.org/licenses/gpl.html GNU General Public License Version 2
  23.  * @version       $Id: function.eaInput.php 109 2007-08-04 22:30:24Z m2mtech $
  24.  * @link       http://www.ea-geier.at/
  25.  */
  26.  
  27. /**
  28.  * Smarty {eaInput} plugin
  29.  *
  30.  * creates <input /> fields from {eaInput} constructs
  31.  *
  32.  * - {eaInput name=NAME}            -> <input id="NAME" name="NAME" type="text" />
  33.  * - {eaInput ... type="TYPE"}    -> <input ... type="TYPE" />
  34.  * - existing {$data['NAME']}        -> <input ... value="{$data['NAME']}" />
  35.  * - existing {$error['NAME']}    -> <input ... class="error" />
  36.  * - existing {#helpNAME#}        -> <input ... title="{#helpNAME#}" />
  37.  * - existing {#labelNAME#}        -> <label for="NAME">{#labelNAME#}</label>...
  38.  * - {eaInput ... align="right"} -> <input ... style="text-align: right;" />
  39.  * - {eaInput ... onechange="something"} -> <input ... onchange="something" />
  40.  * @param    array    function parameters
  41.  *                     - name    function name    mandatory
  42.  *                     - type    input type        (text|password|...) default: text
  43.  * @param    Smarty 
  44.  * @return    string 
  45.  */
  46. function smarty_function_eainput($params&$smarty){
  47.     // load escape function
  48.     require_once $smarty->_get_plugin_filepath('shared''escape_special_chars');
  49.     // ensure name parameter is available
  50.     if (!isset($params['name'])) {
  51.         $smarty->trigger_error("eaInput: 'name' missing"E_USER_NOTICE);
  52.         return '';
  53.     }
  54.     $name smarty_function_escape_special_chars($params['name']);
  55.     $nameL strtolower($name);
  56.     $return '';
  57.     // label
  58.     if ($label $smarty->get_config_vars('label' $nameL)) 
  59.         $return .= '<label for="' $name '">' $label '</label>';
  60.     // type
  61.     $return .= '<input type="';
  62.     if (!isset($params['type'])) $params['type''text';
  63.     switch ($params['type']{
  64.         case 'text'case 'password':
  65.         case 'checkbox'case 'radio':
  66.         case 'hidden':
  67.             $return .= $params['type''" ';
  68.             break;
  69.         case 'textarea':
  70.             $return substr($return0-13'<textarea ';
  71.             break;
  72.         default:
  73.             $return .= 'text" ';
  74.     }
  75.  
  76.     // name, id
  77.     $vars array('name''id');
  78.     foreach ($vars as $var$return .= $var '="' $name '" ';
  79.     // value
  80.     $data $smarty->get_template_vars('data');
  81.     if (isset($data[$name]
  82.         && (($params['type'!= 'password'&& ($params['type'!= 'textarea')))
  83.         $return .= 'value="' smarty_function_escape_special_chars($data[$name]'" ';
  84.     // title
  85.     if ($title $smarty->get_config_vars('help' $nameL))
  86.         $return .= 'title="' $title '" ';
  87.     // error 
  88.     $error $smarty->get_template_vars('error');
  89.     if ($error[$name]$return .= 'class="error" '
  90.     
  91.     // align
  92.     if (isset($params['align']&& ($params['align']))
  93.         $return .= 'style="text-align: ' smarty_function_escape_special_chars($params['align']'" ';
  94.     
  95.     // onchange
  96.     if (isset($params['onchange']&& ($params['onchange']))
  97.             $return .= 'onchange="' smarty_function_escape_special_chars($params['onchange']'" ';
  98.     
  99.     if ($params['type'== 'textarea'{
  100.         $return .= '>';
  101.         if (isset($data[$name])) 
  102.             $return .= smarty_function_escape_special_chars($data[$name]);    
  103.         $return .= '</textarea>';
  104.     else $return .= '/>';
  105.     
  106.     return $return;
  107. }
  108.  
  109. ?>

Documentation generated on Sun, 09 Sep 2007 17:08:45 +0200 by phpDocumentor 1.3.1