Leitor de RSS O.O.

Publicado por Diogo Souza da Silva 02/05/2007

[ Hits: 8.377 ]

Homepage: www.manfiesto.blog.br

Download rssoo.php




Desenvolvi um pequeno leitor de RSS em php usando Orientação a Objetos. É um script bem simples que recebe um xml como parâmetro, carrega as informação do rss e as exibe de forma bem simplificada.

Junto coloquei uma classe estendendo a classe principal(rss) para uma caixa com formatação. O script depende do xmlize.php de www.hansanderson.com

O script é facilmente extensivel.

  



Esconder código-fonte

 <?php
 
 /*
   Função para leitura de RSS via PHP
   Gera um output padrão, que pode ser formatado
   Requer a funcao xmlize "by Hans Anderson, www.hansanderson.com/contact/"
   Enjoy
   
   By http://www.manifesto.blog.br/
 */
 
 require_once("xmlize.php") ;
 
class rss {

   function rss($a) {   
      // $a deve ser o caminho para o rss
      // Primeiro armazenamos o xml
      $data = file_get_contents($a) ;
      $info = xmlize($data);      
      $this->title = $info["rss"]["#"]["channel"][0]["#"]["title"][0]["#"]; // Titulo do RSS
      $this->link =$info["rss"]["#"]["channel"][0]["#"]["link"][0]["#"] ;   // Link para a pagina
      $this->itens =  $info["rss"]["#"]["channel"][0]["#"]["item"];   // Conteudo do RSS
   }
   function leitor() {
      // Funcao que le o rss e gera uma caixa sem formatação
      $itens = $this->itens ;
      $output = "<div class='rss_container'><h3><a href='".$this->link."' > ";
      $output .= $this->title."</a></h3><div class='rss_inner'><dl>";
      for($i = 0; $i < sizeof($itens); $i++) {
         $link = $itens[$i]["#"]["link"][0]["#"] ;
         $data = $itens[$i]["#"]["datePosted"][0]["#"] ;         
         $titulo = $itens[$i]["#"]["title"][0]["#"] ;         
         $titulo = $itens[$i]["#"]["title"][0]["#"] ;
         $output .= "<dt><a href='$link'>$titulo</a> :: ($data) </dt>";
      }
      $output .= "</dl></div></div>" ;
      return $output ; // Ele retorna o código da caixa
   }
}


class box extends  rss{

   // Aqui eu fiz uma nova classe extendendo o rss
   // Essa classe exibe uma caixa formatada
   // Poderia ter feito sem extensão, mas quis mostrar como estender o script.
   
   var $color = "#000000";
   var $link_color = "#0000EE";
   var $background= "#FFFFFF";
   var $padding= "4px";
   var $width= "250px";
   var $height= "auto";
   var $border= "thin black solid" ;   
   var $h3_background= "#EFEFEF" ;
   var $h3_color= "#000000";
   
   function box($a) {
      // Passa para o rss ;
      $this->rss($a);
   }   
   function show_box() {

      // Funcao que gera uma caixa formatada
      $itens = $this->itens ;
      $output = "<div style=\"display: block; background-color: $this->background; padding: $this->padding; width: $this->width;height: $this->height; border: $this->border ; color: $this->color\" >";      
      $output .= "<h3 style=\"background-color: $this->h3_background ; padding:  0 0 0 0;margin:  0 0 0 0; \">" ;
      $output .= "<a href='".$this->link."' style=\"color: $this->h3_color \"> ";
      $output .= $this->title."</a></h3><div class='rss_inner'><dl>";
      for($i = 0; $i < sizeof($itens); $i++) {
         $link = $itens[$i]["#"]["link"][0]["#"] ;
         $data = $itens[$i]["#"]["datePosted"][0]["#"] ;         
         $titulo = $itens[$i]["#"]["title"][0]["#"] ;         
         $titulo = $itens[$i]["#"]["title"][0]["#"] ;
         $output .= "<dt><a href='$link' style=\"color: $this->link_color \">$titulo</a> :: ($data) </dt>";
      }
      $output .= "</dl></div></div>" ;
      $this->output = $output ;
      return $this->output ;
   }
}
$rss = new rss("http://www.manifesto.blog.br/rss.xml"); // Assim chamamos o rss
echo $rss->leitor(); // Aqui sera exibida a caixa sem formatação

unset($rss) ;
$rss = new box("http://www.manifesto.blog.br/rss.xml") ; // Agora vamos usar a extensão da classe rss, o box .
$rss->color = "red" ; 
$rss->link_color = "green" ; 
$rss->h3_color = "purple" ; 
echo $rss->show_box(); // Aqui sera exibida a caixa formatada


/*
Pode se alterar os valors da caixa pelas seguintes variaveis:

$rss->background
$rss->padding
$rss->width
$rss->height
$rss->border
$rss->color
$rss->h3_background
$rss->h3_color

Ou criando um estilo próprio.
*/
?>

Scripts recomendados

Geração de códigos captcha em formulários HTML com PHP e PostgreSQL

HTML BASICO PARA INTERNET

Classe para criacao de links em html

IP do usuario (usando arquivo tb)

Cotação do Dólar em PHP + XML


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts