Changes between Initial Version and Version 1 of WF/Downloaddearquivos


Ignore:
Timestamp:
07/24/07 15:01:39 (17 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/Downloaddearquivos

    v1 v1  
     1== Plugin: wf_download_link == 
     2 '''Descrição:''' Este plugin tem por finalidade criar links para downloads de arquivos. Estes links não apontam para o arquivo que será baixado e sim para uma página que irá enviar o arquivo (útil para arquivos que estão no banco de dados). 
     3 
     4 
     5 
     6'''Parâmetros:''' 
     7 
     8  base_url : a URL que irá enviar o arquivo (tratar a requisição). 
     9 
     10  text : texto do link gerado 
     11 
     12  getParams : parâmetro(s) que identifica(m) o(s) download(s). 
     13 
     14 
     15 
     16'''Parâmetro obrigatório''': getParams 
     17 
     18 
     19 
     20'''Valor padrão''': 
     21 
     22  text : "download" 
     23 
     24  base_url : $_SERVER['REQUEST_URI'] 
     25 
     26:Qualquer outro parâmetro passado será incorporado na tag do link gerado. 
     27 
     28 
     29 
     30'''Exemplos de utilização:''' 
     31 
     32Supondo que o código esteja localizado na URL: ```http://localhost/expresso/index.php?atividade=99``` 
     33 
     34 
     35 
     36```{wf_download_link getParams="id_arquivo=1"}``` 
     37 
     38irá produzir: 
     39 
     40```<a href="/expresso/index.php?atividade=99&download_mode=true&id_arquivo=1">download</a>``` 
     41 
     42 
     43 
     44```{wf_download_link getParams="id_arquivo=1" text="clique aqui" class="download_css"}``` 
     45 
     46irá produzir: 
     47 
     48```<a href="/expresso/index.php?atividade=99&download_mode=true&id_arquivo=1" class="download_css">clique aqui</a>``` 
     49 
     50 
     51 
     52```{wf_download_link getParams="id_arquivo=1&usuario=2"}``` 
     53 
     54irá produzir: 
     55 
     56```<a href="/expresso/index.php?atividade=99&download_mode=true&id_arquivo=1&usuario=2">download</a>``` 
     57 
     58 
     59 
     60```{wf_download_link base_url="http://www.outrosite.com/index.php" getParams="id_arquivo=1"}``` 
     61 
     62irá produzir: 
     63 
     64```<a href="http://www.outrosite.com/index.php?download_mode=true&id_arquivo=1>download</a>``` 
     65 
     66 
     67 
     68---- 
     69 
     70== Função: wf_handle_download == 
     71 
     72'''Descrição:''' Esta função gerencia o envio de arquivos solicitados em uma atividade. Esta função deve ser utilizada no arquivo (PHP) que receberá os requests do link gerado com o plugin acima. 
     73 
     74 
     75 
     76'''Parâmetros''': 
     77 
     78  request: variável (estilo array) que será monitorada para verificar a solicitação de um download. Normalmente utiliza-se as variáveis {{$_GET}} ou {{$_POST}}. 
     79 
     80  callback: o nome de uma função (em string) que será chamada para selecionar o arquivo requisitado. 
     81 
     82 
     83 
     84'''Notas sobre a função callback:''' 
     85 
     861- Deve ser declarada para receber um único parâmetro. Este parâmetro será do tipo array e conterá todos os valores armazenados na variável request (a mesma passada em wf_handle_download) 
     87 
     882- Esta função deve retornar {{null}} caso não consiga enviar um arquivo ou então uma array associativa com dois elementos. Supondo que iremos retornar um arquivo na variável {{$saida}}, temos o seguinte exemplo: 
     89 
     90{{{ 
     91 
     92$saida = array(); 
     93 
     94$saida['filename'] = "nome_arquivo.txt"; 
     95 
     96$saida['content'] = "Conteúdo do arquivo."; 
     97 
     98return $saida; 
     99 
     100}}} 
     101 
     102 
     103 
     104'''Exemplo completo de utilização (juntamente com o plugin):''' 
     105 
     106No arquivo de template (.TPL): 
     107 
     108 
     109 
     110```{wf_download_link getParams="id_arquivo=1&tipo=2"}``` 
     111 
     112 
     113 
     114No arquivo de código (.PHP): 
     115 
     116{{{ 
     117 
     118function downloadArquivo($params) 
     119 
     120{ 
     121 
     122        if ($params['id_arquivo'] == 1) 
     123 
     124        { 
     125 
     126                $saida = array(); 
     127 
     128                if ($params['tipo'] == 2) 
     129 
     130                { 
     131 
     132                        $saida['filename'] = "arquivo.txt"; 
     133 
     134                        $saida['content'] = "Conteúdo do tipo 2"; 
     135 
     136                        return $saida; 
     137 
     138                } 
     139 
     140                 
     141 
     142                if ($params['tipo'] == 5) 
     143 
     144                { 
     145 
     146                        $saida['filename'] = "outro_arquivo.txt"; 
     147 
     148                        $saida['content'] = "Outro conteúdo"; 
     149 
     150                        return $saida; 
     151 
     152                } 
     153 
     154                 
     155 
     156                return null; 
     157 
     158        } 
     159 
     160        else 
     161 
     162                return null; 
     163 
     164} 
     165 
     166 
     167 
     168wf_handle_download($_GET, "downloadArquivo"); 
     169 
     170/* Utilizou-se a variável $_GET porque o link gerado pelo plugin passa os valores por essa variável */ 
     171 
     172}}} 
     173 
     174 
     175 
     176Obs: o parâmetro request pode ser qualquer variável do tipo array associativa (e não somente $_GET e $_POST). Mas, para isso, é necessário que nesta variável esteja definido o elemento "download_mode" com valor "true" (este último sem aspas) quando for requisitado um download.