Привет друзья! Как любитель задавать охуенные вопросы, возвращаюсь к злобной теме месяца Есть ли решение, и желательно готовое, убрать кеширование рисунков с разрешением меньше заданного? (для миниатюр) Решение вкмодом или чем-то удобно переносимым на другие сайты и версии
А можно вопрос более понятным? Что такое кеширование рисунков? Можно немного переделать папку image/cache - по принципу image/cache/width-x-heigth/file-name.img Можно при загрузке изображений сразу делать уже подготовленные картинки всех используемых размеров
в моём случае я снизил побочный эффект этого решения путем одинаковых размеров для нескольких групп. В итоге получается на 9 групп у меня в кеше только три картинки, не так и много, чтоб быть проблемой. А там где нужны совсем маленькие - сжимаю размер css-ом. Вроде нормально смотрится
это касается тех мест, куда он предположительно не наведывается: корзина, список заметок, сравнения и др.
кеширование - с одной стороны хорошая идея, с другой - не всем нужная, потому что примитивная библиотека пережимает фото хорошего качества подготовленные в ФШ до неприемлемого качества. Вопрос как отключить кеширование ВСЕХ изображений меньше 300х300, к примеру. И чтобы изображения выводились из дефолтной папки image/data (а не cache/.....)
На опенкартовском форуме задавал этот вопрос, ответа не получил. Странно. В моём случае вопрос был о том, чтоб большую фотку товара в карточке не кешировать, а отображать исходную. Для себя решил этот вопрос модулем мейджик зум плюс. Но конечно же тоже хотелось бы что б кто-то подсказал или хотябы объяснил в чем сложность или принцып работы
Это если просто на форуме ляпнуть, то легко. Прежде всего нужно узнать размер изображения, чтоб принять решение ресайзить его или нет. И делать это лучше всего как раз в модели, иначе придёться перекапывать кучу файлов. Решение: В файлах /catalog/model/tool/image.php и /admin/model/tool/image.php находим строки: PHP: $old_image = $filename;$new_image = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension; И заменяем на это: PHP: $dont_cache_width = 300; //ширина, меньше которой не кешировать$dont_cache_height = 300; //высота, меньше которой не кешировать$old_image = $filename;list($width_original, $height_original) = getimagesize(DIR_IMAGE . $filename); // получаем размеры оригинального изображенияif($width_original < $dont_cache_width && $height_original < $dont_cache_height){ //если ширина и высота изображения меньше настроек - не кешируем $new_image = $old_image;} else { $new_image = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;} Писал это глядя на код последней версии на Гитхабе, так что нужно протестировать и для ОК 1.5 могут быть отличия.
Т.е. модератору позволено не держать язык за зубами и хамить? И все равно все пришло к оператору if. Человек хочет сделать сам, при этом хочет получить код на халяву не потрудившись заглялнуть в исходники. Где есть и получить размеры изображений. Кроме того: прописать логику с image_width > 300 and image_height <300 или наоборот.
chukcha, Модератор в отличие от многих остальных реально помогает реальными советами реально расшифровывая и разжёвывая. Хотя мог бы просто сказать как Вы - копать туда и всё. У ТС нет цели получить на халяву. Всё равно ему придётся делать, как ни крути. И бороться с возможными проблемами тоже ему придётся. И отвечать перед заказчиком если что. И ждать совета, которого может и не быть и копать, копать, копать в силу своих потребностей и возможностей. Не хотите помогать "на халяву" - не отвечайте не "бесплатные" темы. И проблема решена. ps ничего личного, просто мнение. pps сорри за офф.
вы не поверите. Я помогу любому и подскажу. Только при одном условии - если я увижу что чел что-то предпринял. Если это тупое ожидание халявы, то здесь не ко мне. Если есть попытка что-то сделать и не получилась - всегда велкам. ps ничего личного, просто мнение. pps сорри за офф.
Программисты люди простые (и прямые), если слово "ляпнуть" для кого-то оскорбление, то уж извините. Но меня всегда дико раздражает, когда люди ничего конкретного не советуют и даже не подсказывают в каком направлении двигаться (if - это уж никак не реальная подсказка). Я тоже не люблю сразу давать готовые решения (и вообще меня раздражает, когда люди с нулевыми знаниями сначала решают сэкономить на программисте, а потом заваливают форумы детскими вопросами), но всё зависит от сложности задачи. Выдавать в сложной задаче подсказки по крупицам - это немного издевательство. (пусть для меня или для вас задача не кажется сложной, но она требует достаточного знания ОК) В данном случае для меня намного проще было написать готовое решение, чем пытаться куда-то направлять. А на счёт if - если человек не знает, что для решения такой задачи он ему понадобиться, то есть сомнения, сможет ли он даже готовым кодом воспользоваться (безотносительно к ТС), а в остальных случаях - это совсем не подсказка. Так что смысла в такой подсказке нет: она либо бесполезна, либо бессмысленна. Как модератор я привык считать сообщения с такой степенью полезности - набивкой постов (учитывая, что сообщения в этом разделе засчитываются). Вдобавок, это решение может быть полезно не только для ТС, а потому хорошо, если оно будет оформлено цельной инструкцией с полным кодом, а не размазано между подсказками и закадровыми попытками ТС ими воспользоваться. И вообще, если б не "халявщики" и люди готовые им помогать на Stack Overflow, жизнь всех программистов была бы куда печальнее.
На Stack Overflow люди обращаются за помощью, и показывают свой код, свою проблему. Что там происходит в других ветках. я в основном говорю про php, jquery согласен про конечный код, но это должно остаться на совести ТС получившего код - описать конечный результат) Т.е. принцЫп объяснен. Нужен if - те.проверка условия, практически в любом ЯП высокого уровня. И где попытка? Отключить кеширвование - это не делать рантайм ресайз, а ведь можно при загрузке отресайзить, согласно установкам системы.
Уважаемый, ты что-то путаешь. Если быстро и доходчиво то: Ты просто пришел поговорить, а Dotrox не на словах а на деле показал это в коде, не засирая форум. Каждому идиоту ясно что дело в операторе if Но не каждый молча сядет и напишет реальный код для людей. Если ты тут и силен в коде, так я считаю это совсем не взападло для пацана ответить конкретно, и обсудить в последствии с камрадами, раз ты сказал А, говори и Б. Неужели отец не учил этому? --- Добавлено, 7 авг 2015 --- А тут ты вообще красавец! И что я должен быть долбанным оракулом чтобы лезть куда и исправить что? --- Добавлено, 7 авг 2015 --- Добавлю для всех программистов на будущее: если вы видите что есть подобная тема и человек задал вопрос (и он не особо простой) - кидайте ему в личку ЦЕНУ РЕШЕНИЯ. мне было бы не сложно потом выложить оплаченное мной решение в паблик
Где в стартопике желание оплатить? Мог бы спросить. Мой вопрос был - что понимается под кешированием. Надеюсь, что Вы не идиот. И.. Вы не прочитали, не процитировали мое дальнейшее... Т.е. и здесь вопросов не возникло... Будем дальше пузыри надувать? Или все же расскажете сообществу свое желание.
http://stackoverflow.com/questions/...lues-with-other-values-from-same-array-in-php Это первое, что попалось по тегу php. И такого добра там тонны. И всё равно кто-нибудь напишет весь код и разжуёт как он работает. Видимо, вы просто никогда не просматривали ленту, а попадали туда только из Гугла. Вообще, хватит оффтопить. Все согласны, что халявщики это плохо, а в сложных задачах нужно помогать, а спор идёт только о том, кто в этой теме правее.
Привет! если для 2й версии ОС вносить эти изменения не в файлы, а отдельным фиксом, нужно использовать вкмод или окмод? я че-то не особо в теме с ОС 2,0 пока