Assistente de URL
O Assistente de XML contem funções que auxiliam no trabalho com URLs.
Carregando este Assistente
Este assistente é carregado usando o seguinte código:
$this->load->helper('url');
As seguinte funções estão disponíveis:
site_url()
Retorna a URL de seu site, conforme especificada no seu arquivo de configuração. O arquivo index.php (ou algum outro que seja a index_page de seu confrome seu arquivo de configuração) será adicionado à URL, como qualquer segmento URI que vocÊ passar para a função.
Sinta-se encorajado a usar esta função sempre que precisar gerar uma URL local de modo que suas páginas tornem-se muito mais portáveis na eventualidade de mudanças em sua URL.
Segmentos podem ser passados (opcionalmente) para a função como uma string ou array. Aqui está um exemplo de string:
echo site_url("novidades/local/123");
O exemplo acima retornará algo assim: http://www.seu-site.com/index.php/novidades/local/123
Aqui está um exemplo de segmentos passados como um array:
$segmentos = array('novidades', 'local', '123');
echo site_url($segments);
base_url()
Retorna a URL base do seu site, conforme especificado no seu arquivo de configuração. Exemplo:
echo base_url();
index_page()
Retorna a página "index" do seu site, conforme especificado no seu arquivo de configuração. Exemplo:
echo index_page();
anchor()
Cria um link HTML baseado na URL local de seu site:
<a href="http://www.seu-site.com">Clique aqui</a>
A tag tem três parâmetros opcionais:
anchor(segmentos uri, texto, atributos)
O primeiro parâmetro pode conter qualquer segmento que você queira adicionar à URL. Como com a função site_url() acima, segmentos podem ser uma string ou um array.
Nota: Se você estiver montando links internos para sua aplicação não inclua a URL base (http://...). Isto será adicionado automaticamente conforme informação especificada no seu arquivo de configuração. Inclua apenas os segmentos de URI que você deseje adicionar à URL.
O segundo parâmetro é o texto que o link vai mostrar como clicável. Se deixado em branco então a URL será usada.
O terceiro parâmetro pode conter uma lista de atributos que você gostaria de adicionar ao link(tag). Os atributos podem ser uma simples string ou um array associativo.
Aqui estão alguns exemplos:
echo anchor('novidades/local/123', 'Minhas Novidades');
Produzirá: <a href="http://www.seu-site.com/index.php/novidades/local/123" title="Minhas Novidades">Minhas Novidades</a>
echo anchor('novidades/local/123', 'Minhas Novidades', array('title' => 'As melhores!'));
Produzirá: <a href="http://www.seu-site.com/index.php/novidades/local/123" title="As melhores!">Minhas Novidades</a>
anchor_popup()
Quase idêntico à função anchor() exceto que abrirá a url em uma nova janela. Você pode especificar atributos Javascript no terceiro parâmetro para controlar como a janela será aberta. Se o terceiro parâmetro não estiver configurado então a nova janela será aberta conforme as configurações do navagador do usuário. Aqui está um exemplo com atributos:
$atributos = array(
'width' => '800',
'height' => '600',
'scrollbars' => 'yes',
'status' => 'yes',
'resizable' => 'yes',
'screenx' => '0',
'screeny' => '0'
);
echo anchor_popup(novidades/local/123, 'Click Me!', $atributos);
Nota: Os atributos acima são funções padrão sendo que você somente precisará declará-las se precisar de algo diferente disso. Se você quiser que a função use todos os valores padrões basta passar um array vazio como terceiro parâmetro:
echo anchor_popup('novidades/local/123', 'Clique me!', array());
mailto()
Cria uma tag link para e-mail. Exemplo de uso:
echo mailto('eu@meu-site.com', 'Clique aqui para falar comigo');
Como com a tag anchor() acima, você pode declarar atributos usando o terceiro parâmetro.
safe_mailto()
idêntico à função acima exceto por escrever uma versão ofuscada da tag mailto usando números escritos com Javascript para ajudar a bloquear o rastreio dos emails por robôs de spam.
auto_link()
Transforma URLs e emails (que estão em strings) automaticamente em links. Exemplo:
$string = auto_link($string);
O segundo parâmetro determina se URLs e emails serão convertidos ou somente um ou outro. O padrão é a transformação de ambos se o parâmetro não for especificado
Converte apenas URLs:
$string = auto_link($string, 'url');
Converte apenas endereços de Email:
$string = auto_link($string, 'email');
O terceiro parâmetro determina se os links serão aberto em uma nova janela. O valor pode ser TRUE ou FALSE (booleano):
$string = auto_link($string, 'both', TRUE);
url_title()
Pega uma string como entrada e cria uma string URL amigável. É útil se, por exemplo, você tiver um blog no qual gostaria de usar o título de seus artigos na URL. Exemplo:
$title = "O que há de errado com o CSS?";
$url_title = url_title($title);
// Produz: o-que-ha-de-errado-com-o-css
O segundo parâmetro determina o delimitador de palavra. Por padrão traços serão usados. As opções são The second parameter determines the word delimiter. By default dashes are used. Options are: traço, ou underscore:
$title = "O que há de errado com o CSS?";
$url_title = url_title($title, 'underscore');
// Produces: o_que_ha_de_errado_com_o_css
prep_url()
Esta função adicionará http:// se estiver faltando na URL. Passe a string URL para a função deste modo:
$url = "www.algum-site.com";
$url = prep_url($url);
redirect()
Faz um "header redirect"(redirecionamento pelo servidor) para a URI local especificada. Assim como outras funções neste assistente, esta é designada para redirecionar a uma URL local dentro do seu site. Você não especificará a URL absoluta do seu site, mas somente os segmentos URI do controller que você quer abrir. A função montará a URL baseada nos valores declarados no seu arquivo de configuração.
O segundo parâmetro permite que você escolha entre o método "location" ou o método "refresh". O "location" é mais rápido, porém em servidores Windows pode ser um problema algumas vezes. Exemplo:
if ($logged_in == FALSE)
{
redirect('/login/form/', 'refresh');
}
Nota: Para esta função funcionar ela deve ser declarada antes que qualquer coisa que gere uma saída ao browser, pois ela usa cabeçalhos de servidor(server headers).