| |
|
|
| | и вообще какие будут предложения по увеличению функциональности
[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> '."\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 .= ' <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"> </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] | |
| |
|
|
| |
|
|
| |
для: Avtor
(28.10.2006 в 13:02)
| | | Сори за офтоп, но мне кажется никаких не будет ...
Каментов бы каких-нить, читаемость улучшить ... | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(28.10.2006 в 13:07)
| | | не мне главное чтобы кол - во изображений менять | |
| |
|
|
| |
|
|
| |
для: Avtor
(28.10.2006 в 13:13)
| | | имеось ввиду что предложений по улучшении твоего кода не будет. Ты бы хотя бы добавил комментарии к коду, оформил бы. И оформляй его между тегами [ code ]. А то читать очень не удобно.
а вообще решается это путём передачи переменной, которая будет говорить о том, какое кол-во изображений нужно выводить. Передавать можно например через массив $_GET. То есть обращаешься к скприпту например в таком виде:
http://....../gallery.php?show=15
|
затем когда выбираешь из БД инфу, добавляешь
SELECT .......... LIMIT ".$_GET['show']."
|
а потом выводишь ссылки или форму, дабы пользователь мог выбрать сколько изображений показывать. Только в таком случае нужно бы сделать постраничный вывод, ибо если всего работ 100, а пользователь захочет вывести только 40, то остальные 60 он просто не увидит | |
| |
|
|