![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Стоит задача, написать галерею. Прочитал неплохую тему http://forum.vingrad.ru/topic-61023.html, но она к сожалению рано умерла.
Открыл новую, т.к. я вижу свою галерею несколько иначе, чем автор той темы. Сперва стал продумывать, что мне нужно. Пока что самое основное - на главной список n-нного кол-ва ссылок на юзеров, разместивщих свои фотки. При клике на ссылку попадаем на юзера, где видны все его фотки. При навигации по ним, фотки соотв. меняются. Далее, у фотки есть заголовок, дата добавления. Каждую фотку можно комментировать. Есть админка, тут вопросов нет у меня. Начинаю проектирование БД. Сперва создал (пока мысленно) основную таблицу
И тут у меня возник вопрос: мне нужно делать превьюшки строгого размера, а при клике открывать уже реальный размер фото. Как хранить фотки - прямо в отдельном файле или же в БД. Второе никогда не делал, посоветуйте, что лучше. И есть хранить в БД, то как делается ограничение по размеру картинки? Прошу навести меня на путь истинный, если есть недочеты в моем шаблоне - подсказать как исправить, возможно предложить свои варианты. Готовыми галереями не хочу пользоваться. |
|||
|
||||
-=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Я бы сделал так (на вскидку)
Ну и т.д. и т.п. можно еще наворачивать до беспредела. Но в основном я думаю суть будет ясна. Пользователь может разбивать свои картинки по каталогам (соотвественно создается каталог на диске, допустим sha1( user_id.gallery_categories_id.login.mktime() ) чтоб было уникальное имя каталога и не совпало у другого юзера). total_images будет перезаписываться у пользователя во время вставки, типа gallery_users.total_images = gallery_users.total_images + 1, и обратно при удалении. Размеры картинки, типа превьюшки и т.д. будут меняться налету при вызове, либо можно добавить поля
и это будет происходить при вставке новой. Функция ресайза довольна проста, если делать при вставке, то тебе потом никаких телодвижений делать не придется ![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Извеняюсь, что сразу не сказал. Мне пока НЕ нужны категории, никаких наворотов. Авторизация УЖЕ ЕСТЬ.
Пока вопросов два: где хранить изображения, и если в БД - то опишите плюсы минусы и скажите на словах, как работать. А второй - как организовать ресайх картинок - до/после/во время.. Это сообщение отредактировал(а) Aliance - 9.2.2007, 00:45 |
|||
|
||||
-=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Ну я бы не сказал, что это такие уж и навороты... Скорее стандартная функциональность, которую как говориться must have. Тем более что это долго не затянет...
Aliance, не в коем случае в БД! Ну хоть ты то прислушайся ![]() ![]() Здесь уже дело сугубо личное. Я как то раньше писал себе функцию, которую и по сей день пользую. Она прапорционально меняет размер относительно исходного размера.
Смотри какие тут плюсы и минусы. Можно делать на выводе (на лету) выдавать превьюшки, минус этого подхода - это лишнее процессорное время на работу ресайза, в то время, как мы стремимся отдавать пользователям инфу как можно быстрее. Поэтому лучше один раз при сохранении отресайзить и всё, при выдаче тогда никаких ресайзов не будет - это плюс. Ну а дальше смотри ![]() ЗЫ. Эту функцию можно переписать на сохранение маленьких копий, там пара-тройка строк кода. Это сообщение отредактировал(а) -=Ustas=- - 9.2.2007, 01:20 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Мне оно просто не нужно. Вообще ![]()
А почему, не понимаю. И вообще, зачем тогда сделано хранение в БД бинарных данных? Т.е. создать поле аля path и хранить там путь? Ок. Еще, почему "Лучше все-таки Unix-timestamp хранить, тебе же легче будет" |
||||
|
|||||
-=Ustas=- |
|
||||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Совершенно верно.
А чтобы было. Бывают такие ситуации когда нет возможности доступа к дисковому пространству - вот в этом случае хранение блобов в БД оправдано.
Потому что ты будешь работать с датой, как с целочисленным значением без каких либо приобразований формата. Суммировал, отнял, отсортировал, да все что угодно вытворяй с ней, а при выводе можешь выводить также как угодно:
Добавлено @ 08:41 Если одним словом, то неограниченная гибкость в работе с датой в этом формате ![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||||
|
|||||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
-=Ustas=-, огромное спасибо, последний вопрос. На счет как сохранять содержимое?
Есть input:file форма. Пользователь загружает фото. Оно у скрипта в переменной, скажем. Мне нужно его сохранить в файл *.png с именем в формате user_name . number_of_foto . Мне пользоваться функцией imagecreate() ? |
|||
|
||||
-=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Ну в принципе да, функции imagejpeg, imagegif, imagepng сохраняют в файл. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Уже почти все ясно. Дайте совет, как лучше сделать главную страницу? Я думаю так:
ссылки всех, кто выложил свои фотки (записи в БК с 0 по 50 скажем) внизу ссылка, ждем ее и добавляем свою фотку. жмем на ссылке кого-то и видим все фотки, если это ты - то плюс админка (если ты админ - то админка на всех) на главной еще сортировка и поиск. Может что-то еще? |
|||
|
||||
-=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Ну тут уже полет дизайнерской мысли ![]()
Да, нормально ![]() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |