Автор Тема: простенькая фотогалерея  (Прочитано 11189 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« : 06 Декабря 2003, 04:25:25 »
Тему создаю т.к. в поиске ничего подходящего не нашел.
вот по этому адресу проживает ранняя-ранняя версия сайта... http://www.svaoscooters.u9.ru/zybon/
идея такая: слева и справа проживают ссылки на галереи в виде картинки, когда кликаешь, грузятся тамбнейлы в центральную часть, кликаешь на тамбнеил, появляется картинка, а внизу ссылки на остальные картинки (1 2 3 4 5 6 7 8...) и стрелочки "первая" "предыдущая" "следующая" "последняя". На HTML сделать не пробелма, но пора уже и рости, книги по php у меня есть, вы хотя бы тока намекните, у меня несколько вопросов по авторматизации процесса.
1. Надо чтобы в папке photo были папки 1, 2, 3, 4 и .т.д.
и чтобы галереи с названием четных папок браузер показывал в левой колонке, а нечетные - в правой.
2. Надо чтобы откуда-то грузилась информация о галерее например в папке 1 лежит фаил conf.txt в нем в первой строчке - дата, во второй - автор, в третьей описание.
3. т.к. размеры тамбнейлов для левой и правой колонок, в отличие от тех что будут в середине, будут больше то надо чтобы в папке, например 1, был фаил tumb.jpg который скрипт (в каждой папке есть один фаил с этим именем) и его скрипт подгружает в правую и левую колноки.
4. Как научить считать скрипт колличество фотографий (формат имени например i055.jpg, i056.jpg, i057.jpg ).
А потом в ссылки стрелочек (первая, последняя..) вставлять соответствующий текст, а так же как научить, чтобы ссылка на следующую картинку сама изменялась (напрмер у вас загружена фото номер 3, ссылка на i004.jpg вы кликаете загружается страничка с картинкой 4, и та же ссылка у вас уже на i005.jpg)?

Вроде все, буду признателен если не будет прямых оскорблений, я сам знаю что я ламер в этом деле.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #1 : 06 Декабря 2003, 08:27:09 »
я тут надумал за ночь по поводу стрелок "следующая" и "предыдущая" - c помошью функции if проверяем (правда не знаю как) имя файла если оно начинается на i, то выдергиваем цифру (тоже не знаю как) 078, ей присваиваем например имя... $ph_number, потом для ссылки "следующая" пишем что-то вроде \'i\' . (078 + 1) . \'.jpg\'. Почти тоже самое и с предидущей \'i\' . (078 - 1) . \'.jpg\'. Я в правильном направлении думаю?
А с помощью какой функции можно для ссылки "выдернуть" номер последнего файла...? опять проверка имени елси i, то "check all names and use last" - супер-мега функция. :)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
простенькая фотогалерея
« Ответ #2 : 06 Декабря 2003, 15:17:04 »
Общие ссылки:
[p]opendir[/p]
[p]readdir[/p]
[p]is_dir[/p]
[p]file_exists[/p]
аплоад
[p]umask[/p]
Цитировать
Miller:
Надо чтобы в папке photo были папки 1, 2, 3, 4

[p]mkdir[/p]
[p]rmdir[/p]
Цитировать
Miller:
и чтобы галереи с названием четных папок браузер показывал в левой колонке, а нечетные - в правой.

$a % $b
Цитировать
Miller:
фаил conf.txt

[p]fopen[/p]
[p]fgets[/p]
[p]fclose[/p]
[p]file[/p] (не используй для больших файлов!)
[p]unlink[/p]
Цитировать
Miller:
фаил tumb.jpg

[p]ImageCreateFromJPEG[/p] или другие ImageCreateFrom*
[p]ImageCreateTrueColor[/p] или в крайнем случае [p]ImageCreate[/p]
[p]ImageCopyResampled[/p] или в крайнем случае [p]ImageCopyResized[/p]
[p]ImageJPEG[/p] или [p]ImagePNG[/p] или им подобные (обрати внимание на второй и третий необязательные аргументы)

Цитировать
Miller:
Как научить считать скрипт колличество фотографий

Формат имени для этого знать не нужно.
В цикле читаешь содержимое директории с фотографиями (смотри пример в [p]opendir[/p]) и считаешь их например через $i++ или сначала складываешь в массив, а потом через count($array). Если не знаешь, что такое $i++ или что такое массив, сначала перечитай свои книжки или документацию, за фотогалерею тебе браться рано.

Когда осилишь всё это, дальнейшие вопросы должны отпасть сами собой.

Если окончательно запутался, советую перечитать разелы II, III и IV руководства, а затем выбрать то, что тебе нужно, из раздела V.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #3 : 06 Декабря 2003, 20:16:47 »
во спасибо, щас буду читать :)

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #4 : 06 Декабря 2003, 20:20:41 »
А кто нибудь может мне ответить на вопрос, почему когда я пишу print "
"; мне пиут об ошибке, а когда я пишу print \'
\';
сторка переносится?

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #5 : 06 Декабря 2003, 20:24:46 »
сори за флуд...
А как заставить скрипт считать только файлы начинающиеся на "i"?
И вот еще... я написал таку строку:
$info = fopen ("photo/conf.txt", "r");
print "Автор: $info"; // Тут надо показать Только первую строку из файла conf.txt
print "Дата: $info"; // Тут надо показать Только вторую строку из файла conf.txt
print "Описание: $info"; // Тут надо показать Только третью строку из файла conf.txt
Может сужествует какая-нить команда типа show_only_second_line :rolleyes:
« Последнее редактирование: 06 Декабря 2003, 20:40:46 от Miller »

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
простенькая фотогалерея
« Ответ #6 : 06 Декабря 2003, 20:44:08 »
Елси что-то забыл спросить, можно отредактировать своё сообщение, чтобы не устраивать длинные монологи.

Цитировать
Miller:
почему когда я пишу print "
"; мне пиут об ошибке, а когда я пишу print \'
\'; сторка переносится?

Не верю.
Приведи код, как он есть.
Цитировать
Miller:
как заставить скрипт считать только файлы начинающиеся на "i"?

А что, ты всё остальное уже перечитал?
Если бы послушал меня, тебе бы не пришлось читать файлы, начинающиеся на i. Ты бы читал просто все файлы из директории.
Но если хочешь начинающиеся на i, то пожалуйста (пример взял из мана по [p]readdir[/p]):
$dir "/tmp/"

// Open a known directory, and proceed to read its contents 
if (is_dir($dir)) {
    if (
$dh opendir($dir)) {
        while ((
$file readdir($dh)) !== false) {
            
// проверка первой буквы
            
if ($file{0} != \'i\') continue;
            print "filename: $file : filetype: " . filetype($dir . $file) . "\\n";
        }
        closedir($dh);
    }
}
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #7 : 06 Декабря 2003, 21:49:55 »
Насчет переноса строка - щас все перепроверил... работает, сегодня ночью не работало...
Может ты меня не допонял, я хочу чтобы в папке photo (папка с галереями) были папки (закачиваются через ftp) 1, 2, 3, 4, 5, 6, 7 (это галереи), в этих папках 3 "группы" файлов, первая - фаил с конфигом этой галереи (автор, дата, описание), вторая - tumb.jpg - используется ТОЛЬКО как тамбнеил для левой или праввой колонок и третий - это сами фотграфии, поскольку в папке есть и другой .jpg фаил, то надо их как то обозначить, я решил отбозначить их буковй "i" i_номер_картинки_.jpg.
Кстати, чтение из файла одной сторки это функция fgets

попутно возник еще один вопрос
допустим я написал
$file_number = "054";
print "$file_number"; //выводит ПРОСТО 54, как сделать так, чтобы выводилось 054, и в тоже время это оставалось числом?
и вот еще, где тут ошибка, т.к. не вывдоится i055.jpg?:
$img_num = "054";
$link_next = $img_num + 1;
$file_name = \'i\' . \'0\' . $link_next . \'.jpg\';
print "$filename";
?>

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
простенькая фотогалерея
« Ответ #8 : 06 Декабря 2003, 21:58:56 »
Я всё прекрасно понял.
Вот только вместо того, чтобы геморроится с этими префиксами "i", можно пойти методом исключения: если файл не "config.txt" и не "thumb.jpg", то это - фотка.
Но вот после этой строчки
Цитировать
Miller:
Кстати, чтение из файла одной сторки это функция fgets

я тебе вообще отвечать не собираюсь.
Ты это мне объясняешь или для себя итог подводишь?
Нахрена я вообще первое сообщение в этой теме писал по-твоему?
Иди перечитай все ссылки и не задавай вопросов, на которые уже получил ответ.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #9 : 07 Декабря 2003, 02:16:25 »
я конечно извиняюсь, но все таки может мне кто подскажет как с помощью fgets показать только, например, вторую строку?

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
простенькая фотогалерея
« Ответ #10 : 07 Декабря 2003, 02:37:38 »
Да хотя бы так:
fgets
($fp);
$stroka_dva fgets($fp);
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
простенькая фотогалерея
« Ответ #11 : 07 Декабря 2003, 19:43:53 »
Miller, не майся дурью по поводу fgets.
считывай весь свой conf ЦЕЛИКОМ.
Вот такой командой:
if (is_readable(\'conf.txt\')) list($avtor,$data,$opisanie)=file(\'conf.txt\');

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

По поводу галереи очень рекомендую прочесть вот это
http://xpoint.ru/forums/programming/PHP/thread/23546.xhtml

И, САМОЕ ГЛАВНОЕ
*************************************************
*************************************************
НЕ ПЫТАЙСЯ СДЕЛАТЬ ВСЕ СРАЗУ!
*************************************************
*************************************************

Делай постепенно.
У тебя полная каша - и в две колонки выводить, и тумбнайлы разные, и инфа.
Делай постепенно.

Забудь сейчас вообще про все, что ты тут напридумывал.
сделай просто галерею, которая тебе выводит ссылки на картинки.
Это ОСНОВНОЕ!
Потом сделай свой конфиг.
и только потом уже с тумбнайлами, колонками и прочим.

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #12 : 07 Декабря 2003, 20:28:51 »
Пасибо большое!
Я уже организовал совсем простенький просмотр, а конфиг грузится из одного файла - массива, туда просто добавляешь переменную, нолик и все... теперь пытаюсь сделать, так чтобы не надо было делать список картинок...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
простенькая фотогалерея
« Ответ #13 : 07 Декабря 2003, 20:35:19 »
ну и как - разобрался?
если я правиль6но понял, что ты имеешь в виду, то как раз про список и идет речь по ссылке, которую я тебе дал

Оффлайн Miller

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vicecity.dtn.ru
простенькая фотогалерея
« Ответ #14 : 07 Декабря 2003, 23:55:23 »
У меня будет фотоальбом, с несколькими глаереями, но я пока иду от обратного - начал с самого показа снимков, НО информация о том, где лежат фотографии, грузится из массива, это решение позволит создать несколько галлерей. А вот как сделать кнопочки "предыдущая" "следующая".
Отличное наглядное пособие.
Сенкс

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28