PHP – Mini-Curso
Delphi for PHP
Crie um site de publicação de notícias – Parte 4
Na nossa quarta parte do mini-curso vamos criar a parte principal do nosso sistema, a área de acesso ao visitante. Nessa parte é muito importante o visual e a usabilidade, o que, na maioria das vezes nós programadores deixamos a desejar. Na verdade o Design de um site deve ser uma criação artística, desenvolvida por profissionais habilitados para essa área. O que irei demonstrar é como separar a programação e o desenvolvimento do visual de forma bem transparente e prática para uma equipe com profissionais das duas áreas, e para isso utilizaremos templates.
Idéia de Layout
Antes de começar a programar o site é necessário ter uma idéia de como será sua aparência. Para tanto, sugiro que seja desenhado um esboço das partes, o que pode ser chamado de Wireframe. De forma simples trace idéias de como poderá ser o site. Quanto mais idéias melhor. Depois, com toda sua equipe estude-as e defina o que pode ser aproveitado de cada uma. Para nosso mini-curso utilizei o Excel para criar o Wireframe exibido na Figura 1.
Figura 1. Wireframe da parte visível
Programando
Primeiramente vamos fazer o que mais gostamos, a programação. Abra o projeto realizado até agora e adicione um novo formulário através do menu File|New>Form. Altere o Name desse formulário para “UIndex” e salve-o “index.php”. Acesse o menu File>Use Unit e escolha dados.php.
Para fazer a lista das últimas dez notícias adicione ao formulário um componente Query, da paleta de componentes Data Access. Altere a propriedade Name para “sqlUltimas”, ligue a propriedade Database a UDados.dbjornal1 e digite a seguinte instrução SQL:
Select titulo, data_publicacao, id_noticia
From noticias
Ainda com o componente sqlUltimas selecionado defina a propriedade Order Field para “data_publicacao” e a propriedade Order para “desc”. Com essas definições o Delphi for PHP adicionará a instrução “Order By data_publicacao desc” à nossa sentença SQL. Verifique a propriedade LimitCount que por padrão deve estar “
Adicione um componente Data Source e altere a propriedade Name para “dsUltimas” e a propriedade DataSet ligue à sqlUltimas. Insira no formulário um componente DBRepeater, encontrado na paleta de componentes Data Controls. Altere seu Name para “dbrUltimas” e ligue sua propriedade DataSource para dsUltimas. Também apague sua propriedade Caption.
Dentro do DBRepeater adicione dois Label’s, um abaixo do outro. Para o segundo, defina a propriedade DataSource para dsUltimas e a propriedade DataField como “titulo”. A idéia do primeiro Label é mostrar a data formatada para o Brasil e, por isso não podemos fazer a ligação direta ao campo. Então, no evento OnBeforeShow desse Label coloque o código a seguir.
global $UDados;
$Data=explode("-", $this->sqlUltimas->data_publicacao);
$Data=array_reverse($Data);
$this->Label1->Caption=implode("/", $Data);
No código anterior utilizou-se a função explode para separar os valores e retirar o traço que vem na data pesquisada no banco de dados MySQL. A função array_reverse inverte a ordem das strings deixando na posição, normalmente utilizada no Brasil. E a função implode coloca as barras entre as partes juntando-as.
Selecione o Label ligado ao título e, no evento OnBeforeShow coloque o código a seguir que fará o link para a própria página passando o id da notícia clicada como campo de consulta.
...