Frederico R Martins Blog

Archive for junho 2009

Boa noite meus leitores!

Retorno a escrever aqui no meu Blog depois de um bom tempo de ausência. Peço desculpas, mas é que os dias de trabalhos andam muito corridos e tem sobrado pouco tempo para eu me dedicar ao blog.

Mas calma que não irei abandona-los. Vou procurar manter uma atualização semanal aqui, trazendo sempre algo bem legal para vocês.

Hoje vou falar de algo simples que faziamos no php comum que era exibir vários resultados seguidos. Algo parecido com o que o Repeater faz, mas vou mostrar algo mais simples e mais editável com HTML + CSS + XML.

Esse exemplo pode ser usado com Mysql ou qualquer banco de dados, o que quero mostrar para vocês é a lógica do negócio.

Bom o exemplo que vou mostrar é bem parecido com um Post meu já publicado aqui o XML + Delphi for php + Smarty Template.

Seguinte, vamos começar:

1 – Criamos um novo projeto:

Criando Nova Aplicação no D4PHP

Criando Novo Projeto no D4PHP

2 –  Criamos o nosso XML o twit.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<tws>

 <tw>
 <foto>taz.bmp</foto>
 <recado>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vestibulum dolor ornare felis consequat nec dictum magna laoreet.</recado>
 </tw>

</tws>

3 – Declaramos a Variável que irá virar a Array()


public  $twitters_xml = null;

4 – Criamos as nossas functions para ler o xml

function ler_xml()
 {
   //Lê a variavel $twitters_xml criada no topo.
   global $twitters_xml;

   //Lê o arquivo xml
   $xml = simplexml_load_file("twit.xml");

   //Para cada tw dentro do arquivo xml tratamos como $tw
   foreach($xml->tw  as $tw)
   {
    //Adicionamos uma linha na nossa array.
    $twitters_xml[] = "
<div class='line'>
    <img src='" . utf8_decode($tw->foto) . "' width='70' height='70' alt='foto'/>

" . utf8_decode($tw->recado) . "</div>
";
    }
 }

5 – Criamos a associação na criação do template indo em Inspetor de Propriedades > Eventos > On Template (dê dois cliques), dentro da function digite:

 global $twitters_xml;

 //Executa a function
 $this->ler_xml();

 //Faz a associação com a variável do html
 $template = $params['template'];
 $template->_smarty->assign("listagem", $twitters_xml);

6 – O grande truque no Html…

Enfim o grande truque no Smarty que é as seguintes linhas que fazem o loop com o php para que possamos mostrar a array.

{%section name=twit loop=$listagem%}
{%$listagem[twit]%}
{%/section%}

Com ela criamos uma seção com um determinado nome e sua variável de loop. Note que essa variável é a responsável pela integração com a nossa function.

Logo após mostramos os resultados e fechamos a seção novamente.

Segue abaixo o cógio html por completo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Smarty com array</title>
<style type="text/css">
<!--
.line {
 width: 400px;
 margin-top: 10px;
 background-color: #333333;
 height: 80px;
}
.line img {
 height: 70px;
 width: 70px;
 border: 1px solid #FFFFFF;
 margin: 5px;
 float: left;
}
.line p {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 0.75em;
 line-height: 19px;
 margin-top: 0px;
 margin-right: 0px;
 margin-bottom: 0px;
 margin-left: 0px;
 padding-top: 2px;
 color: #FFFFFF;
}
h1 {
 font-family: Arial, Helvetica, sans-serif;
 font-size: 2em;
 color: #990000;
 margin-top: 0px;
 margin-right: 0px;
 margin-bottom: 10px;
 margin-left: 0px;
 line-height: 19px;
}
-->
</style>
{%$HeaderCode%}
</head>

<body>
{%$StartForm%}
<h1>Twitter Like</h1>
{%section name=twit loop=$listagem%}
 {%$listagem[twit]%}
{%/section%}

{%$EndForm%}
</body>
</html>

6 – Não esqueça de linkar o Html no Inspetor de Objetos!! E colocar a Engine como Smarty Template!

Bom, é isso pessoal espero que tenham gostado de mais um tutorial de Delphi for php.

Ah achou que acabou? Dessa vez eu disponibilizei o download do exemplo feito aqui nesse Post. Qualque dúvida é só deixar o seu comentário!

Download do exemplo clique aqui.

Valeu Folks!

Bookmark and Share

Anúncios

Arquivos

Twitando

Meus últimos bookmarks

RSS IDG Now!

  • Ocorreu um erro. É provável que o feed esteja indisponível. Tente mais tarde.