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

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