lynx logo
lynx slogan #00116
Привет! Сегодня у вас особенно незнакомое лицо.
Чтобы исправить это, попробуйте .

А ещё у нас сейчас открыта .




секретный шифр д-ра Тьюринга, O.B.E:

включите эту картинку чтобы увидеть проверочный код

close






   

№8689
3017 просмотров
24 марта '17
пятница
7 лет 33 дня назад



Галереи (заливка сразу многих картинок в новом сообщении)

[ uploaded image ]
Я тут добавляю нам возможность заливать не просто одну картинку к посту, как было все эти годы, а сразу несколько или даже много.

В связи с чем переписываю прежний рабочий код и он может странным образом частично отвалиться.

Долго думал, хотел избежать такого вовсе — лучше уж, предполагал, сделаю совсем новый, отдельный интерфейс. Но после некоторых размышлений, взвесив все за и против (а их много, особенно когда вы знаете архитектуру движка и базы: всплывают вполне весомые соображения в пользу того или иного решения, вообще не заметные снаружи) — решил всё же интегрировать в уже существующий интерфейс, не делать для галерей отдельную форму.

По двум причинам:

1. Здорово будет, если галереи можно будет размещать не только в отдельном их разделе галерей. А где угодно: в Открытом, Скрытом, Зоопарках — особенно для зоопарков это будет удачно.

1.1. Но и отдельно тоже будет прельстиво (как говорим мы, вьетнамцы) весьма их смотреть. Есть решение: потом напишу инструмент показа только их отдельно, в общем для них месте.

2. Об этом дольше всего думал, чуть не вынес на ваше голосование в отчаянии: делать ли картинки в галерее в том виде, как мы их прежде всегда публиковали вручную — каждая отдельным комментарием; или писать их механизм заново, пусть будут в горизонтальной прокрутке, как на Фейсбуке (на Реддит даже не смотрю — по-моему они там просто наркоманы какие-то, нет, правда, вы видели этот их Реддит?) Победило понимание того, что:

2.1. нефига писать примерно тот же код в ещё одном месте — код должен быть минимально самоповторяющ

2.2. главное: это же всем на радость будет, если (а ведь когда-нибудь особенно понадобится) за каждую картинку в галерее можно будет отдельно проголосовать, и к каждой отдельно написать комментарий, или несколько. А это уже реализовано деревом комментариев — и категорически нельзя писать всё заново для другого представления, горизонтального. Разумней будет просто для галерей тогда уж видоизменить формат вывода ключевых объектов — их фото. В смысле: в галерее если уж понадобится убрать картинки из вертикального потока по методу зюзьги — ну, сделаем, не проблема. Но идеальную структуру, абстрактную-то модель тут зачем менять? В ней же нет право и лево, верха и низа — стало быть она безупречно подойдёт и сюда: а привычный верх-низ на новое молодёжное право-лево мы ей если надо поменяем, прикрутим уже на этапе вывода. Думаю, примерно об этом некогда и Кант размышлял — о том месте, где не только всего прочего, но даже элементарного право и лево нет, а оно, если серьёзно напрячь извилину, оказывается единственно важным, решающим для всего прочего; определяющим всё подчинённое, неважное, дальнейшее.

2.3. Ну ладно, делаем всё просто и заново: никаких комментариев, только общие, привязкой галереи к отдельному посту, как изначально планировал тогда; быстро заменяем аплод одной картинки на серию — а как тогда удалять случайные повторы? как тогда привязывать задуманную тогда ещё, тоже изначально, возможность дополнять галерею одного автора картинками других — но так, чтоб у каждой картинки было отмечено её авторство и дата? То есть всё же значит заново писать дублирующий для всего код?

2.4. В общем, полез специально в базу, глянуть архитектуру комментариев, давно забытую. В надежде сразу ужаснуться её неприменимости в нашем случае галерей и с чистой совестью приняться писать новый функционал с чистого листа, заново... А она идеально подходит — там ничего лишнего для нашего нового случая. Только всё необходимое: автор, дата, картинка (что в новой модели — основное поле записи) и комментарий (что в новой модели — весьма нелишнее вспомогательное поле записи; у некоторых картинок в галереях могут и должны быть описания, названия).

Это я к чему: ну, всё равно можете начать голосовать. За тот или иной метод. А главное: если сегодня или дальше что будет отваливаться при создании сообщений — это просто я там наконец начал ковыряться.

И да, всё это пишу, чтоб как раз проверить: совсем ли отвалился пока прежний аплод единственной картинки? А то у вас тут в ваших видеопостах какие-то обрывки стали попадаться, я волнуюсь. Хотя зачем в видео картинки?


Да, там была некоторая неясность, связанная с системным файловым массивом. Для которого народные умельцы даже всякие вон обходные маршруты публикуют, иного перебора. И, конечно, документировано оно у них из рук вон, за столько лет могли б и написать пару абзацев внятного описания структуры.

Но вот помог барсук. Пришёл такой и говорит: хватит, короче, введи наугад третью размерность, как оно, по идее, должно быть, и пусть всё заработает без лишнего анализа кода, прям сразу, ладно? А я такой: «Ладно, барсук, пусть. Хотя я конечно в такие методы не слишком верю: слишком не задумываясь, не перечитывая по три раза код тут в этих делах не бывает». Добавил размерность, обернул в цикл — пока работает. Завтра, или когда меня ещё барсук посетит — попробую их уже кучкой пустить, не только одного.
Ну вот, хотел допить пиво, а мы его с барсуком, оказывается, уже всё незаметно выпили, пока код настраивали.
   


















Рыси — новое сообщество