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)."'> « </a> ";
}
for($i=1;$i<=ceil($total_rows/$limit);$i++)
{
if($i == $page)
echo '<span class="pageListing_fundal">'.$i."</span> ";
else
echo "<a href='".$this_script."page=".$i."' class='pageListing'>".$i."</a> ";
}
if($page < ($total_rows/$limit))
{
echo "<a href='".$this_script."page=".($page+1)."' > »</a> ";
}
}
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)."'> « </a> ";
}
for($i=1;$i<=ceil($total_rows/$limit);$i++)
{
if($i == $page)
echo '<span class="page">'.$i."</span> ";
else
echo "<a href='".$this_script."page=".$i."'class='LinkPageListing'>".$i."</a> ";
}
if($page < ($total_rows/$limit))
{
echo "<a href='".$this_script."page=".($page+1)."' > »</a> ";
}
}
}
?>
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)."'> « </a> ";
}
for($i=1;$i<=ceil($total_rows/$limit);$i++)
{
if($i == $page)
echo '<span class="pageListing_fundal">'.$i."</span> ";
else
echo "<a href='".$this_script."page=".$i."' class='pageListing'>".$i."</a> ";
}
if($page < ($total_rows/$limit))
{
echo "<a href='".$this_script."page=".($page+1)."' > »</a> ";
}
}
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)."'> « </a> ";
}
for($i=1;$i<=ceil($total_rows/$limit);$i++)
{
if($i == $page)
echo '<span class="page">'.$i."</span> ";
else
echo "<a href='".$this_script."page=".$i."'class='LinkPageListing'>".$i."</a> ";
}
if($page < ($total_rows/$limit))
{
echo "<a href='".$this_script."page=".($page+1)."' > »</a> ";
}
}
}
- 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>