source: branches/2.5/workflow/inc/smarty/wf_plugins/function.wf_select_user.php @ 8232

Revision 8232, 4.5 KB checked in by douglas, 10 years ago (diff)

Ticket #0000 - Copiadas as alterações do Trunk. Versão final 2.5.1.

  • 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                'useCCParams' => false,
41                'size' => 27,
42                'rows'=> 2);
43        $extractParams = array(
44                'name',
45                'id_value',
46                'desc_value',
47                'title',
48                'cols',
49                'rows',
50                'size',
51                'onlyVisibleAccounts',
52                'useGlobalSearch');
53
54        /* verifica se todos os parâmetros obrigatórios foram passados */
55        foreach ($requiredParams as $required)
56                if (!array_key_exists($required, $params) || (empty($params[$required])))
57                        $smarty->trigger_error("[wf_select_user] missing required parameter(s): $required", E_USER_ERROR);
58
59        /* atribui valores default para os parâmetros não passados */
60        foreach ($defaultValues as $key => $value)
61                if (!isset($params[$key]))
62                        $params[$key] = $value;
63
64        /* extrai alguns parâmetros da matriz de parâmetros */
65        foreach ($extractParams as $extract)
66                $$extract = $params[$extract];
67
68        $name_desc = $name . "_desc";
69
70        if ($params['get_email'] == true)
71        {
72                $extraParams = "mail=1";
73                if ($params['email_as_textarea'])
74                {
75                        $output = <<<EOF
76                                <textarea id="$name" wrap="virtual" rows="$rows" cols="$cols" name="$name">$desc_value</textarea>
77EOF;
78                } else {
79                        $output = <<<EOF
80                                <input type="text" name="$name" id="$name" value="$id_value" size="$size"/>
81EOF;
82                }
83        }
84        else
85        {
86                $extraParams = "uid=1";
87                $output = <<<EOF
88                        <input type="hidden" name="$name" id="$name" value="$id_value"/>
89                        <input type="text" name="$name_desc" id="$name_desc" value="$desc_value" readonly="true" size="$size"/>
90EOF;
91        }
92
93        if ($params['hide_groups'] == true)
94                $extraParams .= "&hidegroups=1";
95        if (!is_null($params['organization']))
96                $extraParams .= "&change_org=True&organization=" . $params['organization'];
97        if (!is_null($params['entities']))
98                $extraParams .= "&entities=" . $params['entities'];
99        if ($params['hide_organizations'] == true)
100                $extraParams .= "&hideOrganizations=1";
101        if ($params['hide_sectors'] == true)
102                $extraParams .= "&hideSectors=1";
103        if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false')
104                $extraParams .= "&onlyVisibleAccounts=false";
105        else
106                $extraParams .= "&onlyVisibleAccounts=true";
107        if (empty($useGlobalSearch) || $useGlobalSearch === 'false')
108                $extraParams .= "&useGlobalSearch=false";
109        else
110                $extraParams .= "&useGlobalSearch=true";
111        if (!empty($params['useCCParams']) && $params['useCCParams'] !== 'false')
112                $extraParams .= "&useCCParams=true";
113
114        $image = Factory::getInstance('TemplateServer')->generateImageLink('add_user.png');
115
116        $output .= <<<EOF
117                <a alt="$title" title="$title" href="javascript:void(0)" onclick="openParticipantsWindow('$name', '$extraParams');"><img border="0" alt="" src="$image" /></a>
118EOF;
119        return $output;
120}
121?>
Note: See TracBrowser for help on using the repository browser.