|
|
|
| Подскажите как мне осуществить вот такую вещь:
есть файл "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
Имена одинаковые и у больших и у маленьких фотографий
Помогите , я с этим вопросом уже борюсь давно, не могу понять как это можно сделать на файловой базе данных ...
Вывод фото определенной категории понял как но вот дальше .. | |
|
|
|
|
|
|
|
для: коляка
(08.06.2006 в 15:03)
| | Вопрос у Вас классный - "У меня есть вот такая база в текстовом файле, напишите мне удобную навигацию"!
А более конкретно не пробовали формулировать? Что не получается конкретно? | |
|
|
|
|
|
|
|
для: John_v
(08.06.2006 в 15:13)
| | Написать я и сам смогу, принцип работы вот что надо ... | |
|
|
|
|
|
|
|
для: Коляка
(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";
?>
|
| |
|
|
|
|
|
|
|
для: 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 до нужного фото и после .... если так то надо все по другому делать ... Может в этом варианте есть выход .. | |
|
|
|
|
|
|
|
для: Коляка
(08.06.2006 в 17:40)
| | нет. Это неправильно. В массив нужно проимпортировать записи лишь из нужной категории. | |
|
|
|
|
|
|
|
для: 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"; }
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Коляка
(08.06.2006 в 19:01)
| | Как-то так...
<?php
$current = empty($_GET['num']) ? 0 : 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 + 5 >= $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";
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.06.2006 в 19:24)
| | Просто огромнейшее спасибо ... до такого решения я долго бы додумывался ... | |
|
|
|
|
|
|
|
для: Коляка
(08.06.2006 в 15:42)
| | А если считать все в общий массив, затем его разбить по идентификатору просматриваемого рисунка на два, которые соответсвенно затем и выводить до актуального рисунка и после него.
Прошу прощения если я недопонял. | |
|
|
|