Olá pessoal!
Hoje vou mostrar como se enviar um email em php (codeigniter) no formato de HTML. Vou utilizar o exemplo de um formulário de indicar um artigo para um amigo. Já que não vejo necessidade de abrir uma nova página, vou utilizar o jquery para enviar via post sem dar um refresh na página.
No decorrer da explicação haverá alguns detalhes importantes para ser usados em outras ocasiões.
Vamos começar pela VIEW:
O action do formulário na verdade não vai ser utilizado, pois o envio será feito via jquery, porém, o caminho especificado nele é o que será usado no método $.post().
Repare que existem 2 inputs hidden. Eles serão responsáveis por preencher tanto o link quanto o título do artigo, que por sua vez será enviado para o email do convidado.
Um detelhezinho que sempre utilizo em sistemas de notícias e artigos, além de inserir o título do artigo na URL, que por sua vez ajuda muito no SEO eu removo os espaços e alguns caracteres não recomendados. Essa prática está localizada no input hidden com id ="lk". Utilizo o ereg_replace para tal função. Nesse caso removi apenas os espaços em branco e interrogações, trocando pelo hífen (-). Como citei em outro artigo URL dinâmicas.
O CONTROLLER é bem simples, apenas irá puchar a função do MODEL.
O MODEL será responsável em pegar os POSTS, criar e enviar o email para o amigo: artigos_model.php
Nas primeiras linhas vamos pegar os posts, em seguida vamos chamar a library email do codeigniter. Criamos uma variável para guardar o conteúdo do email, consequentemente trabalhando junto com os posts. Na criação dessa variável podemos utilizar as tags de HTML comuns, ou seja, as que os servidores de email suportam. Não é recomendado usar tags de formulário, iframe, entre outras.
Em relação ao CSS, é recomendado usar o método inline, tanto criando classes antes do head quanto usando os styles nas próprisa Tags. Já tentei chamar alguns CSSs na tag link mas não deram certo.
A linha $config['mailtype'] = 'html' é fundamental para que tudo funcione corretamente. Caso os emails não sejam enviados, altere a linha $config['mailpath'] para 'mail'.
Como se deve imaginar as funções de email já dizem tudo:
->from = Email do remetente
->to = Email de quem vai receber
->subject = Assunto do email
-> message = Utilizamos a variável que guardarmos o conteúdo do email.
no final do código existe uma linha com comentário. Ela poderá ser usada caso queiram dar um feedback do envio. Nesse caso iríamos alterar a função $.post para $().get. Isso será visto Agora:
JQUERY
vamos criar um arquivo para configurar o envio do formulário. Vou chamá-lo de artigos.js
Lembrando que temos que puchar a função definindo um ID para o formulário (view). A partir dele chamamos a função submit(); Fazemos uma pequena validação (em breve vou postar um modo bem simples de validar com classes) dos campos para não irem em branco. Depois utilizamos a função $.post e utilizo um callback para enviar um alert que foi enviado.
Lembrando que na view onde está o formulário o arquivo jquery tem que ser chamado, e antes do artigos.js.
Não informei o nome do controller, pois vai depender de cada um a definição.
Qualquer dúvida é só mandar. Vamos evoluir juntos.
Mostrando postagens com marcador Codeigniter. Mostrar todas as postagens
Mostrando postagens com marcador Codeigniter. Mostrar todas as postagens
terça-feira, 23 de março de 2010
sexta-feira, 11 de dezembro de 2009
Aceitar acentos na URL com Codeigniter
Para que seja possível colocar acentos nos href e nas URLs é muito simples.
Abra o arquivo config.php que se encontra no diretório system\application\config.
Ao abrir procure a linha $config['permitted_uri_chars'] e insira os caracter que serão disponíveis, como segue na imagem:
No meu caso liberei os seguintes caracteres 'a-zç 0-9~%.:_\- ç ? ! . á à ã â é è ê í ì ó ò ô ú ù ü'.
$config['permitted_uri_chars'] = 'a-zç 0-9~%.:_\- ç ? ! . á à ã â é è ê í ì ó ò ô ú ù ü';
E para finalizar tem que editar a linha $config['enable_query_strings'] para TRUE.
$config['enable_query_strings'] = TRUE;
Com essa opção disponível você poderá criar links com alguns dados das tabelas do banco de dados nos parâmetros das funções, como por exemplo, www.seusite.com.br/controller/function/Título Áçêntòs.
Lembrando que não é possível inserir esses acentos nos nomes dos controllers nem das functions, pelo menos até hoje ainda não conseguir fazer isso. :D
Até a próxima.
Abra o arquivo config.php que se encontra no diretório system\application\config.
Ao abrir procure a linha $config['permitted_uri_chars'] e insira os caracter que serão disponíveis, como segue na imagem:
No meu caso liberei os seguintes caracteres 'a-zç 0-9~%.:_\- ç ? ! . á à ã â é è ê í ì ó ò ô ú ù ü'.
$config['permitted_uri_chars'] = 'a-zç 0-9~%.:_\- ç ? ! . á à ã â é è ê í ì ó ò ô ú ù ü';
E para finalizar tem que editar a linha $config['enable_query_strings'] para TRUE.
$config['enable_query_strings'] = TRUE;
Com essa opção disponível você poderá criar links com alguns dados das tabelas do banco de dados nos parâmetros das funções, como por exemplo, www.seusite.com.br/controller/function/Título Áçêntòs.
Lembrando que não é possível inserir esses acentos nos nomes dos controllers nem das functions, pelo menos até hoje ainda não conseguir fazer isso. :D
Até a próxima.
quinta-feira, 10 de dezembro de 2009
Como remover o index.php da URL no Codeigniter
Nesse artigo vou tentar ensinar o modo mais simples de remover o nome index.php da URL. Isso além de deixar a URL mais amigável, no meu ponto de vista também pode influênciar em boas práticas de SEO.
1 - É preciso criar um arquivo com o nome ".htaccess". Pode ser feito até mesmo pelo bloco de notas. Abra o editor e insira o seguinte código:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Após inserir salve ele com o nome .htaccess
Esse arquivo tem que ficar na pasta raiz do site, ou seja na mesma pasta onde se encontra a pasta "system".
Após essa etapa é preciso abrir o arquivo config.php que está localizado do diretório system\application\config. Ao abrir o arquivo é necessário procurar a linha $config['index_page'] = ""; e $config['uri_protocol'] = "AUTO"; como segue a imagem abaixo.

Caso não funcione pode trocar o "AUTO" pelo "REQUEST_URI", que está marcado na imagem.
Também não pode esquecer de remover o texto index.php da linha $config['base_url']. E caso o site já esteja pronto ou quase pronto lembre-se de remover o index.php dos href, porém mesmo assim funciona.
O que no meu ponto de vista creio que ajuda no SEO, é fazer palavras compostas com os nomes dos controller juntando com as function e principalmente com seus parâmetros, que para melhorar ainda mais, podem suportar palavras com acentos e - (hífens) para aumentar a relevância da URL e deixá-las mais dinâmicas. Sem contar que seria ótimo se escolhecem palavras-chaves que contenham no corpo do site, pricipalmente em strong, a, h1, h2... title, entre outras.
É isso.
1 - É preciso criar um arquivo com o nome ".htaccess". Pode ser feito até mesmo pelo bloco de notas. Abra o editor e insira o seguinte código:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Após inserir salve ele com o nome .htaccess
Esse arquivo tem que ficar na pasta raiz do site, ou seja na mesma pasta onde se encontra a pasta "system".
Após essa etapa é preciso abrir o arquivo config.php que está localizado do diretório system\application\config. Ao abrir o arquivo é necessário procurar a linha $config['index_page'] = ""; e $config['uri_protocol'] = "AUTO"; como segue a imagem abaixo.
Caso não funcione pode trocar o "AUTO" pelo "REQUEST_URI", que está marcado na imagem.
Também não pode esquecer de remover o texto index.php da linha $config['base_url']. E caso o site já esteja pronto ou quase pronto lembre-se de remover o index.php dos href, porém mesmo assim funciona.
O que no meu ponto de vista creio que ajuda no SEO, é fazer palavras compostas com os nomes dos controller juntando com as function e principalmente com seus parâmetros, que para melhorar ainda mais, podem suportar palavras com acentos e - (hífens) para aumentar a relevância da URL e deixá-las mais dinâmicas. Sem contar que seria ótimo se escolhecem palavras-chaves que contenham no corpo do site, pricipalmente em strong, a, h1, h2... title, entre outras.
É isso.
Assinar:
Postagens (Atom)