| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > галерея |
| Автор: Aliance 8.2.2007, 21:25 | ||
| Стоит задача, написать галерею. Прочитал неплохую тему http://forum.vingrad.ru/topic-61023.html, но она к сожалению рано умерла. Открыл новую, т.к. я вижу свою галерею несколько иначе, чем автор той темы. Сперва стал продумывать, что мне нужно. Пока что самое основное - на главной список n-нного кол-ва ссылок на юзеров, разместивщих свои фотки. При клике на ссылку попадаем на юзера, где видны все его фотки. При навигации по ним, фотки соотв. меняются. Далее, у фотки есть заголовок, дата добавления. Каждую фотку можно комментировать. Есть админка, тут вопросов нет у меня. Начинаю проектирование БД. Сперва создал (пока мысленно) основную таблицу
И тут у меня возник вопрос: мне нужно делать превьюшки строгого размера, а при клике открывать уже реальный размер фото. Как хранить фотки - прямо в отдельном файле или же в БД. Второе никогда не делал, посоветуйте, что лучше. И есть хранить в БД, то как делается ограничение по размеру картинки? Прошу навести меня на путь истинный, если есть недочеты в моем шаблоне - подсказать как исправить, возможно предложить свои варианты. Готовыми галереями не хочу пользоваться. |
| Автор: -=Ustas=- 8.2.2007, 23:14 | ||||
Я бы сделал так (на вскидку)
Ну и т.д. и т.п. можно еще наворачивать до беспредела. Но в основном я думаю суть будет ясна. Пользователь может разбивать свои картинки по каталогам (соотвественно создается каталог на диске, допустим sha1( user_id.gallery_categories_id.login.mktime() ) чтоб было уникальное имя каталога и не совпало у другого юзера). total_images будет перезаписываться у пользователя во время вставки, типа gallery_users.total_images = gallery_users.total_images + 1, и обратно при удалении. Размеры картинки, типа превьюшки и т.д. будут меняться налету при вызове, либо можно добавить поля
и это будет происходить при вставке новой. Функция ресайза довольна проста, если делать при вставке, то тебе потом никаких телодвижений делать не придется |
| Автор: Aliance 9.2.2007, 00:43 |
| Извеняюсь, что сразу не сказал. Мне пока НЕ нужны категории, никаких наворотов. Авторизация УЖЕ ЕСТЬ. Пока вопросов два: где хранить изображения, и если в БД - то опишите плюсы минусы и скажите на словах, как работать. А второй - как организовать ресайх картинок - до/после/во время.. |
| Автор: Aliance 9.2.2007, 01:48 | ||||
Мне оно просто не нужно. Вообще
А почему, не понимаю. И вообще, зачем тогда сделано хранение в БД бинарных данных? Т.е. создать поле аля path и хранить там путь? Ок. Еще, почему "Лучше все-таки Unix-timestamp хранить, тебе же легче будет" |
| Автор: -=Ustas=- 9.2.2007, 08:40 | ||||||
Совершенно верно.
А чтобы было. Бывают такие ситуации когда нет возможности доступа к дисковому пространству - вот в этом случае хранение блобов в БД оправдано.
Потому что ты будешь работать с датой, как с целочисленным значением без каких либо приобразований формата. Суммировал, отнял, отсортировал, да все что угодно вытворяй с ней, а при выводе можешь выводить также как угодно:
Добавлено @ 08:41 Если одним словом, то неограниченная гибкость в работе с датой в этом формате |
| Автор: Aliance 9.2.2007, 10:52 |
| -=Ustas=-, огромное спасибо, последний вопрос. На счет как сохранять содержимое? Есть input:file форма. Пользователь загружает фото. Оно у скрипта в переменной, скажем. Мне нужно его сохранить в файл *.png с именем в формате user_name . number_of_foto . Мне пользоваться функцией imagecreate() ? |
| Автор: -=Ustas=- 9.2.2007, 18:00 | ||
Ну в принципе да, функции imagejpeg, imagegif, imagepng сохраняют в файл. |
| Автор: Aliance 9.2.2007, 21:15 |
| Уже почти все ясно. Дайте совет, как лучше сделать главную страницу? Я думаю так: ссылки всех, кто выложил свои фотки (записи в БК с 0 по 50 скажем) внизу ссылка, ждем ее и добавляем свою фотку. жмем на ссылке кого-то и видим все фотки, если это ты - то плюс админка (если ты админ - то админка на всех) на главной еще сортировка и поиск. Может что-то еще? |
| Автор: -=Ustas=- 10.2.2007, 11:01 | ||||
Ну тут уже полет дизайнерской мысли
Да, нормально |