Ariel 0 Denunciar post Postado Maio 23, 2006 Alguem poderia me ajudar a encontrar o erro desse script? Tipo, eu peguei um codigo dele na net e readaptei pra uma necessidade, mas, nao consegui entende-lo muito bem. Parece q tem array dentro de array, Se alguem q entenda um pouco melhor, consiga me dizer oq pode-se ser retirado dele... ou melhorado. Outro fato é que preciso de que ele liste as imagens em ordem, pq eu adaptei o mesmo codigo pra abrir primeiro as miniaturas e depois ao clicar abrir a foto grande, porem, ao clicar abre a foto, mas nao eh a mesma da miniatura, pq ele faz uma ordem diferente. No arquivo da miniatura, eh o mesmo codigo, so mudei pra abrir 1 foto por pagina e pegar a ordem da foto q foi clicada q variavel pagina. Teoricamente, se as fotos estao sempre na mesma sequencia, e recebem o cod 001, 002, 003 etc... se eu faço pra abrir 1 foto por pagina, o 001, 002, etc seria a pagina e entao deveria abrir a foto grande correta (igual a da miniatura). Mas abre diferente. Tem como fazer ficar uma ordem sempre a mesma? grato. //////////////////////////////////////////////////////////////////////Configurações////////////////////////////////////////////////////////////////////$numero_de_fotos = "20"; //Número de fotos por página$numero_de_colunas = "4"; //Número de colunas por página$dir = $_GET["id"];$tipo_de_arquivo = ".jpg"; //Especifique aqui o tipo do arquivo a ser listado, para mais de um coloque || EX. .gif||.jpg//////////////////////////////////////////////////////////////////////Verificar Diretório e Gerar Array com o índice de todas as fotos////////////////////////////////////////////////////////////////////$$dir = @opendir($dir) or die("Erro: Diretório inexistente!"); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro.while (false !== ($file = readdir($$dir))) { if (ereg("$tipo_de_arquivo",$file)) { if (ereg("t_",$file)) { if ($file != "." && $file != "..") { $i++; $indice[$i] = "$dir/$file"; }}}}$indice = array_chunk($indice,$numero_de_fotos); // Gera as paginas com o ARRAY_CHUNK (arredonda)$n_page = count($indice); // Calcula o Número de Paginas, -1 devido a o indice inicia em 0// Corrige a indexação de paginas que iniciam em zero, cometido pelo array_chunckfor($i=$n_page; $i >= 0; $i--){ $indice[$i+1] = $indice[$i]; }//Define e reconhece a página a ser exibidaif (isset($_GET['foto'])){ $foto = $_GET['foto'];} else { $foto = 1;}//Verificase a página é realmente válidaif ($foto > $n_page || $foto == 0) { die("Erro: Pagina solicitada inexistente!");}?><table align="center" width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="right"><?echo "<td align=center>"; for ($i=0; $i < $numero_de_fotos; $i++) { if ($indice[$foto][$i] != "") { //Retira a possibilidade de criar um erro de lógica na última página. $path = $indice[$foto][$i]; // Armazena o diretório do arquivo de acordo com a página $p = $i + 1; echo '<a href=java script:MM_openBrWindow(\'1pop_teste.php?id='.$dir.'&foto='.$p.'\',\'\',\'scrollbars=yes,resizable=yes,width=780,height=575,top=1,left=5\')> <img src='.$path.' class=gray onMouseOut=this.className="gray" onMouseOver=this.className="color" border="0"> </a>'; if (($i+1) % $numero_de_colunas == 0) { //Verifica o número de colunas exata especificada em "$numero_de_colunas". print "<br>"; //Quebra a linha caso o número passe da quantidade setada por $numero_de_colunas. } }}print "</tr><tr><td> <td align=center><br>";for ($i=1; $i <= $n_page; $i++) { if ($i != $foto) { //Testa a pagina atual, é diferente da que esta sendo vista. print "<a href=".$PHP_SELF."?id=$dir&foto=$i> $i</a>"; //Gera o link para a página atual. } else { print " [<b>$i</b>]</u>"; //Cloqueia o link para a página atual fazendo com que nem por engano o usuário clique no link da própria página atual }}print "</tr></table>"; Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Maio 23, 2006 Eu acho que se você tirar um dos $ do $$dir que tem logo no começo do script jah vai arrumar.... $$dir = @opendir($dir) or die("Erro: Diretório inexistente!"); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro. while (false !== ($file = readdir($$dir))) { Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Maio 23, 2006 nao, nao eh esse o problema.. :( http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif Compartilhar este post Link para o post Compartilhar em outros sites
Lúcio Henrique de Oliveira 0 Denunciar post Postado Maio 23, 2006 ola amigo,tem como enviar o erro para que possamos verificar..so por curiosidade: $$dir indica que será criada uma variavel com u nome de outra variavel, exemplo:$dir = 'teste';ou seja $$dir é o mesmo que $teste .....att Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Maio 23, 2006 caar eu tb naum sei oke tem de errado... mas tipo... você pode usar esse meu aki que esta funcionando certinho.... ele ordena tb.... <?php $dir = "images/banner"; // pega o endereco do diretorio $aberto = opendir($dir); //ABRE O DIRETÓRIO $i = 0; while ($arq = readdir($aberto)) { if ($arq != "." and $arq != "..") { //DESCONSIDERA DIRETÓRIOS E SUBDIRETÓRIOS $arquivo[$i] = $arq; //Ao invés de listar o arquivo: $i++; } } asort($arquivo); //função que ordena um array reset($arquivo); //Coloca o ponteiro do array no início $j=0; sort($arquivo); while ($arquivo[$j] != "") { echo "<img src=$dir/$arquivo[$j]>"; $j++; }?> Compartilhar este post Link para o post Compartilhar em outros sites
Ariel 0 Denunciar post Postado Maio 23, 2006 entao pessoal, o problema maior é que estava listando um pouco aleatorio, e como eu uso o mesmo codigo pra abrir em pop-up, pegando o numero da foto como pagina (1 a 1), entao ai abria diferente a imagem. Mas ae, depois de pesquisar, consegui dar uma alteradinha e achei a funcao natsort , q resolveu a parada. O script inteiro eh esse: //////////////////////////////////////////////////////////////////////Configurações////////////////////////////////////////////////////////////////////$numero_de_fotos = "20"; //Número de fotos por página$numero_de_colunas = "4"; //Número de colunas por página$dir = $_GET["id"];$tipo_de_arquivo = ".jpg"; //Especifique aqui o tipo do arquivo a ser listado, para mais de um coloque || EX. .gif||.jpg//////////////////////////////////////////////////////////////////////Verificar Diretório e Gerar Array com o índice de todas as fotos////////////////////////////////////////////////////////////////////$abrir = @opendir($dir); //Tenta abrir o diretório, caso não consiga, mostra a mensagem de erro.while (false !== ($file = readdir($abrir))) { if (ereg("$tipo_de_arquivo",$file)) { if (ereg("t_",$file)) { if ($file != "." && $file != "..") { // $i++; $indice[] = $dir."/".$file; }}}}natsort($indice);$indice = array_chunk($indice,$numero_de_fotos); // Gera as paginas com o ARRAY_CHUNK (arredonda)$n_page = count($indice); // Calcula o Número de Paginas, -1 devido a o indice inicia em 0// Corrige a indexação de paginas que iniciam em zero, cometido pelo array_chunckfor($i=$n_page; $i >= 0; $i--){ $indice[$i+1] = $indice[$i];}//Define e reconhece a página a ser exibidaif (isset($_GET['pag'])){ $pag = $_GET['pag'];} else { $pag = 1;}//Verificase a página é realmente válidaif ($pag > $n_page || $pag == 0) { die("Erro: Pagina solicitada inexistente!");}?><table align="center" width="90%" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="right"><?echo "<td align=center>"; for ($i=0; $i < $numero_de_fotos; $i++) { if ($indice[$pag][$i] != "") { //Retira a possibilidade de criar um erro de lógica na última página. $path = $indice[$pag][$i]; // Armazena o diretório do arquivo de acordo com a página if ($pag > 1) { $p = ($i + 1) + ($numero_de_fotos * ($pag-1)); } else { $p = $i + 1; } echo '<a href=java script:MM_openBrWindow(\'1pop_teste.php?id='.$dir.'&foto='.$p.'\',\'\',\'scrollbars=yes,resizable=yes,width=780,height=575,top=1,left=5\')> <img src='.$path.' class=gray onMouseOut=this.className="gray" onMouseOver=this.className="color" border="0"> </a>'; if (($i+1) % $numero_de_colunas == 0) { //Verifica o número de colunas exata especificada em "$numero_de_colunas". print "<br>"; //Quebra a linha caso o número passe da quantidade setada por $numero_de_colunas. } }}print "</tr><tr><td> <td align=center><br>";for ($i=1; $i <= $n_page; $i++) { if ($i != $foto) { //Testa a pagina atual, é diferente da que esta sendo vista. print "<a href=".$PHP_SELF."?id=$dir&pag=$i> $i</a>"; //Gera o link para a página atual. } else { print " [<b>$i</b>]</u>"; //Cloqueia o link para a página atual fazendo com que nem por engano o usuário clique no link da própria página atual }}print "</tr></table>"; Ele funcionando: www.snk-neofighters.com/publicidade/1teste.php?id=001 so coloquei aki pra testes.. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites