source: sandbox/workflow/trunk/inc/smarty/wf_plugins/function.wf_select_user.php @ 2372

Revision 2372, 3.8 KB checked in by pedroerp, 14 years ago (diff)

Ticket #609 - Merged 2197:2356 /sandbox/workflow/branches/609/ em /sandbox/workflow/trunk.

  • 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 * - organization : nome da organização que estará previamente selecionada.
15 * - title : texto da tooltip que aparecerá quando o usuário colocar o mouse sobre o ícone para adicionar usuário.
16 * - cols : largura do campo.
17 * - rows : altura do campo.
18 * @return string $output codigo com referencias aos javascripts.
19 * @access public
20 */
21function smarty_function_wf_select_user($params, &$smarty)
22{
23        $requiredParams = array(
24                'name');
25        $defaultValues = array(
26                'id_value' => '',
27                'desc_value' => '',
28                'get_email' => false,
29                'email_as_textarea' => false,
30                'hide_groups' => true,
31                'organization' => null,
32                'entities' => null,
33                'title' => '',
34                'cols'=> 80,
35                'hide_organizations' => false,
36                'hide_sectors' => false,
37                'rows'=> 2);
38        $extractParams = array(
39                'name',
40                'id_value',
41                'desc_value',
42                'title',
43                'cols',
44                'rows');
45
46        /* verifica se todos os parâmetros obrigatórios foram passados */
47        foreach ($requiredParams as $required)
48                if (!array_key_exists($required, $params) || (empty($params[$required])))
49                        $smarty->trigger_error("[wf_select_user] missing required parameter(s): $required", E_USER_ERROR);
50
51        /* atribui valores default para os parâmetros não passados */
52        foreach ($defaultValues as $key => $value)
53                if (!isset($params[$key]))
54                        $params[$key] = $value;
55
56        /* extrai alguns parâmetros da matriz de parâmetros */
57        foreach ($extractParams as $extract)
58                $$extract = $params[$extract];
59
60        $name_desc = $name . "_desc";
61
62        if ($params['get_email'] == true)
63        {
64                $extraParams = "mail=1";
65                if ($params['email_as_textarea'])
66                {
67                        $output = <<<EOF
68                                <textarea id="$name" wrap="virtual" rows="$rows" cols="$cols" name="$name">$desc_value</textarea>
69EOF;
70                } else {
71                        $output = <<<EOF
72                                <input type="text" name="$name" id="$name" value="$id_value" size="27"/>
73EOF;
74                }
75        }
76        else
77        {
78                $extraParams = "uid=1";
79                $output = <<<EOF
80                        <input type="hidden" name="$name" id="$name" value="$id_value"/>
81                        <input type="text" name="$name_desc" id="$name_desc" value="$desc_value" readonly="true" size="27"/>
82EOF;
83        }
84
85        if ($params['hide_groups'] == true)
86                $extraParams .= "&hidegroups=1";
87        if (!is_null($params['organization']))
88                $extraParams .= "&change_org=True&organization=" . $params['organization'];
89        if (!is_null($params['entities']))
90                $extraParams .= "&entities=" . $params['entities'];
91        if ($params['hide_organizations'] == true)
92                $extraParams .= "&hideOrganizations=1";
93        if ($params['hide_sectors'] == true)
94                $extraParams .= "&hideSectors=1";
95
96        $image = Factory::getInstance('TemplateServer')->generateImageLink('add_user.png');
97
98$output .= <<<EOF
99        <a alt="$title" title="$title" href="javascript:void(0)" onclick="openParticipants('$name', '$extraParams');"><img border="0" alt="" src="$image" /></a>
100EOF;
101        return $output;
102}
103?>
Note: See TracBrowser for help on using the repository browser.