source: branches/2.2/workflow/inc/smarty/wf_plugins/function.wf_select_user.php @ 3715

Revision 3715, 4.4 KB checked in by asaikawa, 13 years ago (diff)

Ticket #317 - Criado parametro para permitir que a busca global seja selecionada ao abrir a janela de selecao

  • Property svn:executable set to *
Line 
1<?php
2/**
3 * Insere os elementos HTML que permitem a seleção de usuários (ids/e-mails)
4 * @package Smarty
5 * @subpackage wf_plugins
6 * @param object &$smarty Instância do objeto smarty em uso
7 * @param array $params Array de parametros
8 * - name : o nome do campo que irá receber o id do usuário selecionado (o nome do usuário selecionado estará no campo de formulário de nome "name" seguido do sufixo "_desc"). Quando for configurado para pegar o e-mail, os e-mails estarão no campo com o nome indicado por "name" e, o conteúdo será do tipo: "Usuário Um" , "Usuário Dois" (e assim por diante).
9 * - id_value : valor de id de um usuário previamente selecionado.
10 * - desc_value : nome de um usuário previamente selecionado (é ineficaz especificar somente o nome e não o id para deixar um usuário previamente selecionado).
11 * - get_email : indica se deve ser buscado o e-mail ou o id.
12 * - email_as_textarea : indica se o campo que receberá os emails deve ser um textarea (valor true) ou input type text (valor false). Este parâmetro só tem validade se get_email for true.
13 * - hide_groups : indica se deve-se omitir os grupos na tela de seleção.
14 * - onlyVisibleAccounts : indica se devem ser recuperadas apenas as contas visíveis, ou se as ocultas também devem ser listadas.
15 * - organization : nome da organização que estará previamente selecionada.
16 * - title : texto da tooltip que aparecerá quando o usuário colocar o mouse sobre o ícone para adicionar usuário.
17 * - cols : largura do campo.
18 * - rows : altura do campo.
19 * @return string $output codigo com referencias aos javascripts.
20 * @access public
21 */
22function smarty_function_wf_select_user($params, &$smarty)
23{
24        $requiredParams = array(
25                'name');
26        $defaultValues = array(
27                'id_value' => '',
28                'desc_value' => '',
29                'get_email' => false,
30                'email_as_textarea' => false,
31                'hide_groups' => true,
32                'organization' => null,
33                'entities' => null,
34                'title' => '',
35                'cols'=> 80,
36                'hide_organizations' => false,
37                'hide_sectors' => false,
38                'onlyVisibleAccounts' => true,
39                'useGlobalSearch' => false,
40                'rows'=> 2);
41        $extractParams = array(
42                'name',
43                'id_value',
44                'desc_value',
45                'title',
46                'cols',
47                'rows',
48                'onlyVisibleAccounts',
49                'useGlobalSearch');
50
51        /* verifica se todos os parâmetros obrigatórios foram passados */
52        foreach ($requiredParams as $required)
53                if (!array_key_exists($required, $params) || (empty($params[$required])))
54                        $smarty->trigger_error("[wf_select_user] missing required parameter(s): $required", E_USER_ERROR);
55
56        /* atribui valores default para os parâmetros não passados */
57        foreach ($defaultValues as $key => $value)
58                if (!isset($params[$key]))
59                        $params[$key] = $value;
60
61        /* extrai alguns parâmetros da matriz de parâmetros */
62        foreach ($extractParams as $extract)
63                $$extract = $params[$extract];
64
65        $name_desc = $name . "_desc";
66
67        if ($params['get_email'] == true)
68        {
69                $extraParams = "mail=1";
70                if ($params['email_as_textarea'])
71                {
72                        $output = <<<EOF
73                                <textarea id="$name" wrap="virtual" rows="$rows" cols="$cols" name="$name">$desc_value</textarea>
74EOF;
75                } else {
76                        $output = <<<EOF
77                                <input type="text" name="$name" id="$name" value="$id_value" size="27"/>
78EOF;
79                }
80        }
81        else
82        {
83                $extraParams = "uid=1";
84                $output = <<<EOF
85                        <input type="hidden" name="$name" id="$name" value="$id_value"/>
86                        <input type="text" name="$name_desc" id="$name_desc" value="$desc_value" readonly="true" size="27"/>
87EOF;
88        }
89
90        if ($params['hide_groups'] == true)
91                $extraParams .= "&hidegroups=1";
92        if (!is_null($params['organization']))
93                $extraParams .= "&change_org=True&organization=" . $params['organization'];
94        if (!is_null($params['entities']))
95                $extraParams .= "&entities=" . $params['entities'];
96        if ($params['hide_organizations'] == true)
97                $extraParams .= "&hideOrganizations=1";
98        if ($params['hide_sectors'] == true)
99                $extraParams .= "&hideSectors=1";
100        if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false')
101                $extraParams .= "&onlyVisibleAccounts=false";
102        else
103                $extraParams .= "&onlyVisibleAccounts=true";
104        if (empty($useGlobalSearch) || $useGlobalSearch === 'false')
105                $extraParams .= "&useGlobalSearch=false";
106        else
107                $extraParams .= "&useGlobalSearch=true";
108
109        $image = Factory::getInstance('TemplateServer')->generateImageLink('add_user.png');
110
111        $output .= <<<EOF
112                <a alt="$title" title="$title" href="javascript:void(0)" onclick="openParticipants('$name', '$extraParams');"><img border="0" alt="" src="$image" /></a>
113EOF;
114        return $output;
115}
116?>
Note: See TracBrowser for help on using the repository browser.