PhpOctober 11, 2009 12:56 pm

Bom dia!
Hoje vamos aprender a fazer uma galeria usando php e lightbox ( Para saber mais sobre lightbox clique aqui ).
Primeiramente vamos criar as pastas para colocar as imagens: images/galeria
Com as pastas ja criadas vamos começar a criar o código fonte. Vamos dividir este programa que iremos fazer em 2 partes: Exibição ( No qual iremos exibir as imagens da galeria ) e Inclusão ( Onde se pode incluir imagens à galeria );
Então começaremos por exibição. Para isso coloque algumas imagens na pasta galeria, depois crie um arquivo com o nome "exibe.php", com o seguinte conteúdo:
<!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>Untitled Document</title>
</head>
<body>
<?php
$not=’images/galeria’; // define o diretório onde estão as imagens
$a=0; // contador ( a baixo do código fonte tem uma explicação do porquê usar )
if ($dir = opendir("$not")) { //verifica se o diretorio existe, se existir $dir==true
while (false !== ($file = readdir($dir))) { // armazenando o nome do arquivo
$a+=1; // incrementando o contador
if ($a>2){ //if do contador ( veja a baixo na explicação )
$c=’<a href="’."$not/$file".’" rel=lightbox[roadtrip]>’; // guardando numa variável o link para lightbox
$b=’<img src="’."$not/$file".’" width="150">’; // guardando numa variável a tag img
echo "$c";
echo "$b";//escrevendo variáveis
echo "</a>";
}
}
closedir($dir); //fechando diretório
}
?>
</body>
</html>
Notem que foi utilizado um contador, este contador server para o seguinte: Quando você usa o opendir no php ele mostra tudo o que está na pasta. Observem:
.
..
Arquivo1.jpg
Arquivo2.jpg
Arquivo3.jpg
O problema está justamente o "." e no "..", que significam "voltar à raiz" e "voltar para a pasta anterior", respectivamente, quem ja mecheu com o DOS do windows ja conhece, são esses mesmos que você usa no comando "CD ..", quando você quer voltar a um diretório ou "CD ." para voltar á raiz. Por isso coloquei o contador, enquanto ele não for maior do que 2 ele não vai inserir imagens, ou seja, enquanto não passar o "." e "..", não vai inserir imagens.
Vamos agora para Inclusão, nesta parte vai uma dica, se você quiser use um sistema de autenticação ( usuário e login ) para ter acesso de incluir fotos. Nesta parte vamos criar "addph.php", observem que vamos fazer o formulário e o script para adicionar as fotos num mesmo arquivo!
<!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>Untitled Document</title>
</head>
<body>
<?php
$arquivo=$_FILES[arquivo]; // captura um arquivo na variável $ arquivo, $arquivo eh uma imagem
$d1=rand(0,2000); // randomiza um número entre 0 e 2000
$d2=rand(500,1200); // randomiza um número entre 500 e 1200
$nome=$d1.$d2;// junta as duas variaveis randomizadas, numa variável nome, para servir de nome da imagem
if ($arquivo==""){ // verifica se a variável arquivo está vazia
//criando formulário
echo ‘<form id="form2" name="form2" method="post" action="addph.php" enctype="multipart/form-data">’;
echo ‘<input type="file" name="arquivo">’;
echo ‘<br>’;
echo ‘<br>’;
echo ‘<input type="submit" name="Submit" value="Upload" />’;
echo ‘</form>’;
}
if ($arquivo!=""){ // verifica se $arquivo não é nulo
preg_match_all("/\.[JPG|JPEG|GIF|PNG]{3,4}/i",$arquivo[’tmp_name’],$ext); // verifica a extensão da imagem
$ext = ‘.jpg’; // define a nova extensão da imagem
if (isset($arquivo)){ // verifica se o arquivo realmente existe
$diretorio = ‘../images/galeria/’; //diretório onde deseja deixar as imagens
$salvar = $diretorio.$nome.$ext; // diretorio + nome do arquivo + extensão do arquivo
move_uploaded_file($arquivo[’tmp_name’], $salvar);//upload propriamente dito
}
echo ‘<h3>Upload de Foto Completo, <a href="addph.php">Fazer mais Uploads </a></h3>’;
echo ‘<br><a href="index.php"> Página Inicial de Administrador </a>’; // mensagem final
}
?>
</body>
</html>
Conseguimos então fazer um formulário e um script na mesma página. E para quem quiser encrementar mais ainda sua galeria Login com Session
Abraços, Até A próxima