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

Revision 3167, 2.6 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 o componente que permite a seleção de itens genéricos.
4 * @package Smarty
5 * @subpackage wf_plugins
6 * @param array $params Array de parametros. O valor padrão para todos os parâmetros não obrigatórios, é uma string vazia.
7 * - name: (obrigatório) o nome que irá armazenar o id do item selecionado;
8 * - container_number: (obrigatório) o número do container onde os itens estão armazenados.
9 * - id_value: (opcional) o id de um item previamente selecionado (não é visível para o usuário).
10 * - desc_value: (opcional) o texto de um item inicialmente selecionado (é visível para o usuário).
11 * - title: (opcional) o título da tooltip quando o usuário passa o mouse sobre o botão de adicionar.   
12 * @param object &$smarty Instância do objeto smarty em uso 
13 * @return string $output código que insere o componente.
14 * @access public 
15 */
16function smarty_function_wf_generic_select($params, &$smarty)
17{
18        $requiredParams = array(
19                'name');
20        $defaultValues = array(
21                'id_value' => '',
22                'desc_value' => '',
23                'title' => '',
24                'container_number' => 0);
25        $extractParams = array(
26                'name',
27                'id_value',
28                'desc_value',
29                'title',
30                'container_number');
31       
32        /* verifica se todos os parâmetros obrigatórios foram passados */
33        foreach ($requiredParams as $required)
34                if (!array_key_exists($required, $params) || (empty($params[$required])))
35                        $smarty->trigger_error("[wf_select_user] missing required parameter(s): $required", E_USER_ERROR);
36       
37        /* atribui valores default para os parâmetros não passados */
38        foreach ($defaultValues as $key => $value)
39                if (!isset($params[$key]))
40                        $params[$key] = $value;
41       
42        /* extrai alguns parâmetros da matriz de parâmetros */
43        foreach ($extractParams as $extract)
44                $$extract = $params[$extract];
45       
46        $name_desc = $name . "_desc";
47        $digest = md5($_SERVER['REQUEST_URI']);
48        $extraParams = "container_number=$container_number&digest=$digest";
49
50        $output = <<<EOF
51                <input type="hidden" name="$name" id="$name" value="$id_value"/>
52                <input type="text" name="$name_desc" id="$name_desc" value="$desc_value" readonly="true"/>
53EOF;
54
55        $templateServer = &Factory::getInstance('TemplateServer');
56        $imageAdd = $templateServer->generateImageLink('add.png');
57        $imageRemove = $templateServer->generateImageLink('close.png');
58$output .= <<<EOF
59        <a alt="$title" title="$title" href="javascript:void(0)" onclick="openGenericList('$name', '$extraParams');"><img border="0" alt="" src="$imageAdd" /></a>
60        <a alt="$title" title="$title" href="javascript:void(0)" onclick="genericListRemove('$name', '$name_desc');"><img border="0" alt="" src="$imageRemove" /></a>
61EOF;
62        return $output;
63}
64?>
Note: See TracBrowser for help on using the repository browser.