D V J R disponibiliza este exemplo aqui no fórum pra moçada =D
Estou montanto um tutorial para colocar no
Renda Extra mas, como já tem um exemplo pronto, vou postar aqui.
Neste exemplo eu criei uma classe em php que recebe um produto, um filtro e a posição da oferta. O prooduto deve ser exatamente o nome da página do shopping UOL (exemplo: para página
http://shopping.uol....r/notebook.html, deve ser informada a palavra
notebook) e o filtro deve ser algo relacionado com o produto (exemplo: para notebook podemos informa o filtro "dual-core"). Importante: coloque os produtos e os filros sem acentuação e troque espaços em branco por hífen.
Veja abaixo a classe em PHP:
<?php
class parseXmlShopping {
// Informa o código do seu site
private $idtURL = 123456789;
// URL do XML do shopping UOL
private $xmlShoppingUol = "http://xml.shopping.uol.com.br/";
// Função que retorna uma oferta
public function getOferta($produto,$filtro,$posicao){
// Criando URL das ofertas
$xml = $this->xmlShoppingUol.$produto.".html?q=".$filtro."&idtURL=".$this->idtURL;
// Carregar XML via simplexml_load_file()
$xml_vitrine = simplexml_load_file($xml);
$imagem_oferta = $xml_vitrine->po->ofr[$posicao]->prd->img->src['url'];
$descricao_oferta = utf8_decode($xml_vitrine->po->ofr[$posicao]->prd->n);
$valor_oferta = $xml_vitrine->po->ofr[$posicao]->prc['vlr'];
$link_oferta = $xml_vitrine->po->ofr[$posicao]->emp->lnk['url'];
// Montar div da oferta
$divOferta = "<div><p><img src=\"".$imagem_oferta."\"></img></p><p>".$descricao_oferta."</p><p>".$valor_oferta."</p><p><a href=\"".$link_oferta."\" target=\"_blank\">Ir para loja</a></p></div>";
return $divOferta;
}
public function countOfertas($produto,$filtro) {
// Criando URL das ofertas
$xml = $this->xmlShoppingUol.$produto.".html?q=".$filtro."&idtURL=".$this->idtURL;
// Carregar XML via simplexml_load_file()
$xml_vitrine = simplexml_load_file($xml);
return count($xml_vitrine->po->ofr);
}
}
// Instanciando a classe para acesso externo
$xmlShopping = new parseXmlShopping();
?>
Reparem que o parâmetro $posicao da função getOferta() nada mais é que a posição da oferta no XML do shopping. Com isso, para montar as ofertas na página, podemos criar um
for passando uma quantidade de ofertas específicas. No exemplo abaixo utilizei a função countOfertas() para passar a quantidade exata de ofertas:
<?php
require ("exemplo-xml.php");
$produto = "notebook";
$filtro = "dual-core";
$num_ofertas = $xmlShopping->countOfertas($produto,$filtro);
for ($i = 0; $i < $num_ofertas; $i++) {
print $xmlShopping->getOferta($produto,$filtro,$i) . "<br /><br />";
}
?>
Não sei se ficou muito claro o que eu fiz.. para quem manja php deve estar fácil... rs
Em breve vou lançar um tutorial pra galera, enquanto isso, podem perguntar à vontade!