Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать в галлереи выбор количества изображени, на странице
 
 автор: Avtor   (28.10.2006 в 13:02)   письмо автору
 
 

и вообще какие будут предложения по увеличению функциональности

[CODE]
<?
Error_Reporting(E_ALL & ~E_NOTICE);

function GetPages($url,$total,$perpage,$page,$amount=10){
$mpp = $perpage; $prev_page = $page - 1; $next_page = $page + 1;
if($total <= $mpp) $pages = 1;
else if($total % $mpp == 0) $pages = $total / $mpp;
else $pages = $total / $mpp + 1;
$pages = (int)$pages; if($pages=="") $pages = 1;
$s_pages = ($page < $amount)? 1 : floor($page / $amount) * $amount;
$e_pages = $page + ($amount - 1);
if($e_pages > $pages) $e_pages = $pages;
if($pages > $amount-1){
if($prev_page) $s .= ' <a href="'.$url.'page='.$prev_page.'"><< Назад</a>&nbsp; '."\n";
#if($prev_page != 0) $s .= ' <b><a href="'.$url.'page=1">1</a></b> ... '."\n";
}
for($i=$s_pages;$i<=$e_pages;$i++){
if($i != $page) $s .= '<b><a href="'.$url.'page='.$i.'"> '.$i.'</a></b> '."\n";
else if($i != 1) $s .= ' <b>['.$i.']</b> ';
else if($page != $pages) $s .= ' <b>[1]</b> ';
}
if($page != $pages && $pages > $amount-1){
#$s .= ' ... <b><a href="'.$url.'page='.$pages.'">'.$pages.'</a></b> '."\n";
$s .= '&nbsp; <a href="'.$url.'page='.$next_page.'">Вперед >></a> '."\n";
}
if(!isset($s) or $s == "") $s = ' <b>[1]</b> ';
$printPage_begin = '<TABLE CellSpacing=0 CellPadding=0 Border=0>';
$printPage_begin .= ' <TR>';
$printPage_begin .= ' <TD Align="center" Style="padding-right:5px;padding-left:5px">';
$printPage_begin .= ' <b>Страницы ('.$pages.') :</b> ';
$printPage_end = '</TD></TR></TABLE>';
return $printPage_begin.$s.$printPage_end;
}

function getDirList ($dirName) {



static $result_array=array();

$d = dir($dirName);



while($entry = $d->read()) {

if ($entry != "." && $entry != "..") {

if (is_dir($dirName."/".$entry)) {

array_push($result_array,$entry);

//echo $dirName."/".$entry."<br>\n";

}

}

}

$d->close();



sort($result_array);
return $result_array;

}



function getDirContents ($dirName) {



static $result_array=array();



$d = dir($dirName);



while($entry = $d->read()) {

if ($entry != "." && $entry != "..") {

if (!is_dir($dirName."/".$entry)) {
str_replace(" ", "[spc]",(str_replace("&", "[amp]",$entry)));
array_push($result_array,$entry);

}

}

}

$d->close();


sort($result_array);
return $result_array;

}



// Load the directory tree

$DirArray = getDirList("./pictures");


for($i=0; $i < count($DirArray); $i++) {
if($dir==$DirArray[$i]) {
$DirIndex = $i;
}
}


$NextDir = "showimages.php?dir=".$DirArray[$DirIndex + 1];
$PrevDir = "showimages.php?dir=".$DirArray[$DirIndex - 1];
$NextDirNam = $DirArray[($DirIndex + 1)];
$PrevDirNam = $DirArray[($DirIndex - 1)];
if ($DirIndex == 0) {
$PrevDir = "showimages.php?dir=".$DirArray[(Count($DirArray) - 1)];
$PrevDirNam = $DirArray[(Count($DirArray) - 1)];
}

if (($DirIndex + 1) > (Count($DirArray) - 1)) {
$NextDir = "showimages.php?dir=".$DirArray[0];
$NextDirNam = $DirArray[0];
}
?></B></FONT></P><DIV ALIGN="center"></DIV><TABLE WIDTH="450" BORDER="0" CELLSPACING="2" ALIGN="CENTER"><TR BGCOLOR="#ffffff"><TD NOWRAP COLSPAN="3"><CENTER><FONT SIZE="3"><B><A HREF="index.php">на главную
</A> / <?
echo str_replace(".", " ",$dir);

$Column = 1;
$DirName = $DirArray[$DirIndex];
$CurrentDir = "./pictures/".$DirName;
$DirContents = getDirContents($CurrentDir);
$TotalImage = count($DirContents);
$OnPage = 12; // Кол-во картинок на странице
if (isset($_GET['page']) and $_GET['page']!='') $Page = $_GET['page'];
else $Page = 1;

$To = ($Page-1)*$OnPage;
$From = $OnPage*$Page-1;
if($To<=0) $To = 1;
if($From>$TotalImage) $From = $TotalImage;
$Url = (isset($_GET['dir']) or $_GET['dir']!='')? 'showimages.php?dir='.$_GET['dir'].'&': 'showimages.php?';

?></B><br><?=GetPages($Url,$TotalImage,$OnPage,$Page,6);?></FONT></CENTER></TD></TR><TR><TD NOWRAP WIDTH="195" BGCOLOR="#ffffff"><DIV ALIGN="CENTER"><FONT SIZE="1" FACE="Arial, Helvetica, sans-serif"><B><A HREF="<?=$PrevDir?>"><?
echo str_replace(".", " ",$PrevDirNam);
?></A></B></FONT></DIV></TD><TD NOWRAP WIDTH="44">&nbsp;</TD><TD NOWRAP WIDTH="197" BGCOLOR="#ffffff"><DIV ALIGN="CENTER"><FONT SIZE="1" FACE="Arial, Helvetica, sans-serif"><B><A HREF="<?=$NextDir?>"><?
echo str_replace(".", " ",$NextDirNam);
?></A></B></FONT></DIV></TD></TR></TABLE><P ALIGN="CENTER"><?

echo "<table border=\"0\" cellspacing=\"30\" cellpadding=\"0\"><tr>";






//echo $CurrentDir;





for ($i=$To-1; $i<=$From-1; $i++) {
#for($i=0; $i < count($DirContents); $i++) {

echo "<td ><img onclick=\"getCode(this.src);\" border=\"0\" src=\"".$CurrentDir."/".$DirContents[$i]."\"></td>";

if($Column==6) {

$Column = 0;

echo "</tr>";

}

$Column++;

}



if($Column != 0) {

for($i=$Column; $i<8;$i++){

echo "<td>";

}

}

echo "</font></table>";


?>[/CODE]

   
 
 автор: kasmanaft   (28.10.2006 в 13:07)   письмо автору
 
   для: Avtor   (28.10.2006 в 13:02)
 

Сори за офтоп, но мне кажется никаких не будет ...
Каментов бы каких-нить, читаемость улучшить ...

   
 
 автор: Avtor   (28.10.2006 в 13:13)   письмо автору
 
   для: kasmanaft   (28.10.2006 в 13:07)
 

не мне главное чтобы кол - во изображений менять

   
 
 автор: NIK   (28.10.2006 в 13:26)   письмо автору
 
   для: Avtor   (28.10.2006 в 13:13)
 

имеось ввиду что предложений по улучшении твоего кода не будет. Ты бы хотя бы добавил комментарии к коду, оформил бы. И оформляй его между тегами [ code ]. А то читать очень не удобно.

а вообще решается это путём передачи переменной, которая будет говорить о том, какое кол-во изображений нужно выводить. Передавать можно например через массив $_GET. То есть обращаешься к скприпту например в таком виде:

http://....../gallery.php?show=15

затем когда выбираешь из БД инфу, добавляешь

SELECT .......... LIMIT ".$_GET['show']."

а потом выводишь ссылки или форму, дабы пользователь мог выбрать сколько изображений показывать. Только в таком случае нужно бы сделать постраничный вывод, ибо если всего работ 100, а пользователь захочет вывести только 40, то остальные 60 он просто не увидит

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования