Spero di essere stato chiaro nel titolo, vorrei che in base al numero dei contenuti la pagina si dividesse. Esempio:
il numero dei contenuti variano.. quindi cerco qualche script che mi facesse vedere 20 contenuti per pagina, se i contenuti sono 46 la pagina si divide in tre parti ("index.php" conterrà 20 "index.php?pag=2" conterrà altri 20 e "index.php?pag=3" conterrà gli ultimi 6).
Vorrei che ci fosse anche un link (successivo e precedente) se le pagine sono 2 o +.. se la pagina è una il link non ci deve essere.
il contenuto è una riga di codice
un' esempio di script :
Codice PHP:
<?php
// Configurazione della galleria
// ---------------------------------
// percorso della cartella contenente le immagini ORIGINALI
$path_immagini = "immaginicaricate/";
// percorso della cartella che dovrà contenere le anteprime
$path_anteprime = "anteprime/";
// numero di righe e colonne della tabella che mostrerà le anteprime
$num_righe = 2;
$num_colonne = 2;
// larghezza ed altezza massima delle anteprime
$larghezza_ant = 150;
$altezza_ant = 150;
// ---------------------------------
// provo ad "aprire" la cartella delle immagini originali
$handle = @opendir($path_immagini);
// se c'è stato un errore...
if(!$handle)
die ("Errore nell'apertura della cartella delle immagini '$path_immagini'");
// inizializzo l'array che conterrà i nomi delle immagini
$immagini = array();
// memorizzo in $immagini tutti i nomi delle immagini (JPG) presenti nella cartella degli originali
while (false !== ($file = readdir($handle)))
{
if ($file != '.' && $file != '..' && strpos($file,'.jpg'))
{
if(strpos($file,'.jpg'))
$immagini[] = $file;
}
}
// metto in ordine alfabetico le immagini
sort($immagini);
// calcolo il numero dell'ultima pagina
$ultima_pagina = ceil(count($immagini) / ($num_righe * $num_colonne));
// decido che pagina mostrare
if(isset($_GET['pag']))
{
// se è nell'URL è presente un numero di pagina
if(is_numeric($_GET['pag']) && $_GET['pag'] > 0 && $_GET['pag'] <= $ultima_pagina)
{
// se il numero di pagina indicato è lecito
$pag_corrente = $_GET['pag'];
}
else
{
// nell'URL è stato messo un numero di pagina errato.
// l'utente sta "giocando" con il nostro script !!!
header('location: galleria.php?pag=1');
exit;
}
}
else
{
// se non è stato specificato nulla via URL mostro la prima pagina
$pag_corrente = 1;
}
// quale sarà la prima immagine da mostrare nella pagina corrente?
$immagine_iniziale = ($pag_corrente-1) * $num_righe * $num_colonne;
// Costruisco dei link per accedere alla pagina precedente e successiva (se esistono!)
$navigatore = '';
if($pag_corrente > 1)
$navigatore .= '<a href="galleria.php?pag='.($pag_corrente-1).'"><< Precedente</a> ';
if($pag_corrente < $ultima_pagina)
$navigatore .= '<a href="galleria.php?pag='.($pag_corrente+1).'">Successiva >></a>';
// adesso devo costruire la tabella che conterrà le anteprime
$tab_immagini = '';
// il primo cliclo FOR è per costruire le righe
for ($i = 0; $i < $num_righe ; $i++)
{
// se all'inizio di una riga mi accorgo che non ci sono più immagini da visualizzare
// allora interrompo le iterazioni
if(!isset($immagini[($i*$num_colonne) + $immagine_iniziale]))
break;
// apro la riga corrente
$tab_immagini .= '<tr>';
// il secondo ciclo FOR serve invece a costruire le singole celle apparteneti ad una riga
for ($j = 0; $j < $num_colonne; $j++)
{
// l'indice dell'immagine da mostrare nella cella corrente
$indice = ($i*$num_colonne) + $j + $immagine_iniziale;
// se esiste una immagine con questo indice (potrebbero essere finite!)
if(isset($immagini[$indice]))
{
// controllo che esista l'anteprima per l'immagine corrente
// in caso contrario la creo "al volo"
if(!file_exists($path_anteprime.$immagini[$indice]))
crea_anteprima($immagini[$indice],$larghezza_ant,$altezza_ant,$path_immagini,$path_anteprime);
// ricavo le dimensioni dell'anteprima corrente
list($width, $height) = getimagesize($path_anteprime.$immagini[$indice]);
// non mi resta che creare i tag per il link, l'immagine ed i nome dell'immagine
$cella = '<a href="'.$path_immagini.$immagini[$indice].'">';
$cella .= '<img src="'.$path_anteprime.$immagini[$indice].'" alt="'.$immagini[$indice].'" height="'.$height.'" width="'.$width.'">';
$cella .='</a>';
}
else
{
// sono finite le immagini! Lascio la cella vuota
$cella = ' ';
}
// metto il contenuto della cella appena creata nella tabella
$tab_immagini .= '<td class="cella_immagine" align="center" valign="middle">'. $cella . '</td>';
}
// chiudo la riga corrente
$tab_immagini .= '</tr>';
}
// tutto il contenuto "dinamico" è stato preparato, devo solo caricare il template che si occuperà di mostrarlo
// per proteggermi dal caricamento del template esternamente allo script definisco una costante...
define('LOAD_TEMPLATE',1);
include('template.php');
// fine dello script
exit;
// funzione per la creazione delle anteprime
function crea_anteprima($nome_immagine,$larghezza_anteprima,$altezza_anteprima,$path_immagini,$path_anteprime)
{
// ricavo la dimensione dell'immagine originale
list($larghezza_orig, $altezza_orig) = getimagesize($path_immagini.$nome_immagine);
if ($larghezza_orig < $altezza_orig) {
$larghezza_anteprima = ($altezza_anteprima / $altezza_orig) * $larghezza_orig;
} else {
$altezza_anteprima = ($larghezza_anteprima / $larghezza_orig) * $altezza_orig;
}
// creo una nuova immagine, che conterrà l'anteprima
$image_p = imagecreatetruecolor($larghezza_anteprima, $altezza_anteprima);
// carico l'originale
$image = imagecreatefromjpeg($path_immagini.$nome_immagine);
// metto nella nuova immagine la "riduzione" dell'originale
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $larghezza_anteprima, $altezza_anteprima, $larghezza_orig, $altezza_orig);
// salvo l'anteprima
imagejpeg($image_p, $path_anteprime.$nome_immagine);
}
?>
questo script rileva il numero delle immagini presenti in una cartella e ne fa delle anteprime nella stessa pagina.. se le immagini sono 8 le pagine sono 2 (c'è un link che gli collega "successivo e precedente"..
vorrei che i contenuti fossero prelevati da una pagina (php o html) e non da una cartella
la riga di codice è :
Codice PHP:
<div><a href="prova" ><img src="immagine.jpg" width="100" height="69" align="left" /><span style="color: #0000FF;"><span style="font-size: small;">3...<br></a></span></span><span style="font-size: x-small;"><span style="color: #808080;">3:17</span></span></div>