source: trunk/workflow/inc/smarty/wf_plugins/function.wf_select_users.php @ 3729

Revision 3729, 3.9 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 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                'useCCParams' => false,
31                'get_email' => false,
32                'value' => array());
33        $extractParams = array(
34                'name',
35                'value',
36                'onlyVisibleAccounts',
37                'useGlobalSearch');
38
39        /* verifica se todos os parâmetros obrigatórios foram passados */
40        foreach ($requiredParams as $required)
41                if (!array_key_exists($required, $params) || (empty($params[$required])))
42                        $smarty->trigger_error("[wf_select_users] missing required parameter(s): $required", E_USER_ERROR);
43
44        /* atribui valores default para os parâmetros não passados */
45        foreach ($defaultValues as $key => $value)
46                if (!isset($params[$key]))
47                        $params[$key] = $value;
48
49        /* extrai alguns parâmetros da matriz de parâmetros */
50        foreach ($extractParams as $extract)
51                $$extract = $params[$extract];
52
53        $name_desc = $name . "_desc";
54
55        /* caso seja passado get_email=true, o parâmetro usePreffix não é utilizado */
56        $extraParams = 'usePreffix=1';
57        if ($params['hide_groups'] == true)
58                $extraParams .= "&hidegroups=1";
59        if ($params['organization'] != null)
60                $extraParams .= "&change_org=True&organization=" . $params['organization'];
61        if ($params['hide_organizations'] == true)
62                $extraParams .= "&hideOrganizations=1";
63        if ($params['hide_sectors'] == true)
64                $extraParams .= "&hideSectors=1";
65        if ($params['get_email'] == true)
66                $extraParams .= "&mail=1";
67        if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false')
68                $extraParams .= "&onlyVisibleAccounts=false";
69        else
70                $extraParams .= "&onlyVisibleAccounts=true";
71        if (empty($useGlobalSearch) || $useGlobalSearch === 'false')
72                $extraParams .= "&useGlobalSearch=false";
73        else
74                $extraParams .= "&useGlobalSearch=true";
75        if (!empty($params['useCCParams']) && $params['useCCParams'] !== 'false')
76                $extraParams .= "&useCCParams=true";
77
78        $output = '<table border="0"><tr><td>';
79        $output .= smarty_function_html_options(array(
80                                                                                        'name' => $name,
81                                                                                        'options' => $value,
82                                                                                        'multiple' => 'multiple',
83                                                                                        'style' => 'width:250px;height:200px',
84                                                                                        'id' => $name,
85                                                                                        'print_result' => false),
86                                                                                $smarty);
87        $output .= "</td><td>";
88        $output .= <<<EOF
89                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');"><img border="0" src="$imagesPath/add_group.png"></a>
90                <br />
91                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');">Adicionar</a>
92                <br /><br />
93                <a href='javascript:void(0)' onclick="delUsers('$name');"><img border="0" src="$imagesPath/delete_group.png"></a>
94                <br />
95                <a href='javascript:void(0)' onclick="delUsers('$name');">Remover</a>
96EOF;
97        $output .= "</td></tr></table>";
98        return $output;
99
100}
101?>
Note: See TracBrowser for help on using the repository browser.