|
|
|
| Привет!
Может, кто знает, как сделать так, чтобы при добавлении фотки эта новая фотка отображалась на первой странице?
Вот весь PHP-код.
<?php
$data_array = file("photos/photo.dat");
if (count($data_array) == 0 && $QUERY_STRING != "add"):
?>
<?php
else:
if ($QUERY_STRING == "" || ereg("^photo",$QUERY_STRING)):
?>
<?php
$data_file = "photos/photo.dat";
if (file_exists($data_file)):
$data_array = file($data_file);
else:
$error[] = "Файл $data_file не существует";
endif;
$cnt = count($data_array)-1;
if(!isset($photo)) $photo=0;
if (isset($data_array)):
foreach($data_array as $i=>$string)
{
list($name[],$comment[])= explode("::","$string");
$j=$i+1;
if ($photo < $i && $photo >= ($i-2)):
echo "<a href=\"photos.php?photo=$i\" title=\"$comment[$i]\"><img src='photos/$name[$i]' border='0' height='60'></a> ";
if ($photo == ($i-2)): echo "<a href=\"photo.php?photo=$cnt\" title=\" в конец \" class='small'>>>>></a> "; endif;
elseif ($photo == $i):
echo "<img src=\"photos/$name[$i]\" height='70' border='0' alt='Сейчас Вы просматриваете этот снимок'> ";
elseif ($photo > $i && $photo <= ($i+2)):
if ($photo == ($i+2)): echo "<a href=\"photos.php?photo=0\" title=\" в начало \" class='small'><<<<</a> "; endif;
echo "<a href=\"photos.php?photo=$i\" title=\"$comment[$i]\"><img src='photos/$name[$i]' border='0' height='60'></a> ";
endif;
}
endif;
?>
<?php
if (isset($name)):
foreach($name as $i=>$value)
{
if ($photo == $i) echo "<img src=\"1_erotic/$name[$i]\" border='0'>";
}
endif;
?>
<?php
if (isset($comment)):
foreach($comment as $i=>$value)
{
if ($photo == $i) echo "<b>$comment[$i]</b>";
}
endif;
?>
<?php
if ($photo == 0):
echo "<span class='small' style='color:#999999'><< предыдущая</span>";
else:
$prev = $photo-1;
echo "<a href=\"photos.php?photo=$prev\" class='small'><< предыдущая</a> ";
endif;
echo " | ";
if ($photo < $cnt):
$next = $photo+1;
echo "<a href=\"photos.php?photo=$next\" class='small'>следующая >></a> ";
elseif ($photo == $cnt):
echo "<span class='small' style='color:#999999'>следующая >></span>";
endif;
?>
<?php
endif;
endif;?>
|
Все фотки хранятся в папке "photos", там же находится data-файл. Надо, чтобы при добавлении фотки она сортировалась. Думаю, если сделать
сортировку по дате, то проблем не будет... А потом уж при просмотре фотогалереи выходила та фотка, которая новее (по дате)...
Я убрал все HTML-теги, они там, мне кажется, не нужны...
Есть же все-таки люди, кому это сделать - раз плюнуть... Подскажите, пожалуйста, куда и что вставить...
И ещё: почему при загрузке файлов с русским именем (например, фотография.jpg) фотография не отображается? Можно ли это как-то исправить?
Буду очень благодарен :) | |
|
|
|
|
|
|
|
для: FiX
(17.06.2005 в 20:23)
| | Я так понимаю вся служебная информация хранится в файле photo.dat и сортировка сводится к сортировке записей этого файла - не могли бы вы описать структуру photo.dat, а ещё лучше прикрепить к сообщению готовый файл с несколькими фотографиями.
>И ещё: почему при загрузке файлов с русским именем (например, фотография.jpg)
>фотография не отображается? Можно ли это как-то исправить?
Это зависит от настроек сервера, чтобы не зависить от них лучше переименовывать файл, назначая в качестве имени файла, текущую дату, тогда ваши файлы будут автоматически следовать в нужном вам порядке. | |
|
|
|
|
|
|
|
для: cheops
(17.06.2005 в 20:56)
| | Да, вся инфорация хранится в файле photo.dat. Структура такова:
имя_фотографии::комментарий
Очень часто посетители присылают мне свои фотографии (я устраиываю конкурсы), поэтому у меня нет возможности переименовывать все фотки по дате... Последний вопрос был посвящен именно этому - т.к. посетители всегда присылают фотки с русским именем. А когда через админ.центр добавляешь фотографию, то в галерее она не отображается...
Кстати, отличная мысль: если в качестве имен вставлять дату, то обе проблемы решатся! Только я не смогу написать скрипт, который бы переименовывал фотки автоматически и выводил новую фотку в начале... | |
|
|
|
|
|
|
|
для: FiX
(18.06.2005 в 01:01)
| | Стоп, а где дата сохранения файлов - у вас же только названия или вы не храните в photo.dat дату? | |
|
|
|
|
|
|
|
для: FiX
(18.06.2005 в 01:01)
| | Если photo.dat не предназначен для хранения времени создания файла, то можно извлечь имя последнего файла при помощи скрипта
<?php
// Открываем директорию
$dir = opendir("dir_name");
// В цикле считываем её содержимое
while(($file = readdir($dir)) !== false)
{
// Если текущий объект является файлом -
// помещаем его в массив $arr - в качестве
// ключа время создания файла
if(is_file($file)) $arr[filemtime($file)] = $file;
}
// Закрываем директорию
closedir($dir);
// Сортируем массив
krsort($arr);
// Теперь самый последний файл находится в первом элементе
foreach($arr as $filename)
{
echo $filename;
break;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 02:53)
| | С этим скриптом попробую, большое спасибо :)
А на счет времени создания файла: если файл автоматически будет переименовываться в дату загрузки, то можно будет выводить на первую страницу ту фотку, которая была загружена позже; этим самым и решится проблема с русскими именами...
Вот вкратце вся "история":
пользователь загружает свою фотографию, эта фотка автоматически переименовывается в дату загрузки, и, соответственно, скрипт сортирует фотки по дате загрузки и выдает самую последнюю фотку на первую страницу.
Я вот подумал, можно ли переименовывать фотки, например, так:
$filename = date("D","M","Y","H","I","S");
|
Меня уж не виняйте за такой бредовый код, я пока чайник. Но смысл, наверное, понятен... | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 02:53)
| | С этим скриптом попробую, большое спасибо :)
А на счет времени создания файла: если файл автоматически будет переименовываться в дату загрузки, то можно будет выводить на первую страницу ту фотку, которая была загружена позже; этим самым и решится проблема с русскими именами...
Вот вкратце вся "история":
пользователь загружает свою фотографию, эта фотка автоматически переименовывается в дату загрузки, и, соответственно, скрипт сортирует фотки по дате загрузки и выдает самую последнюю фотку на первую страницу.
Я вот подумал, можно ли переименовывать фотки, например, так:
$filename = date("D","M","Y","H","I","S");
|
Меня уж не виняйте за такой бредовый код, я пока чайник. Но смысл, наверное, понятен... | |
|
|
|