Artigos

Categorias

Assine o feed Assine o feed

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina
Ter 08 Set 2009

Como colocar uma área de clipping em seu site

por Fabio Gouveia às 15:20:09

Bom pessoal, para recomeçar a postar artigos, escolhi um tutorial bem simples. Colocar uma àrea de clipping no site é uma maneira de manter seu site sempre atualizado com notícias de um um mais sites.

O clipping é muito tranquilo de ser implementado. Aqui mostraremos como implementar essa feature com PHP.

Primeiro criamos a função xml_simple_clipping

<?
function xml_simple_clipping($urlrss,$tamanho, $urlhost){
   /** Primeiro devemos abrir o site que contm o XML com as notícias para depois fazermos o
   * PARSE das notícias.
   */

   /* caso o site não exista ou não seja possível ler o arquivo XML a função
   * fopen irá retornar FALSE e interrompemos a função
   */
   if (!($fp = fopen($urlrss, "r"))) {
      echo "<div>Erro ao tentar ler o RSS do site $urlhost</div>\r\n";
      echo "<h5>Fonte: <a href='http://$urlhost' target='_blank'>$urlhost</a></h5>\r\n";
      return;
   }

   /** Após abrir o aquivo vamos ler e jogar as suas informações no arquivo $xml_parse.
   */
   while ($data = fread($fp, 4096)){
      $xml_parse.=$data;
   }

   /** Agora utilizamos a função simplexml_load_string() para fazer o parse do aquivo
   * XML para um objeto
   */
   $oXML = simplexml_load_string($xml_parse);

   /** Com o objeto formado, podemos agora acessar todas as informações disponíveis
   * no RSS que você deseja adicionar ao seu site.
   * Toda a informação estar no objeto $oXML->channel[0].
   * Vamos ver agora algumas informaçães que poderemos obter.
   */
   $br = "<br />"; // quebra de linha no HMTL
   echo "<b> Informações do site de RSS</b>". $br;

   // Informações sobre o Site de RSS
   echo $oXML->channel[0]->title . $br; // Ttulo do site
   echo $oXML->channel[0]->description . $br; // Descrio do site
   echo $oXML->channel[0]->link . $br; //Link para o site
   echo $oXML->channel[0]->lastBuildDate . $br; // Data da última publicação no site

   /* As notícias econtram-se no objeto $oXML->channel[0]->item[]
   * Fazemos então um loop para leitura das notícias.
   * Lembrando que o parâmetro $i é a quantidade de notícias que
   * desejo exibir na minha seção de clipping
   */
   echo $br.$br."<b><u>Notícias do RSS</b></u>". $br.$br;
   for($i=0;$i<$tamanho;$i++){
      $oNews = $oXML->channel[0]->item[$i]; // apenas para encurtar no nome da variável

      if($oNews->title[0] != '') { // testamos se existe a notícia
         $nTitulo = $oNews->title[0]; // título do RSS
         $nDescription = $oNews->description[0]; // descrição do RSS
         $nLink = $oNews->link[0]; // Link para o RSS
         $nPubDate = $oNews->pubDate[0]; // Data de publicação do RSS
         $nAutor = $oNews->author[0]; // Autor do RSS

         echo "<div>»  ".$nPubDate." — <a href='$nLink' target='_blank'>".htmlspecialchars($nTitulo)."</a></div>\r\n";
      } else { break; } // caso tenha menos notícias no site do que eu desejo exibir.
   }

   echo "<h5>Fonte: <a href='http://$urlhost' target='_blank'>$urlhost</a></h5>\r\n";
}//fecha function
?>

Após criada a função, inserimos no html a chamada para a função. Desta maneira podemos criar um RSS com múltiplas fontes. Como podemos confirir no código a seguir:

<?
// Primeira fonte de RSS
$urlRSS="http://www.gouveia.eng.br/feed.php";
$urlHost = "www.gouveia.eng.br";
xml_simple_clipping($urlRSS, 4, $urlHost);
/*
// Segunda fonte de RSS
$urlrss="http://ext02.tst.jus.br/pls/no01/NO_NOTICIASNOVO.rss?p_cod_area_noticia=ASCS";
$urlhost = "www.tst.gov.br";
xml_simple_clipping($urlrss,4,$urlhost);
*/
?>

Como podem notar, a segunda fonte está comentada, mas é apenas para mostrar que é possível com este script ter mais de uma fonte para o clipping de seu site.

Bom, é isso pessoal, espero que aproveitem para deixar seus sites com mais conteúdo.

   Comentários (0)        Tags relacionadas php

Gostaria de adicionar aos favoritos?

   del.icio.us  digg  reddit  netscape  furl  technorati  mister wong 
Fim artigo
Qui 27 Set 2007

URLs amigáveis utilizando o MOD_REWRITE

por Fabio Gouveia às 13:56:15

A técnica de manipulação de URL utilizando o MOD_REWRITE, ou muitas vezes chamada de URLs amigáveis, está sendo amplamente utilizada em sites de blogs e notícias entre outros por facilitar a memorização da URL pelo visitante do site e também por facilitar a indexação dos artigos pelas ferramentas de buscas como o GoogleBot.

Esta técnica permite ao desenvolvedor maior flexibilidade e facilidade na criação e manutenção do site. As configurações do MOD_REWRITE são feitas diretamente no arquivo .htaccess e dependem da configuração do arquivo httpd.conf, que é o arquivo de configurações do servidor Apache.

Para ilustrar a idéia de URLs amigáveis temos as duas URLs abaixo sendo a primeira a URL padrão utilizada em sites PHP pelo mundo todo, a segunda é a URL amigável que aponta para a mesma página da primeira URL. Então, qual delas você prefere?

#1: http://www.seusite.com.br/artigos.php?cod=33&pag=2
#2: http://www.seusite.com.br/artigos/33/2

Se você gostou do resultado então continue lendo que agora eu vou mostrar como você pode implementar o MOD_REWRITE em seu site.

Começaremos editando o arquivo de configurções do Apache, o httpd.conf. Neste arquivo vamos habilitar o módulo de reescrita dos diretórios e para isso siga os passos:

Localize as seguintes linhas neste aquivo: (note que elas podem não estar uma abaixo da outra)

#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c

Ao encontrar estas linhas remova o # (este que é o caracter de comentário do arquivo). Caso Não encontre estas linhas no arquivo, adicione-as.

Agora localize no arquivo de configuração as seguintes linhas:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

Localizada as linhas, substitua a palavra None por All, isso irá permitir a reescrita de diretórios. Agora essas linhas devem ter ficado da seguine maneira:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

Após realizadas as operações vamos salvar o arquivo e reiniciar o servidor Apache, para que as novas configurações entrem em funcionamento.

Agora vamos criar o arquivo .htaccess, note que este arquivo não tem um nome, somente uma extensão. É este arquivo que manipula as propriedades do diretório atual e de seus subdiretórios. Começaremos o arquivo com a instrução: "RewriteEngine on".

#Só executa se o módulo estiver carregado no servidor
<IfModule mod_rewrite.c>
    #habilitando o módulo de reescrita
    RewriteEngine On
    #Criando a regra de reescrita
    RewriteRule ^artigo/([^/]*)(/([^/]*)/?)?$ artigo.php?cod=$2&pag=$4 [L]
</IfModule>

Coloque este arquivo na raiz do seu site.

O padrão utilizado para o comando RewriteRule é o seguinte:

RewriteRule URL_VIRTUAL URL_FÍSICA

A URL_VIRTUAL é a digitada no navegador, que será reescrita de acordo com uma expressão regular. A presença do [L] no final da linha indica que se a expressão digitada no navegador encaixar na espressã do RewriteRule ele para por ali, se não tiver este [L] o servidor continua testando pra ver se encaixa em mais alguma outra regra.

Prontinho, agora o URL amigável já deve estar funcionando no seu site, no padrão de URL mostrado no início deste artigo. Agora você precisa testar no arquivo artigo.php se as variáveis $cod e $pag estão vazias, para evitar que apareça algum erro.

Gostaria de adicionar aos favoritos?

   del.icio.us  digg  reddit  netscape  furl  technorati  mister wong 
Fim artigo
Seg 11 Jun 2007

Documentação utilizando PHPDoc

por Fabio Gouveia às 14:36:12

Documentar bem um código é essencial para o desenvolvimento e manutenção de projetos, principalmente quando esses projetos têm uma equipe de desenvolvimento por trás.

Para projetos em PHP existe uma poderosa ferramenta, o PHPDoc, que é baseado no JAVADoc (ferramenta de documentação da Sun). O objetivo desta ferramenta é padronizar a documentação dos códigos criados em PHP.

O PHPDoc é um projeto Open Source e é distribuído sobre PHP Licence, o que significa que você pode utilizá-lo comercialmente em seus projetos.

Como o PHPDoc funciona?

Basicamente o PHPDoc lê todo o código fonte do projeto procurando por tags especiais (segue uma lista logo abaixo). Com base nessas tags a ferramenta cria a documentação do projeto em diversos formatos como: chm (Windows help), html, pdf, xml.
As tags sempre devem iniciar com @(arroba) dentro dos comentários. Estes comentários, para serem legíveis para o PHPDoc, seguem o seguinte modelo:

/**
* Comentário
* @…
*/

Segue a lista com a maioria das tags aceitas pelo PHPDoc:

  •@access - controle de acesso para um elemento. Se for definido como private o elemento não constará na documentação
  •@author - utilizado para indicar o autor de qualquer elemento que possa ser documentado (variáveis globais, funções, classes, métodos, etc.). Nesta tag pode-se adicionar o e-mail entre os sinais de < e >
  •@category - especifica a categoria para organizar os pacotes dos elementos documentados
  •@copyright - informações de copyright do elemento.
  •@deprecated - indica que o elemento está depreciado, sendo assim não deve ser utilizado por pode ser removido posteriormente
  •@example - inclui um arquivo externo de exemplo com sintaxe destacada
  •@final - indica que um método de uma classe nunca deve ser sobrescrito em uma classe filha
  •@filesource - cria a referência cruzada para o arquivo que contem o código fonte
  •@global - documenta uma variável global. Também é utilizado para métodos/funções
  •@ignore - previne o elemento de ser documentado, normalmente utilizado para elementos duplicados
  •@internal - define a documentação como privada, ou seja interna ao projeto
  •@licence - exibe o link para a url que referencia a licença de uso
  •@link - exibe um link na documentação
  •@package - define um pacote para agrupar as classes ou funções
  •@param - documenta um parâmetro da função
  •@return - documenta o retorno de uma função
  •@see - exibe um link para a documentação de um elemento
  •@since - indica desde qual versão o elemento foi adicionado ao projeto
  •@static - documenta uma variável ou método estático
  •@todo - indica as mudanças que serão realizadas no futuro
  •@version - indica a versão do elemento
  •inline {@internal}
  •inline {@inheritdoc}
  •inline {@link}

Bom agora que já conhecemos a maioria das tags do PHPDoc fica extremamente fácil aplicar esse padrão de documentação visando o bom entendimento e relacionamento entre as partes envolvidas na codificação do projeto.

O que vou mostrar agora é um exemplo de código que será documentados pelo PHPDoc.

<?
/**
* Classe utilizada para o envio de e-mail
*
* @author Fabio Frech Gouveia
* @licence GNU FDL 2007 - Gouveia.eng.br
* @version v 1.0 07/03/2007 19:14:46
* @package br.eng.Gouveia.Contato
* @access public
* @todo implementar o método de confirmação de recebimento
*/
class sendEmail {
    /**
    * Variáveis com o nome do usuário remetente
    * @access private
    * @name $nomeRemetente
    * Variáveis com o e-mail do usuário remetente
    * @access private
    * @name $emailRemetente
    */
    var nomeRemetente = ‘’;
    var emailRemetente = ‘’;
    /**
    * Construtor da classe
    * @param $nome O nome do remetente dos e-mails
    * @param $email O email do remetente dos e-mails
    */
    function sendEmail($nome, $email) {
        $this->nomeRemetente = $nome;
        $this->emailRemetente = $email;
    }
    /**
    * Método
    * @name sendEmail
    * @param $destinatario O nome do destinatário que receberá o e-mail
    * @param $conteudo Texto que formará o corpo do e-mail
    */
    function sendEmail($destinatario, $conteudo) {
    }
}
?>

A instalação do PHPDoc é muito tranqüila, segue o link com o tutorial de instalação: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/ric_INSTALL.html

Bom é isso pessoal, documentar é uma coisa simples mas de suma importância para o desenvolvimento de nossos projetos. Espero que tenham gostado do artigo e que passem a utilizar esse método de documentação em seus projetos.

Referência: PHPDocumentator (http://manual.phpdoc.org/)

Gostaria de adicionar aos favoritos?

   del.icio.us  digg  reddit  netscape  furl  technorati  mister wong 
Fim artigo
Copyright © 2010 — Engº Fabio Frech Gouveia. site v1
Powered by PHP Using IE7 JS CSS2:auto Using TableLess Using Prototype JS Framework Valid XHTML 1.0 Valid CSS