Afisare foto in mai multe pagini

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
adrian_ady
Mesaje: 80

Afisare foto in mai multe pagini

Deci, am un folder in care am incarcat toate fotografiile pentru a folosi Fancybox. Toate bune, functioneaza, insa nu stiu cum sa fac ca aceste foto sa fie luate si impartite automat in mai multe pagini, cate 20 foto/pagina. In prezent, am creat 10 pagini distincte cu cate 20 foto fiecare. Mentionez ca in site am deja un cod pentru dividere in pagini dar nu stiu cum sa-l aplic la ceeace doresc sa fac.
Fotografiile le chem asa:

Cod: Selectaţi tot

<script type="text/javascript">
$(document).ready(function() {
  $('#gallery a').fancybox();
});
</script>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="">
<tr>
  <td>
   <div id="gallery">
<a href="images/proiecte/01_big.jpg" rel="gallery" title=""><img src="images/proiecte/01_small.jpg" alt=""></a>
<a href="images/proiecte/02_big.jpg" rel="gallery" title=""><img src="images/proiecte/02_small.jpg" alt=""></a>
<a href="images/proiecte/03_big.jpg" rel="gallery" title=""><img src="images/proiecte/03_small.jpg" alt=""></a>
......................................................................................................................................
</div>
</td></tr></table>

Afisarea de pagini este:

Cod: Selectaţi tot

<p align="right" style="padding-top : 10px">Pagina: <? Navigation::display($total_rows,$page,$limit,$this_script); ?></p>
Codul pagini este:

Cod: Selectaţi tot

class Navigation
{
	// $total_rows = total rows
	// $page = current page, if(empty($_GET['page'])) $page=1; else $page = $_GET['page'];
	// $limit = number of rows per page, $limit != 0
	// $this_script = file name, it must finish with '?' or '&'
	
	public function __construct()
	{
		//..
	}
	static function display_admin($total_rows,$page,$limit,$this_script) // first page = 1
	{
		if(empty($page)) $page=1;
		if($page > 1)
		{
			echo "<a href='".$this_script."page=".($page-1)."'> &laquo; </a>&nbsp;";
		}
		for($i=1;$i<=ceil($total_rows/$limit);$i++)
		{	
			if($i == $page)
				echo '<span class="pageListing_fundal">'.$i."</span>&nbsp;";		
			else	
				echo "<a href='".$this_script."page=".$i."' class='pageListing'>".$i."</a>&nbsp;";
		}
		if($page < ($total_rows/$limit))
		{
			echo "<a href='".$this_script."page=".($page+1)."' > &raquo;</a>&nbsp;";
		}
	}	
	static function display($total_rows,$page,$limit,$this_script) // first page = 1
	{
		if(empty($page)) $page=1;
		if($page > 1)
		{
			echo "<a href='".$this_script."page=".($page-1)."'> &laquo; </a>&nbsp;";
		}
		for($i=1;$i<=ceil($total_rows/$limit);$i++)
		{	
			if($i == $page)
				echo '<span class="page">'.$i."</span>&nbsp;";		
			else	
				echo "<a href='".$this_script."page=".$i."'class='LinkPageListing'>".$i."</a>&nbsp;";
		}
		if($page < ($total_rows/$limit))
		{
			echo "<a href='".$this_script."page=".($page+1)."' > &raquo;</a>&nbsp;";
		}
	}	
}
?>
Multumesc anticipat !

MarPlo Mesaje: 4343
Incearca acest cod in fisierul php. Daca stii php, te descurci.

Cod: Selectaţi tot

<script type="text/javascript">
$(document).ready(function() {
  $('#gallery a').fancybox();
});
</script>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="">
<tr>
  <td>
   <div id="gallery">
<?php
$total_imgs = 200;      // aici numarul total de imagini
$imgs_pg = 20;     // nr. imagini pe pagina
$nrpg = isset($_GET['page']) ? intval($_GET['page']) : 0;     // numarul paginii accesate
$start_img = $total_imgs - $nrpg * $imgs_pg;     // numarul primei imagini in pagina

// parcurge de la prima imagine pana la maxim adaugat $img_pg, dar nu mai mare de total
for($i=$start_img; $i<min($total_imgs, ($start_img + $imgs_pg)); $i++) {
  if($i < 10) $i = '0'. $i;
  echo '<a href="images/proiecte/'. $i .'_big.jpg" rel="gallery" title=""><img src="images/proiecte/'. $i .'_small.jpg" alt=""></a>';
}
?>
</div>
</td></tr></table>

adrian_ady Mesaje: 80
Cu ajutorul MarPlo am ajuns la varianta functionala:
Mii de multumiri!

- Fisierul "navigare.php" cu clasa pentru creare link-uri pt paginare.

Cod: Selectaţi tot

<?php
class Navigation {
   // $total_rows = total rows
   // $page = current page, if(empty($_GET['page'])) $page=1; else $page = $_GET['page'];
   // $limit = number of rows per page, $limit != 0
   // $this_script = file name, it must finish with '?' or '&'
   
   public function __construct()
   {
      //..
   }
   static function display_admin($total_rows,$page,$limit,$this_script) // first page = 1
   {
      if(empty($page)) $page=1;
      if($page > 1)
      {
         echo "<a href='".$this_script."page=".($page-1)."'> &laquo; </a>&nbsp;";
      }
      for($i=1;$i<=ceil($total_rows/$limit);$i++)
      {   
         if($i == $page)
            echo '<span class="pageListing_fundal">'.$i."</span>&nbsp;";      
         else   
            echo "<a href='".$this_script."page=".$i."' class='pageListing'>".$i."</a>&nbsp;";
      }
      if($page < ($total_rows/$limit))
      {
         echo "<a href='".$this_script."page=".($page+1)."' > &raquo;</a>&nbsp;";
      }
   }   
   static function display($total_rows,$page,$limit,$this_script) // first page = 1
   {
      if(empty($page)) $page=1;
      if($page > 1)
      {
         echo "<a href='".$this_script."page=".($page-1)."'> &laquo; </a>&nbsp;";
      }
      for($i=1;$i<=ceil($total_rows/$limit);$i++)
      {   
         if($i == $page)
            echo '<span class="page">'.$i."</span>&nbsp;";      
         else   
            echo "<a href='".$this_script."page=".$i."'class='LinkPageListing'>".$i."</a>&nbsp;";
      }
      if($page < ($total_rows/$limit))
      {
         echo "<a href='".$this_script."page=".($page+1)."' > &raquo;</a>&nbsp;";
      }
   }   
}
 
- Fisierul php pentru paginare imagini.

Cod: Selectaţi tot

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
  <td>
   <div id="gallery"> 
<?php
include 'navigare.php';        // clasa Navigare
$directory = "images/proiecte/";
$count = count(glob($directory . "*.jpg"));
$total_rows = $count / 2;
$limit = 20;     // nr. imagini pe pagina
$nrpg = isset($_GET['page']) ? intval($_GET['page']) : 1;     // numarul paginii accesate
$start_img = $nrpg * $limit - $limit + 1;     // numarul primei imagini in pagina
$this_script ='proiectetest.php?'; 

// parcurge de la prima imagine pana la maxim adaugat $limit, dar nu mai mare de total
for($i=$start_img; $i<min($total_rows + 1, ($start_img + $limit)); $i++) {
  if($i < 10) $i = '0'. $i;
    echo '<a href="images/proiecte/'. $i .'_big.jpg" rel="gallery" title=""><img src="images/proiecte/'. $i .'_small.jpg" alt=""></a>';
}
?>
  </div>
</td></tr>
<tr><td>
<p align="right" style="padding-top : 10px">Pagina: <? Navigation::display($total_rows,$nrpg,$limit,'proiectetest.php?'); ?></p>
</td></tr></table>

Subiecte similare