[795] | 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. |
---|
[3167] | 10 | * - onlyVisibleAccounts : indica se devem ser recuperadas apenas as contas visíveis, ou se as ocultas também devem ser listadas. |
---|
[3704] | 11 | * - get_email : indica se deve ser buscado o e-mail ou o id. |
---|
[795] | 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 | */ |
---|
| 17 | function smarty_function_wf_select_users($params, &$smarty) |
---|
| 18 | { |
---|
| 19 | require_once $smarty->_get_plugin_filepath('function','html_options'); |
---|
[3167] | 20 | $imagesPath = substr(Factory::getInstance('TemplateServer')->generateImageLink(''), 0, -1); |
---|
[795] | 21 | $requiredParams = array( |
---|
| 22 | 'name'); |
---|
| 23 | $defaultValues = array( |
---|
| 24 | 'hide_groups' => false, |
---|
| 25 | 'organization' => null, |
---|
| 26 | 'hide_organizations' => false, |
---|
| 27 | 'hide_sectors' => false, |
---|
[3167] | 28 | 'onlyVisibleAccounts' => true, |
---|
[3715] | 29 | 'useGlobalSearch' => false, |
---|
[3729] | 30 | 'useCCParams' => false, |
---|
[3704] | 31 | 'get_email' => false, |
---|
[795] | 32 | 'value' => array()); |
---|
| 33 | $extractParams = array( |
---|
| 34 | 'name', |
---|
[3167] | 35 | 'value', |
---|
[3715] | 36 | 'onlyVisibleAccounts', |
---|
| 37 | 'useGlobalSearch'); |
---|
[795] | 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 | |
---|
[3704] | 55 | /* caso seja passado get_email=true, o parâmetro usePreffix não é utilizado */ |
---|
[795] | 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"; |
---|
[3704] | 65 | if ($params['get_email'] == true) |
---|
| 66 | $extraParams .= "&mail=1"; |
---|
[3167] | 67 | if (empty($onlyVisibleAccounts) || $onlyVisibleAccounts === 'false') |
---|
| 68 | $extraParams .= "&onlyVisibleAccounts=false"; |
---|
| 69 | else |
---|
| 70 | $extraParams .= "&onlyVisibleAccounts=true"; |
---|
[3715] | 71 | if (empty($useGlobalSearch) || $useGlobalSearch === 'false') |
---|
| 72 | $extraParams .= "&useGlobalSearch=false"; |
---|
| 73 | else |
---|
| 74 | $extraParams .= "&useGlobalSearch=true"; |
---|
[3729] | 75 | if (!empty($params['useCCParams']) && $params['useCCParams'] !== 'false') |
---|
| 76 | $extraParams .= "&useCCParams=true"; |
---|
[795] | 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 |
---|
[3167] | 89 | <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');"><img border="0" src="$imagesPath/add_group.png"></a> |
---|
[795] | 90 | <br /> |
---|
[3167] | 91 | <a href='javascript:void(0)' onclick="openParticipants(500, 315, '$name', '$extraParams');">Adicionar</a> |
---|
[795] | 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> |
---|
| 96 | EOF; |
---|
| 97 | $output .= "</td></tr></table>"; |
---|
| 98 | return $output; |
---|
| 99 | |
---|
| 100 | } |
---|
| 101 | ?> |
---|