source: branches/2.2/workflow/inc/smarty/wf_plugins/function.wf_select_state.php @ 3167

Revision 3167, 2.2 KB checked in by viani, 14 years ago (diff)

Ticket #1135 - Merged r1990:3166 from /trunk/workflow into /branches/2.2/workflow

  • Property svn:executable set to *
Line 
1<?php
2/**
3 * Insere uma combo box que permite ao usuário selecionar um Estado do Brasil.
4 * @package Smarty
5 * @subpackage wf_plugins
6 * @param array $params Array de parametros (Qualquer outro parâmetro passado será incorporado na tag da combo gerada.)
7 * - name: o nome que o elemento HTML receberá.
8 * - value: o ID do Estado que estará previamente selecionado.
9 * Qualquer outro parâmetro passado será incorporado na tag da combo gerada.
10 * @param object &$smarty Instância do objeto smarty em uso
11 * @return string $output codigo que insere a combobox.
12 * @access public
13 */
14function smarty_function_wf_select_state($params, &$smarty)
15{
16    require_once $smarty->_get_plugin_filepath('function','html_options');
17
18        $requiredParams = array(
19                'name');
20        $defaultValues = array(
21                'value' => 1);
22        $extractParams = array(
23                'name',
24                'value');
25       
26        /* verifica se todos os parâmetros obrigatórios foram passados */
27        foreach ($requiredParams as $required)
28                if (!array_key_exists($required, $params) || (empty($params[$required])))
29                        $smarty->trigger_error("[wf_select_state] missing required parameter(s): $required", E_USER_ERROR);
30       
31        /* atribui valores default para os parâmetros não passados */
32        foreach ($defaultValues as $key => $value)
33                if (!isset($params[$key]))
34                        $params[$key] = $value;
35       
36        /* extrai alguns parâmetros da matriz de parâmetros */
37        foreach ($extractParams as $extract)
38                $$extract = $params[$extract];
39       
40        /* parâmetros extras são "acumulados" em uma única variável */
41        $extraParams = array();
42        foreach ($params as $key => $value_params)
43                if (!in_array($key, $extractParams))
44                        $extraParams[$key] = $value_params;
45
46        $sql = "SELECT id_state, state_name FROM phpgw_cc_state WHERE id_country = 'BR' ORDER BY state_name";
47
48        $result = Factory::getInstance('WorkflowObjects')->getDBExpresso()->Link_ID->query($sql);
49        $estados = array();
50        while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
51                $estados[$row['id_state']] = $row['state_name'];
52
53        $output = smarty_function_html_options(array_merge(array(
54                                                                                        'name' => $name,
55                                                                                        'id' => $name,
56                                                                                        'options' => $estados,
57                                                                                        'selected' => $value,
58                                                                                        'print_result' => false), $extraParams),
59                                                                                $smarty);
60        return $output;
61}
62?>
Note: See TracBrowser for help on using the repository browser.