Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Php галерея+сортировка (склеить)
denop  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 32843
На форуме: 4 года, 5 месяцев, 7 дней
Карма:




Всем доброго времени суток!
Есть галерея работающая без базы данных. Просто считывает фото из папки. сортировки по порядку не было. Вот и решил прикрутить ее. А то фото в разнобой.
Исходный код:

index.php


<?
include("config.php");
?>
<html>
<
head>
<
script type="text/javascript" src="/js/prototype.js"></script>
<
script type="text/javascript" src="/js/scriptaculous.js?load=effects,builder"></script>
<
script type="text/javascript" src="/js/lightbox.js"></script>
</
head>
</
html>
<
table cellpadding=2 cellspacing=7 border=0 width=100%>
<
tr>
<
td valign=top width=190>
<
table class=tborder cellspacing=1 cellpadding=6 border=0 width=200>
<
tr>
<
td class=tcat>Галереи</td>
</
tr>
<
tr>
<
td class=alt2><a href="index.php">Главная</a></td>
</
tr><?
$t=0;
$dir_menu=opendir("./files");
while($folder=readdir($dir_menu))
{
if($folder!="." && $folder!=".." && filetype("./files/$folder")=="dir")
{
chdir("./files/$folder");
#$scan_dir=opendir(".");
$t++;
if(file_exists("info.dat"))
{
$file=fopen("info.dat",r);
$title_cat=fgets($file);
clearstatcache();
}
else $title_cat="Категория $t";
$array_cat["$folder"]=ucfirst(trim($title_cat));
chdir("../../");
}
}


if(count($array_cat)>0)
{
asort($array_cat);
foreach($array_cat as $key=>$val)
{
$first=substr($val,0,1);?>
<tr>
<
td class=alt2><?if($first!=$symbol) echo "<b>";?>
<a href="index.php?cat=<?echo rawurlencode($key);?>"><?echo$val;?></a>
<?if($first!=$symbol) echo "</b>";?></td>
</
tr><?
$symbol=$first;
}
}
?>
</table></td>
<
td valign=top align=center width=90%><?
$cat=urldecode($cat);
if(file_exists("./files/$cat"))
{
chdir("./files/$cat");
$scan_dir=opendir(".");
while($scan_dir2=readdir($scan_dir))
{
$arr=explode(".",$scan_dir2);
$end=strtolower(end($arr));
if($scan_dir2!="." && $scan_dir2!=".." && in_array($end,$types)) $r++;
}
$pages=ceil($r/$f);
if($page=="" || $page=="0" || $page>$pages) $page=1;
if(file_exists("info.dat"))
{
$file=fopen("info.dat",r);
$title_cat=fgets($file);
clearstatcache();
}
else $title_cat="Категория NONAME";?>
<table class=tborder cellspacing=1 cellpadding=6 width="100%" align=center border=0>
<
tr>
<
td class=tcat colspan=<?echo$x;?>>Галерея: <?echo$title_cat;?>.
Всего фотографий: <?echo$r;?>.</td>
</
tr>
<
tr>
<
td class=alt2 colspan=<?echo$x;?> valign=middle align=center><?
if($page>1) echo "<a href=\"index.php?cat=$cat&page=".($page-1)."\"><</a>  ";?>
Страницы: <?pages($r);?><?
if($page<$pages) echo "  <a
href=
\"index.php?cat=$cat&page=".($page+1)."\">></a>  ";?></td>
</
tr><?
$i=$ii=1;
$start=($page-1)*$f+1;
$end=$page*$f;
$dir_gal=opendir(".");
while($image=readdir($dir_gal))
{
$arr=explode(".",$image);
$ext=strtolower(end($arr));
if($image!="." && $image!=".." && in_array($ext,$types) && filetype("$image")=="file")
{
if($ii>=$start && $ii<=$end)
{
if($i==1) echo "<tr>";
$info_img=getimagesize($image);
echo "<td class=alt2 valign=middle align=center><strong> $ii </strong><br>
<a href=
\"full.php?cat=".urlencode($cat)."&img=$image\" target=blank>
<img src=
\"image.php?cat=".urlencode($cat)."&image=$image\" border=0></a>
<br>Название: "
.str_replace(".$end","",$image)."<br>
<i>Размер:
$info_img[0]x$info_img[1]</i></td>";
if($i==$x) { echo "</tr>"; $i=1; }
else $i++;
}
$ii++;
}
}
?>
<tr>
<
td class=alt2 colspan=<?echo$x;?> valign=middle align=center><?
if($page>1) echo "<a
href=
\"index.php?cat=$cat&page=".($page-1)."\"><</a>  ";?>
Страницы: <?pages($r);?><?
if($page<$pages) echo "  <a
href=
\"index.php?cat=$cat&page=".($page+1)."\">></a>  ";?></td>
</
tr>
</
table><?
}
else
{?>
<table class=tborder cellspacing=1 cellpadding=6 width="100%" align=center border=0>
<
tr>
<
td class=tcat>Галлерея!</td>
</
tr>
<
tr>
<
td class=alt1 align=middle><?include("design/index.tpl");?></td>
</
tr>
</
table><?
}?>
</td>
</
tr>
</
table>



config.php


<?

error_reporting (E_ERROR | E_WARNING | E_PARSE);

#####################################################################
################# POST and GET variables ############################
#####################################################################


$mode = $_GET[mode];
$cat = $_GET[cat];
$page = $_GET[page];
$image = $_GET[image];
$img = $_GET[img];
$nc = $_GET[nc];

#####################################################################

$version = "v1.0"; // версия

$site_url = "http://my_site"; // адрес сайта

$site_slogan = "Yo!"; // слоган для добавления в избранное

$site_title = "my_title"; // название сайта

$x = 4; // количество картинок вс троке

$y = 5; // количество строк

$types = array("jpg","gif","png"); // типы файлов для загрузки (не трогать!)

$deg = 70; // степень сжатия

$go = "./files/$cat"; // каталог для загрузки

$w = 133; // ширина уменьшения

$h = 100; // высота уменьшения

$f=$x*$y;

function no_image()
{
$img_out=ImageCreate(100, 75);
$background=ImageColorAllocate($img_out,250,250,250);
imagefill($img_out, 0, 0,$background);
$text_color=ImageColorAllocate($img_out,0,0, 0);
ImageString($img_out, 5, 11, 1, "Error" , $text_color);
ImageJPEG($img_out,'',50);
ImageDestroy($img_out);
}

function compress($filename,$q,$w="",$h="")
{
$size_img=getimagesize($filename);
if(empty($w)) $w=$size_img[0];
if(empty($h)) $h=$size_img[1];
$ratio=$w/$h;
if(($size_img[0]<$w) && ($size_img[1]<$h)) return true;
$src_ratio=$size_img[0]/$size_img[1];
if($ratio<$src_ratio) $h=$w/$src_ratio;
else $w=$h*$src_ratio;
$dest_img=imagecreatetruecolor($w,$h);
$white=imagecolorallocate($dest_img, 255, 255, 255);
if($size_img[2]==2) $src_img=imagecreatefromjpeg($filename);
elseif($size_img[2]==1) $src_img=imagecreatefromgif($filename);
elseif($size_img[2]==3) $src_img=imagecreatefrompng($filename);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
if($size_img[2]==2) imagejpeg($dest_img, "", $q);
elseif($size_img[2]==1) imagejpeg($dest_img, "", $q);
elseif($size_img[2]==3) imagepng($dest_img, "", $q);
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}

function pages($string)
{
global $f,$u,$page,$pages,$cat;
if($string>$f)
{
if(!isset($page))
{
$page="1";
}
for($u=1;$u<=$pages;$u++)
{
if($u!=$page)
{
if($u==$pages)
{
print ' <a href="'.$PHP_SELF.'?cat='.rawurlencode($cat).'&page='.$u.'">'.$u.'</a>';
}
else print ' <a href="'.$PHP_SELF.'?cat='.rawurlencode($cat).'&page='.$u.'">'.$u.'</a>';
}
else
{
if($u==$pages)
{
print ' '.$u;
}
else print ' '.$u;
}
}
}

else echo"1";
}

?>


И вот такая сортировка


$dirGal = opendir('files');
$myArray = array();

// собираем имена файлов в массив как есть
while(false !== ($image=readdir($dirGal))) {
if ($image != '.' && $image != '..') {
$myArray[] = $image;
}
}

closedir($dirGal);

// сортируем
natsort($myArray);

// выводим на экран
foreach ($myArray as $val) {
echo "{$val}<br/>";
}



Есть один из вариантов как мне удалось скрестить их:
Это кусок скрипта что отвечает за вывод фото на экран...

<?
$i=$ii=1;
$start=($page-1)*$f+1;
$end=$page*$f;

$dir_gal=opendir(".");
$myArray = array();//

while(false !== ($image=readdir($dir_gal)))//($image=readdir($dir_gal))
{
$arr=explode(".",$image);
$ext=strtolower(end($arr));
if($image!="." && $image!=".." && in_array($ext,$types) && filetype("$image")=="file")
{
$myArray[] = $image;
}
}


closedir($dir_gal);

natsort($myArray);

foreach ($myArray as $val) {
if($ii>=$start && $ii<=$end)
{
if($i==1) echo "<tr>";
$info_img=getimagesize($image);
echo "
<td valign=middle align=center>
<div class=pic_in>
<div style=
\"background:url(image.php?cat=".urlencode($cat)."&image=$val) no-repeat 50% 50%;\" class=\"pic\">
<a class=
\"group4\" href=\"".$linksite."gallery/files/".urlencode($cat)."/$val\" title=".urlencode($cat)." >".urlencode($cat)."</a>

</div>
</div>
"
;
echo "</td>";
}

if($i==$x) { echo "</tr>"; $i=1; }
else $i++;
}

$ii++;
?>



Но вылезла беда. Ставил разбивку 2 ряда по 3шт. Не пашет! Теперь выводит все фото в галереи без разбивки постанично 6шт/страница.

Помогите плиз!
Заранее благодарю!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
fdr  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 65
Пользователь №: 32519
На форуме: 4 года, 6 месяцев, 9 дней
Карма: 5

Трезвый :
27 лет, 5 месяцев, 13 дней


if($i==1) echo "<tr>";

на мой взгляд ошибка здесь, $i у тебя только в начале равно 1 и создает <tr> и все!!!
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
denop  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 32843
На форуме: 4 года, 5 месяцев, 7 дней
Карма:




В исходнике тоже
Цитата
if($i==1) echo "<tr>";

и все пашет- вывод, пагинация! нет только сортировки по порядку!
Мне кажется что я не правильно сортировку прикрутил. Вот и дает сбой!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
denop  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 32843
На форуме: 4 года, 5 месяцев, 7 дней
Карма:




Всем добрый вечер! Прошу помочь прикрутить к галереи сортировку. Все моменты изложил в начале темы.
Заранее благодарю за помощь!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса