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 | */ |
---|
14 | function 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 | ?> |
---|