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

Форум PHP

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

 

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

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

тема: Удобная навигация в галерее
 
 автор: коляка   (08.06.2006 в 15:03)   письмо автору
 
 

Подскажите как мне осуществить вот такую вещь:

есть файл "data.txt"

номер категории<>имя фото<>номер фото


1<>096.jpg<>15<>
1<>095.jpg<>14<>
1<>094.jpg<>13<>
1<>093.jpg<>12<>
1<>091.jpg<>9<>
1<>09.jpg<>8<>
1<>08.jpg<>7<>
1<>07.jpg<>6<>
1<>06.jpg<>5<>
1<>05.jpg<>4<>
1<>04.jpg<>3<>
2<>25.jpg<>6<>
2<>26.jpg<>5<>
2<>27.jpg<>4<>
1<>03.jpg<>2<>
1<>02.jpg<>1<>
1<>01.jpg<>0<>


Хочеться сделать удобную навигацию по фото как в прикрепленной картинке, т.е. при просмотре фото номер 6 (большого размера) сверху были маленькие фото (ссылки на большые) идущие до фото номер 6, а внизу маленькие фото идущие после фото номер 6 ... также и для других фото (пример с фото номер 10)

Маленькие фотографии храняться в папке foto / mal
Большие в папке foto / big
Имена одинаковые и у больших и у маленьких фотографий

Помогите , я с этим вопросом уже борюсь давно, не могу понять как это можно сделать на файловой базе данных ...
Вывод фото определенной категории понял как но вот дальше ..

   
 
 автор: John_v   (08.06.2006 в 15:13)   письмо автору
 
   для: коляка   (08.06.2006 в 15:03)
 

Вопрос у Вас классный - "У меня есть вот такая база в текстовом файле, напишите мне удобную навигацию"!
А более конкретно не пробовали формулировать? Что не получается конкретно?

   
 
 автор: Коляка   (08.06.2006 в 15:42)   письмо автору
 
   для: John_v   (08.06.2006 в 15:13)
 

Написать я и сам смогу, принцип работы вот что надо ...

   
 
 автор: Trianon   (08.06.2006 в 15:51)   письмо автору
 
   для: Коляка   (08.06.2006 в 15:42)
 

Принцип?
<?
$photo 
=... // здесь импорт из файла
$current $_GET['num'];
foreach(
$photo as $number => $name)
if(
$current == $number)
    echo 
"<hr><img src=BIG/$name.jpg /><hr>\r\n";
else
    echo 
"<a href=?num=$number><img src=SMALL/$name.jpg /></a>\r\n";
?>

   
 
 автор: Коляка   (08.06.2006 в 17:40)   письмо автору
 
   для: Trianon   (08.06.2006 в 15:51)
 

Все получилось, вот код

 <?
  $ide 
"1";    // номер категории

   
$photo file("data.txt");
    
   
$current $_GET['num']; 

   foreach(
$photo as $number => $name

    {

     list(
$msg1$msg2$msg3) = explode("<>",$name);
  
     if(
$msg1 == $ide
     
      {
  
       if(
$current == $msg3
    
       { echo 
"<hr><img src=BIG/$msg2 /><hr>\r\n"; }
   
       else 
   
       { echo 
"<a href=index.php?num=$msg3><img src=SMALL/$msg2 /></a>\r\n"; }

      }

    }
?>


Но вот как сделать, чтоб количество маленьких фото сверху не превышало 5 шт ... ну и внизу тоже ...
в массивах я мало что понимаю ... но чувствую что вроде как немного осталось ... Подскажите пожалуйста ...

Разделить массив array_slice до нужного фото и после .... если так то надо все по другому делать ... Может в этом варианте есть выход ..

   
 
 автор: Trianon   (08.06.2006 в 17:43)   письмо автору
 
   для: Коляка   (08.06.2006 в 17:40)
 

нет. Это неправильно. В массив нужно проимпортировать записи лишь из нужной категории.

   
 
 автор: Коляка   (08.06.2006 в 19:01)   письмо автору
 
   для: Trianon   (08.06.2006 в 17:43)
 

Не могу понять как это сделать вот еще раз что то получилось вроде тоже самое но по другому ...

<?
   $current 
$_GET['num']; 

   
$ide "1";

   
$data "gallery.set"

   
$content file_get_contents($data);
                            
   
$arr explode("\n",$content);   
 
   for(
$i 0$i count($arr); $i++) 
     
    {
                        
      
$kat substr($arr[$i],0,1);
    
      if(
$kat == $ide )
 
      {

       list(
$msg1$msg2$msg3) = explode("<>",$arr[$i]);

       if(
$current == $msg3
    
       { echo 
"<hr><img src=../gallery/thumb_big/$msg2 /><hr>\r\n"; }
   
   else 
   
       { echo 
"<a href=index.php?num=$msg3><img src=../gallery/thumb_small/$msg2 /></a>\r\n"; }


      } 
    }

?>

   
 
 автор: Trianon   (08.06.2006 в 19:24)   письмо автору
 
   для: Коляка   (08.06.2006 в 19:01)
 

Как-то так...

<?php
$current 
= empty($_GET['num']) ? intval($_GET['num']);
$file file("gallery.set"); $ide "1";
$photo = array(); $total 0$need 0;
foreach(
$file as $line)
  if(
$line != '')
{
    list(
$gal$name$num) = explode('<>'line);
    if(
$ide == $gal)
    {
        ++
$total;
        
$photo[$num] = $name;
        if(
$num == $current)
            
$need $total;
    }
    if(
$need && $total $need 5)   // 5 photos after
        
break;
}
$total 0;
foreach(
$photo as $number => $name)
 if(++
$total >= $need)            // 5 photos before
   
if($current == $number)
    echo 
"<hr><img src=BIG/$name.jpg /><hr>\r\n";
   else
    echo 
"<a href=?num=$number><img src=SMALL/$name.jpg /></a>\r\n";
?>

   
 
 автор: Коляка   (08.06.2006 в 21:29)   письмо автору
 
   для: Trianon   (08.06.2006 в 19:24)
 

Просто огромнейшее спасибо ... до такого решения я долго бы додумывался ...

   
 
 автор: John_v   (08.06.2006 в 15:54)   письмо автору
 
   для: Коляка   (08.06.2006 в 15:42)
 

А если считать все в общий массив, затем его разбить по идентификатору просматриваемого рисунка на два, которые соответсвенно затем и выводить до актуального рисунка и после него.
Прошу прощения если я недопонял.

   
Rambler's Top100
вверх

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