Criando uma URL codificada
De DTI Wiki
Para criar uma URL codificada deve ser criado o seguinte código:
$url = gerarUrlDataEncode($app, array('acao' => 'teste'), 'importaregressos.php?id=');
A função gerarUrlDataEncode encontra-se em lib/funcStd.inc.php
Os parâmetros esperados pela função são:
- $app = Objeto da classe UpfTPL
- array('acao' => 'teste') = array com índice e valores atribuídos para índices. Se a necessidade for passar mais de um parâmetro, segue a mesma estrutura de como se trabalha com arrays no php: ex:
array('parm1' => $val1, 'parm2' => $val2, 'parm3' => $val3);
- url = ex: 'importaregressos.php?id='. Existe a possibilidade de fazer a chamada para esta função sem informar a url desejada, desta forma é possível obter somente o valor codificado para os parâmetros necessários. Também é possível informar a url sem informar o '?id' que a própria função irá se encarregar de fazer os tratamentos necessários.
Antes de ser implementada esta função exemplificada acima havia uma outra forma de gerar urls codificadas, veja a seguir:
$urlDE = new urlDataEncode(); #Cria uma instância da urlDataEncode $urlDE->resetPassword(); #Limpa um código que possa ter sido gerado anteriormente $password = $urlDE->getPassword(); #Retorna um código único que será a "máscara" dos parâmetros
Após ter criado um objeto urlDataEncode na memória é a hora de setar os parâmetros a serem passados.
No exemplo abaixo iremos passar os seguintes parâmetros:
- O menu a ser executado (passo);
- Coluna da ordenação dos itens (col);
- Ordenação dos itens a serem exibidos (ordenacao).
$urlDE = new urlDataEncode(); #Cria uma instância da urlDataEncode $urlDE->resetPassword(); #Limpa um código que possa ter sido gerado anteriormente $password = $urlDE->getPassword(); #Retorna um código único que será a "máscara" dos parâmetros /* Definição de parâmetros e valores */ $params = array( "passo" => "listaCidades", "col" => "CODCIDADE", "ordenacao" => "ASC"); $urlDE->addArray($params); #Atribuição dos parâmetros para o password gerado anteriormente $urlExibida= $_SERVER['PHP_SELF'] . "?id=".$password; #Exemplo de URL que será setada no template através do $app->setVariable