Кое-что о создании линий
Разбивка на шаги:
- Создание линии;
- Загрузка изображений;
- Настройка изображений и выбор цветов (если svg);
- Выбор объектов;
- Настройка наложения изображений.
В 1м шаге вводится название и описание линии, выбирается из списка магазин, если их у пользователя несколько, и нажимается кнопка "Создать линию!".
После этого действия, как ни странно, линия уже существует. По крайней мере мне от этого шага требуется лишь формирование ID линии.
Ну а пользователь, например, может прерваться, если чувствует, что уже устал создавать линию =), закрыть сайт, выключить компьютер,
а на следующий день вспомнить о ней, увидев в списке своих линий, и продолжить создание.
Во 2м шаге все просто - для всех возможных видов даем возможность загрузить либо растровые (JPG, GIF, PNG), либо векторные (SVG) картинки.
Причем надо будет прикрепить хотя бы одну картинку, т.к. если пусто - шаг 2 повторяется.
Пока сделаем ограничение - используются только 2 вида: спереди и сзади (П/З).
Когда дело дойдет до календарей например, надо будет совершенно другой механизм придумывать - в линию они пока никак не вписываются.
Шаг 3 касается в основном варианта с загрузкой SVG-изображений.
Хотя при загрузке растров в этом шаге тоже есть некоторые операции: преобразование изображений в JPG и ограничение цветов только белым.
Но эти действия выполняются автоматически, поэтому не видны пользователю.
Для SVG выводится страница со всеми возможными вариантами наложения (комбинация всех цветов и всех видов).
На этой странице можно настраивать цвета на изображениях, а также "отключать" цвета, которые не хочется использовать в линии
(хотя я бы при создании ничего не отключал и делал по-максимуму =) ).
На выходе этого шага получаем список изображений (и сами изображения на сервере), а также список возможных цветов.
Эти данные также сохраняются, и тут у пользователя опять возникает возможность прерваться и продолжить создавать линию позже.
Хотя он не прервется, а пойдет дальше, т.к. уже увлечен процессом создания собственной линии товаров.
В 4м шаге выводится список товаров, разбитый по категориям, и пользователь должен выбрать те, которые попадут в его линию.
Вариант, когда ничего не выбрано, опять не пройдет.
И еще на всякий случай скажу, что в этот список попадут все товары, у которых есть вид "П" или "З" (или оба),
остальные товары создаются "какими-то другими методами". Но ужасного здесь думаю не много, т.к. почти все товары (кроме календарей) подошли.
Список выбранных товаров сохраняется, т.е. тут тоже получается промежуточная точка.
Ну и самый интересный - 5й шаг. Рассмотрим его отдельно.
Наложение изображений
Тут надо дать пользователю возможность настроить размеры и положения изображений на продукции.
Достаточно сложно было все свести к единому алгоритму, но вроде варианты решения все-таки есть.
Перечислю некоторые описания - они будут учитываться при постороении механизма наложения:
- Флаг "основной логотип":
- для "односторонних" товаров - выбор наносимого изображения (если несколько);
- для "двусторонних" - изменение "П" <=> "З".
Причем если изменяется на одностороннем предмете - влияет только на односторонние (но на все!),
с двусторонними таже история, но отдельно от односторонних.
-
Возможность выбора "специальной области" на виде. Например для вида спереди область "карман" -
у всех предметов, имеющих данную область на виде спереди произойдет изменение наложения изображений,
у остальных изображение наложится по-максимуму на сам "вид спереди" (или вообще не наложится???).
-
Одно из свойств каждого вида объекта - возможность двигать и изменять размер.
Например у футболок: "П" - можно, "З" - можно. У поло - "П" - нельзя, "З" - можно. У стрингов наверно "П" - нельзя. У кружек наверно "П" - можно...
(это только для примера =) ).
-
Еще одно свойство - тип фона. Он может быть обычным и необычным. Необычный - это для часов и подобных вещей, чтоб фон располагать над изображением.
Естественно в данном случае фон должен быть в формате PNG или GIF с прозрачностями.
-
Для каждого вида каждого объекта - раположение и размеры области печати в пикселях.
С реальными размерами в см сложнее из-за наличия наклеек... Придумаю что-нибудь - будет изменяться в зависимости от выбранного размера.
Вроде все категории объектов охватил... Если что вспомню - тоже сюда надо будет дописать.
Теперь о размерах и положении изображения.
С размерностями каша. Единственный разумный вариант увидел на spreadshirt'e, где размер меняется в процентах.
Таким образом по-умолчанию изображение располагается в середине области и имеет максимальные размеры - 100%.
После этого можно уменьшать его и двигать. При движении смотреть, чтоб не вылезло ничего, при увеличении - тоже + проверка максимума (100%).
И еще для изначально растровых изображений надо как-то учитывать максимальный размер печати, но это уже детали.
С перемещением изображений та же ситуация - все в относительных величинах, т.е. сдвигаем не на пиксели и не на см.
Теперь бы еще сделать это! =))))))
|