Если в Мультимагазине товары расшарены на несколько витрин, то изображения с ватермаркой создаются для каждой витрины отдельно.
Что абсолютно Нелогично, т.к. задать разные изображения для разных витрин для расшаренных товаров нельзя!
Например
/home/САЙТ/www/images/watermarked/ 1 /thumbnails/333/333/detailed/249/Electrolux_EWH_30_AXIOmatic_Slim_1.png
/home/САЙТ/www/images/watermarked/ 2 /thumbnails/333/333/detailed/249/Electrolux_EWH_30_AXIOmatic_Slim_1.png
Что приводит к допнагрузкам и чрезмерному использованию места на сервере. Просьба не говорить о том что место это дешево, НЕ на NVMe !!!
Нам приходится переплачивать каждый месяц 50 долларов из-за это проблемы. Просьба доработать алгоритм.
@AndreyJ
Но ведь водяные знаки для разных витрин могут быть разные, соответственно изображения с водяными знаками генерируются каждое под свою витрину, а то что изображение товара одно ничего не значит. Если у вас действительно одинаковые изображения можно попробовать сделать symlink папки второй витрины на папку первой витрины - должно все работать и места занимать не будет(конечно нужно еще проверять корректность работы в таком варианте)
это должно быть опционально, т.к. не всегда нужно и слишком дорого обходится
ведь если для витрин выбран один и тот же файл ватермарки, то простая проверка может решить проблему генерации лишнего
В теории да, с теми же вариациями та же проблема. Опять же в теории хотелось бы чтобы цскарт в таблице изображений хранил хеш изображения и количество ссылок на него(сколько товаров его использует) и не плодил изображения как сейчас, но это не так просто. По симлинкам вот первая попавшаяся статья. В теории можно временно переименовать home/САЙТ/www/images/watermarked/2 далее через консоль перейти в каталог home/САЙТ/www/images/watermarked/ создать ссылку ln -s 1 2 , в итоге папка 2 будет ссылкой на папку 1, останется вопрос будет ли корректно с этим работать веб сервер и cscart. Ссылки можно создавать и через некоторые панели управлния сервером, ну либо можно попросить сделать это техподдержку(правда в случае проблем они не сразу вернут все на место)
Судя по коду модуль проверяет наличие файла, так что если изображение создано первой витриной то вторая должна его просто использовать и наоборот, но в итоге все уникальные изображения с водяными знаками будут в папке первой витрины. Пока это теория и нужно проверять, техподдержка захидов возможно сможет ответить на вопрос будет это работать или нет. Симлинки в линуксе вещь обыденная и проблем возникнуть не должно. Пока смотрел код модуля нашел еще один вариант - в файле app/addons/watermarks/func.php есть функция fn_watermarks_init_company_data, там определяется путь WATERMARKS_DIR_NAME, можно заменить fn_define(‘WATERMARKS_DIR_NAME’, ‘watermarked/’ . $company_id . ‘/’); на fn_define(‘WATERMARKS_DIR_NAME’, ‘watermarked/1/’); в итоге будет во всех случаях использоваться папка первой компании
Огромное спасибо. Так и сделаю. Надеюсь Карт Таки внедрит настройку в модуль.
Гляньте если не сложно может что-то еще можно дописать, чтобы после генерации картинки с ватермаркой сразу удалялось бы исходное изображение из папки thumbnails.
Насколько я понимаю в нем все равно нет необходимости, а только места занимают. И после очистки Кеша картинок все они заново будут генериться из detailed.
Если нигде не ошибся с путями то в том же файле есть функция fn_watermarks_generate_thumbnail_post , практически в самом конце функции есть строка $relative_path = $prefix . $relative_path; перед ней добавляем Storage::instance(‘images’)->delete($relative_path);
Ошибочка, удаление не сработает - точнее сработает, но смысла в нем нет, так как оригинальные миниатюры генерируются раньше и будут созданы повторно. Так что нужно еще как то переписывать функцию генерации миниатюр чтобы они повторно не создавались если уже есть миниатюра с водяным знаком
Могу ошибаться, но насколько понимаю схема такая - при получании пути к изображению если указаны необходимые размеры изображения проверяется наличие миниатюры с заданными размерами, если ее нет то она создается, далее через хук отрабатывает модуль водяных знаков и опять же если миниатюра с водяным знаком есть то путь к оригинальной миниатюре меняется на путь к миниатюре с водяным знаком, если нет то в процессе создается миниатюра с водяным знаком и потом меняется путь. Конечно решение не назовешь оптимальным так как по нормальному при активном модуле водяных знаков логичнее было бы создавать только миниатюры с водяными знаками
вот сколько там интересно фото, что аж на 50$ в месяц дороже? ) сколько ж там товаров? 100 000? а если 100 000 то что такое каких-то 50$ в месяц? уберите логотипы с фото, если 50$ за логотипы на фотках для вас дорого. Но нет, разработчики CMS, в которой и так куча более актуальных проблем, должны все бросить и заниматься проблемой, которой на самом деле нет
Экономия должна быть экономной!
Тариф 100 ГБ стоит 50 уе, потом сразу на 200 ГБ 100 уе.
Вы так пишите вроде они вам куда то в хелпдеск на вашу проблему ответили - “не можем вам помочь, все силы брошены на Ватермарки, приходите через 2 года…”
Мыслите шире. Умножте эти затраты на колво клиентов Карта и представьте сколько денег сливают впустую. Это прям как в притче про программиста массового убийцу.
Ну и реально - если есть какой то дельный совет по решению - предлагайте, а советовать кому как сливать бюджеты не стоит.