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

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