Борн ([info]nestor_asa) wrote,
@ 2008-05-09 16:00:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Движок для фотосайта
У меня за три с половиной года скопилось более 30000 (тридцати тысяч) фотокадров. Из них публикации вполне достойны тысячи пять, очень давно хочется сделать фотосайт. Давно есть сервер, давно есть домен, нужен только движок.
Когда-то смотрел, не нашел ничего вразумительного.

Требования к движку:
* возможность метить фотографии несколькими независимыми категориями
* возможность просматривать галереи по категориям
* возможность просматривать последовательно по дате съемки
* возможность перемещать фотографии по порядку внутри категории (например в галерее пятое и четвертое подряд фото поменять местами)
* возможность просмотра новых поступлений фотографий с последнего посещения или произвольной даты, а для посетителей подписаться на дайджест обновлений
* возможность оставлять комментарии посетителей к фотографиям (наряду с авторскими описаниями)
* возможность отмечать предметы и людей на фотографиях, с выбором фотографий, относящихся к выбранному человеку (примерно как это сделано "в контакте")
* возможность закрытия некоторых галерей по паролю или правам доступа (типа личные фотки не для всех)
* легкость заливки большого количества фотографий (опять же "в контакте" показывает пример, как это можно реализовать, чтобы получалось легко)
* возможность либо перезаливки отдельной фотографии с сохранением комментариев и разметки либо простейшего редактирования прямо на сайте
* платформа linux-совместимая

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

самому писать такое - геморрой на несколько месяцев :(


(Post a new comment)


[info]aaz_2
2008-05-09 12:15 pm UTC (link)
Ммм... посмотри в сторону Galery2, в дебиане есть в репо.
Вживую можешь глянуть на http://banda.com.ua

(Reply to this)(Thread)


[info]nestor_asa
2008-05-09 12:18 pm UTC (link)
Миша, а где категории?
Чтобы вот допустим ты, Грей и Пин на одной фотке, и на нее можно было попасть, выбрав "фото с греем" или "фото с пин"

(Reply to this)(Parent)(Thread)


[info]aaz_2
2008-05-09 12:22 pm UTC (link)
Мммм... я лично не пользовался такой опцией... щас погляжу...

(Reply to this)(Parent)


[info]kastaneda
2008-05-09 10:47 pm UTC (link)
К этому движку есть много плагинов, а у меня стоят далеко не все.
Сейчас там есть древовидная иерархия, а то, что ты спрашиваешь - обычно называют тегами. (Такой плагин есть).

(Reply to this)(Parent)


[info]sonrosado_angel
2008-05-09 02:18 pm UTC (link)
вау, а ты типа сам можешь такое написать?!

(Reply to this)(Thread)


[info]nestor_asa
2008-05-09 02:23 pm UTC (link)
Могу, но для этого мне нужно потратить время и иметь больше желания, чем сейчас.
Как насчет сеансов чаепития сх-компанией во время написания сайта? :)

(Reply to this)(Parent)

???????
(Anonymous)
2008-05-09 04:07 pm UTC (link)
Ваша задача абсолютно стандартна и решается минимальными, простейшими средствами.

(а) файлы лежат в директориях на сервере, куда они попадают через любой механизм, вроде фтп с множественной загрузкой файлов

(б) к ним простейшие скрипты пишут по одной команде текстовые файлы-индексы (несколько секунд в худшем случае), сразу после загрузки

(в) простейшая веб-морда ищет по файлам-индексам - с тэгами, описаниями, календарно, по принадлежности "хозяину"-пользователю .... - как хотите.
Можете все поля засунуть в одни и те же индексы, можетев несколько разных. Это - маленькие ASCII файлы
Имена файлов-картинок кстати также удобно держать такими, что они хранят нужную для обращения информацию (например, даты).


(г) результат поиска - страница со ссылками на сам JPG файл, который выдается в обрамлении нужного описания.

(д) комментарии - ascii-файлы в поддиректории

(е) пароль - .htaccess в поддиректории

ascii-индекс на 30000 файлов обрабатывается доли секунды, на 5000 - практически мгновенно.

Базы данных не нужно

Я не вижу никаких проблем, настолько стандартна и решаема минимальными средствами задача

(Reply to this)(Thread)

Re: ???????
[info]nestor_asa
2008-05-09 09:28 pm UTC (link)
Спасибо, все гениальное просто.

(Reply to this)(Parent)(Thread)

Re: ???????
(Anonymous)
2008-05-09 10:07 pm UTC (link)
..я не знаю всерьез вы или с иронией, но я держу такую систему для чтения и архивирования статей из ЖЖ и их комментариев. Там именно десятки тысяч файлов, которые названы именами, содержащими в себе дату.

Далее, ASCII-файлы отсортированы по дате - т.е. если я запрашиваю "последние 20 файлов", то считываю просто 20 верхних строчек из общего индекса. После имени файла в строке он держит другую нужную мне информацию, которую я также могу выводить (например, заголовок, чтобы не открывать-закрывать 20 файлов при выводе страницы с "оглавлением" и ссылками)

Далее, файлы лежат в поддиректориях согласно категориям (имени автора), а любые tags и иные тематические категории легко создаются просто with soft links - например, в вашем случае директории могут быть "поездками", а как бы дополнительные директории - "тематические", из них soft links укажут на файлы в других местах.
Кроме общего индекса по именам-датам, есть свои небольшие индексы в каждом из авторов или в категориях - если пользователь смотрит файлы только из одной подкатегории, не надо обыскивать больший по размеру общий индекс.

При загрузке нового файла я автоматически проигрываю скрипт, который добавит нужные строчки в индексы. Поскольку я один, т.е. конфликтов с собой у меня нет, то мне легко обновлять 2-3 маленьких ASCII-файлов.
Если пользователей много, то приходится делать file locks, которые я тоже сделал.

Есть мелочи - вроде того, что придется сообразить, как правильно нарисовать дерево комментариев из кучи ascii (или html) файлов в поддиректории с комментариями (она имеет почти то же имя, что заглавный файл, к которому делаются комментарии), но я сообразил, рисует.

так что..

(Reply to this)(Parent)(Thread)

Re: ???????
[info]nestor_asa
2008-05-10 06:23 am UTC (link)
Ну да, действительно, просто.

btw вот уж точно ответа от [info]emdrone не ожидал.

(Reply to this)(Parent)


[info]leo431
2008-05-09 07:48 pm UTC (link)
Ну про "несколько месяцев" - это ты загнул. Несколько дней беспрерывного труда :)

(Reply to this)(Thread)


[info]nestor_asa
2008-05-09 09:26 pm UTC (link)
Я в курсе, что несколько дней непрерывного труда для человека, который постоянно программирует. Я, будучи сисадмином, растерял навыки проектирования и т.п. - это примерно как вспоминать иностранный язык после нескольких лет неиспользования. Где моя молодость :)

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…