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

Revision 3729, 4.5 KB checked in by asaikawa, 13 years ago (diff)

Ticket #1524 - Adicionado o parametro useCCParams nos componentes, indicando que serao usados os parametros do CC

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