source: branches/1.2/workflow/inc/smarty/wf_plugins/function.wf_file_upload.php @ 1349

Revision 1349, 1.7 KB checked in by niltonneto, 15 years ago (diff)

Ticket #561 - Inclusão do módulo Workflow faltante nessa versão.

  • Property svn:executable set to *
Line 
1<?php
2/**
3 * Insere o componente que permite o upload de um ou mais arquivos.
4 * @package Smarty
5 * @subpackage wf_plugins
6 * @param array $params Array de parametros (vazio)
7 *  - name: (obrigatório) o nome do componente (que será do tipo "file") que irá conter os arquivos;
8 *  - max: (opcional) número máximo de arquivos que podem ser enviados simultaneamente. Se nenhum parâmetro for passado, pode-se enviar quantos arquivos forem necessários.
9 * @param object &$smarty Instância do objeto smarty em uso
10 * @return string $output codigo que insere o componente
11 * @access public
12 */
13function smarty_function_wf_file_upload($params, &$smarty)
14{
15        $requiredParams = array(
16                'name');
17        $defaultValues = array(
18                'max' => -1);
19        $extractParams = array(
20                'name',
21                'max');
22       
23        /* verifica se todos os parâmetros obrigatórios foram passados */
24        foreach ($requiredParams as $required)
25                if (!array_key_exists($required, $params) || (empty($params[$required])))
26                        $smarty->trigger_error("[wf_file_upload] missing required parameter(s): $required", E_USER_ERROR);
27       
28        /* atribui valores default para os parâmetros não passados */
29        foreach ($defaultValues as $key => $value)
30                if (!isset($params[$key]))
31                        $params[$key] = $value;
32       
33        /* extrai alguns parâmetros da matriz de parâmetros */
34        foreach ($extractParams as $extract)
35                $$extract = $params[$extract];
36       
37        $divName = $name . "_div";
38        $id = $name;
39        $name .= '[]';
40
41        $output = <<<EOF
42                <input id="$id" type="file" name="$name" />
43                <div id="$divName"></div>
44                <script>
45            var multi_selector_$id = new MultiSelector(document.getElementById('$divName'), $max);
46            multi_selector_$id.addElement(document.getElementById('$id'), '$name');
47                </script>
48EOF;
49       
50        return $output;
51}
52?>
Note: See TracBrowser for help on using the repository browser.