Source for file function.combo.php

Documentation is available at function.combo.php

  1. <?php
  2.     /**
  3.      * function.acoes.php
  4.      *
  5.      * @copyright 2008 Soomp
  6.      * @author Marcio Merlone <mmerlone@gmail.com>
  7.      * @version 1.0
  8.      * @since 26/02/2007
  9.      * @package Soomp
  10.      */
  11.     /* $Id: function.combo.php,v 1.2 2007/03/16 15:00:51 mmerlone Exp $ */
  12.  
  13.     /**
  14.      * Cria o combo de ações de listagem
  15.      * 
  16.      * Cria o combo de ações de listagem baseado em um array
  17.      * Semelhante a {html_options} do smarty, porém permite até 20 níveis de
  18.      * OPTGROUP aninhados e internacionalização dos textos.
  19.      * 
  20.      * Extrai das variáveis do smarty o array $arrComboAcoes da listagem denominada
  21.      * em $params['from'] que contém a estrutura do combo no formato:
  22.      * <code>
  23.      * $acoes = array( 'acao1' => array('id' => 0, 'value' => 'Opção 1'),
  24.                                   'acao2' => 'Opção 2',
  25.                                   '0'      => array('label' => array('id' => 0, 'value' => 'Grupo 1'),
  26.                                                    'grupo1acao1' => 'Grupo 1 Opção 1',
  27.                                                    'grupo1acao2' => 'Grupo 1 Opção 2',
  28.                                                    'grupo1acao3' => 'Grupo 1 Opção 3',
  29.                                                    ),
  30.                                     'acao3' => 'Opção 3',
  31.                                     '1'        => array('label' => array('id' => 0, 'value' => 'Grupo 2'),
  32.                                                      'grupo2acao1' => 'Grupo 2 Opção 1',
  33.                                                      'grupo2acao2' => 'Grupo 2 Opção 2',
  34.                                                      'grupo2acao3' => 'Grupo 2 Opção 3',
  35.                                                      ),
  36.                                     );
  37.      * </code>
  38.      * Irá gerar o select:
  39.      * <code>
  40.      * <select name="acoes" id="acoes">
  41.      *    <option value="acao1">Opção 1</option>
  42.      *    <option value="acao2">Opção 2</option>
  43.      *    <optgroup label="Grupo 1">
  44.      *        <option value="grupo1acao1">Grupo 1 Opção 1</option>
  45.      *        <option value="grupo1acao2">Grupo 1 Opção 2</option>
  46.      *        <option value="grupo1acao3">Grupo 1 Opção 3</option>
  47.      *    </optgroup>
  48.      *    <option value="acao3">Opção 3</option>
  49.      *    <optgroup label="Grupo 2">
  50.      *        <option value="grupo2acao1">Grupo 2 Opção 1</option>
  51.      *        <option value="grupo2acao2">Grupo 2 Opção 2</option>
  52.      *        <option value="grupo2acao3">Grupo 2 Opção 3</option>
  53.      *    </optgroup>."\n"
  54.      *  </select>
  55.      * </code>
  56.      * @param array $params da tag no template - indica qual variável smarty utilizar
  57.      * @param object $smarty o objeto smarty
  58.      */
  59.     function smarty_function_combo($params&$smarty){
  60.         return options($smarty->_tpl_vars[$params['from']]->arrComboAcoes);
  61.     }
  62.  
  63.     /**
  64.      * Cria as tags html de option e optgroup
  65.      * CUIDADO ao mexer, é recursivo!
  66.      */
  67.     function options($arrOpcoes){
  68.         static $i 0;
  69.         require_once(CFG_LOCAL_FRAMEWORK.'idioma.classe.php');
  70.         $recursaoMaxima 20;
  71.         $idioma idioma::getInstance();
  72.         $options $i == '<option value="">'.$idioma->getString(array('id' => 32'value' => 'Ações disponíveis')).':</option>' '';
  73.         foreach($arrOpcoes as $acao => $texto){
  74.             if($i $recursaoMaximadie('Combo com mais de '.$recursaoMaxima.' níveis.');
  75.             if(is_numeric($acao)){
  76.                 $label $idioma->getString($texto['label']);
  77.                 unset($texto['label']);
  78.                 $options .= '<optgroup label="'.$label.'">."\n"';
  79.                 $options .= options($texto)."\n";
  80.                 $options .= '</optgroup>."\n"';
  81.             }else{
  82.                 $texto $idioma->getString($texto);
  83.                 $options .= '<option value="'.$acao.'">'.$texto.'</option>'."\n";
  84.             }
  85.             $i++;
  86.         }
  87.         return $options;
  88.     }
  89.  
  90. ?>

Documentation generated on Sun, 09 Mar 2008 23:51:52 -0300 by phpDocumentor 1.4.0

SourceForge.net Logo Support This Project