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

Revision 3167, 3.4 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 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 * - organization : nome da organização que estará previamente selecionada.
12 * @param object &$smarty Instância do objeto smarty em uso
13 * @return string $output codigo html.
14 * @access public
15 */
16function smarty_function_wf_select_users($params, &$smarty)
17{
18    require_once $smarty->_get_plugin_filepath('function','html_options');
19        $imagesPath = substr(Factory::getInstance('TemplateServer')->generateImageLink(''), 0, -1);
20        $requiredParams = array(
21                'name');
22        $defaultValues = array(
23                'hide_groups' => false,
24                'organization' => null,
25                'hide_organizations' => false,
26                'hide_sectors' => false,
27                'onlyVisibleAccounts' => true,
28                'value' => array());
29        $extractParams = array(
30                'name',
31                'value',
32                'onlyVisibleAccounts');
33
34        /* verifica se todos os parâmetros obrigatórios foram passados */
35        foreach ($requiredParams as $required)
36                if (!array_key_exists($required, $params) || (empty($params[$required])))
37                        $smarty->trigger_error("[wf_select_users] missing required parameter(s): $required", E_USER_ERROR);
38
39        /* atribui valores default para os parâmetros não passados */
40        foreach ($defaultValues as $key => $value)
41                if (!isset($params[$key]))
42                        $params[$key] = $value;
43
44        /* extrai alguns parâmetros da matriz de parâmetros */
45        foreach ($extractParams as $extract)
46                $$extract = $params[$extract];
47
48        $name_desc = $name . "_desc";
49
50        $extraParams = 'usePreffix=1';
51        if ($params['hide_groups'] == true)
52                $extraParams .= "&hidegroups=1";
53        if ($params['organization'] != null)
54                $extraParams .= "&change_org=True&organization=" . $params['organization'];
55        if ($params['hide_organizations'] == true)
56                $extraParams .= "&hideOrganizations=1";
57        if ($params['hide_sectors'] == true)
58                $extraParams .= "&hideSectors=1";
59        if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false')
60                $extraParams .= "&onlyVisibleAccounts=false";
61        else
62                $extraParams .= "&onlyVisibleAccounts=true";
63
64        $output = '<table border="0"><tr><td>';
65        $output .= smarty_function_html_options(array(
66                                                                                        'name' => $name,
67                                                                                        'options' => $value,
68                                                                                        'multiple' => 'multiple',
69                                                                                        'style' => 'width:250px;height:200px',
70                                                                                        'id' => $name,
71                                                                                        'print_result' => false),
72                                                                                $smarty);
73        $output .= "</td><td>";
74        $output .= <<<EOF
75                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');"><img border="0" src="$imagesPath/add_group.png"></a>
76                <br />
77                <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');">Adicionar</a>
78                <br /><br />
79                <a href='javascript:void(0)' onclick="delUsers('$name');"><img border="0" src="$imagesPath/delete_group.png"></a>
80                <br />
81                <a href='javascript:void(0)' onclick="delUsers('$name');">Remover</a>
82EOF;
83        $output .= "</td></tr></table>";
84        return $output;
85
86}
87?>
Note: See TracBrowser for help on using the repository browser.