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

Revision 3715, 3.8 KB checked in by asaikawa, 14 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 código HTML que permite a seleção de vários usuários e grupos
4 * @package Smarty
5 * @subpackage wf_plugins
6 * @param array $params Array de parametros
7 * - name : o nome do campo que irá receber os usuários e grupos selecionados
8 * - value : usuários e grupos previamente selecionados. Deve estar no formato de matriz, seguindo o seguinte padrão: ::$matriz["u123"]="Nome do usuário 123" ; $matriz["g321"]="Nome do grupo 321" e, assim por diante.
9 * - hide_groups : indica se deve-se omitir os grupos na tela de seleção.
10 * - onlyVisibleAccounts : indica se devem ser recuperadas apenas as contas visíveis, ou se as ocultas também devem ser listadas.
11 * - get_email : indica se deve ser buscado o e-mail ou o id.
12 * - organization : nome da organização que estará previamente selecionada.
13 * @param object &$smarty Instância do objeto smarty em uso
14 * @return string $output codigo html.
15 * @access public
16 */
17function smarty_function_wf_select_users($params, &$smarty)
18{
19    require_once $smarty->_get_plugin_filepath('function','html_options');
20        $imagesPath = substr(Factory::getInstance('TemplateServer')->generateImageLink(''), 0, -1);
21        $requiredParams = array(
22                'name');
23        $defaultValues = array(
24                'hide_groups' => false,
25                'organization' => null,
26                'hide_organizations' => false,
27                'hide_sectors' => false,
28                'onlyVisibleAccounts' => true,
29                'useGlobalSearch' => false,
30                'get_email' => false,
31                'value' => array());
32        $extractParams = array(
33                'name',
34                'value',
35                'onlyVisibleAccounts',
36                'useGlobalSearch');
37
38        /* verifica se todos os parâmetros obrigatórios foram passados */
39        foreach ($requiredParams as $required)
40                if (!array_key_exists($required, $params) || (empty($params[$required])))
41                        $smarty->trigger_error("[wf_select_users] missing required parameter(s): $required", E_USER_ERROR);
42
43        /* atribui valores default para os parâmetros não passados */
44        foreach ($defaultValues as $key => $value)
45                if (!isset($params[$key]))
46                        $params[$key] = $value;
47
48        /* extrai alguns parâmetros da matriz de parâmetros */
49        foreach ($extractParams as $extract)
50                $$extract = $params[$extract];
51
52        $name_desc = $name . "_desc";
53
54        /* caso seja passado get_email=true, o parâmetro usePreffix não é utilizado */
55        $extraParams = 'usePreffix=1';
56        if ($params['hide_groups'] == true)
57                $extraParams .= "&hidegroups=1";
58        if ($params['organization'] != null)
59                $extraParams .= "&change_org=True&organization=" . $params['organization'];
60        if ($params['hide_organizations'] == true)
61                $extraParams .= "&hideOrganizations=1";
62        if ($params['hide_sectors'] == true)
63                $extraParams .= "&hideSectors=1";
64        if ($params['get_email'] == true)
65                $extraParams .= "&mail=1";
66        if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false')
67                $extraParams .= "&onlyVisibleAccounts=false";
68        else
69                $extraParams .= "&onlyVisibleAccounts=true";
70        if (empty($useGlobalSearch) || $useGlobalSearch === 'false')
71                $extraParams .= "&useGlobalSearch=false";
72        else
73                $extraParams .= "&useGlobalSearch=true";
74
75        $output = '<table border="0"><tr><td>';
76        $output .= smarty_function_html_options(array(
77                                                                                        'name' => $name,
78                                                                                        'options' => $value,
79                                                                                        'multiple' => 'multiple',
80                                                                                        'style' => 'width:250px;height:200px',
81                                                                                        'id' => $name,
82                                                                                        'print_result' => false),
83                                                                                $smarty);
84        $output .= "</td><td>";
85        $output .= <<<EOF
86                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');"><img border="0" src="$imagesPath/add_group.png"></a>
87                <br />
88                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');">Adicionar</a>
89                <br /><br />
90                <a href='javascript:void(0)' onclick="delUsers('$name');"><img border="0" src="$imagesPath/delete_group.png"></a>
91                <br />
92                <a href='javascript:void(0)' onclick="delUsers('$name');">Remover</a>
93EOF;
94        $output .= "</td></tr></table>";
95        return $output;
96
97}
98?>
Note: See TracBrowser for help on using the repository browser.