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

Source for file block.eaSelect.php

Documentation is available at block.eaSelect.php

  1. <?php
  2. /**
  3.  * smarty block plugin to produce select 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: block.eaSelect.php 78 2007-06-06 21:25:28Z m2mtech $
  24.  * @link       http://www.ea-geier.at/
  25.  */
  26.  
  27. /**
  28.  * Smarty {eaSelect} plugin
  29.  *
  30.  * creates <select></select> tags from {eaSelect} constructs
  31.  *
  32.  * - {eaSelect name=NAME}            -> <select id="NAME" name="NAME" >...</select>
  33.  * - existing {$error['NAME']}    -> <select ... class="error">...
  34.  * - existing {#helpNAME#}        -> <select ... title="{#helpNAME#}"> ...
  35.  * - existing {#labelNAME#}        -> <label for="NAME">{#labelNAME#}</label>...
  36.  * @param    array    function parameters
  37.  *                     - name    function name    mandatory
  38.  * @param    string    block content
  39.  * @param    Smarty 
  40.  * @return    string 
  41.  */
  42. function smarty_block_eaSelect($params$content&$smarty{
  43.     if (is_null($content)) {
  44.         return;
  45.     }
  46.     
  47.     // load escape function
  48.     require_once $smarty->_get_plugin_filepath('shared''escape_special_chars');
  49.     
  50.     // ensure name parameter is available
  51.     if (!isset($params['name'])) {
  52.         $smarty->trigger_error("eaSelect: 'name' missing"E_USER_NOTICE);
  53.         return;
  54.     }
  55.     $name smarty_function_escape_special_chars($params['name']);    
  56.     $nameL strtolower($name);
  57.     $return '';
  58.     
  59.     // label
  60.     if ($label $smarty->get_config_vars('label' $nameL)) 
  61.         $return .= '<label for="' $name '">' $label '</label>';
  62.  
  63.     $return .= '<select ';
  64.         
  65.     // name, id
  66.     $vars array('name''id');
  67.     foreach ($vars as $var$return .= $var '="' $name '" ';
  68.     
  69.     // title
  70.     if ($title $smarty->get_config_vars('help' $nameL))
  71.         $return .= 'title="' $title '" ';
  72.  
  73.     // error 
  74.     $error $smarty->get_template_vars('error');
  75.     if ($error[$name]$return .= 'class="error" '
  76.  
  77.     // rest
  78.     $vars array('onchange');
  79.     foreach ($vars as $varif (isset($params[$var]))
  80.         $return .= $var '="' smarty_function_escape_special_chars($params[$var]'"';
  81.  
  82.     $return .= '>' $content '</select>';
  83.     return $return;
  84. }
  85.  
  86. ?>

Documentation generated on Sun, 09 Sep 2007 17:07:55 +0200 by phpDocumentor 1.3.1