[Помогите] Убрать кеширование рисунков

Тема в разделе "OpenCart", создана пользователем mr.Elias, 2 авг 2015.

  1. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    269
    Симпатии:
    41
    Привет друзья!
    Как любитель задавать охуенные вопросы, возвращаюсь к злобной теме месяца
    Есть ли решение, и желательно готовое, убрать кеширование рисунков с разрешением меньше заданного?
    (для миниатюр)
    Решение вкмодом или чем-то удобно переносимым на другие сайты и версии
     
    halfhope нравится это.
  2. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    А можно вопрос более понятным? Что такое кеширование рисунков?

    Можно немного переделать папку image/cache - по принципу
    image/cache/width-x-heigth/file-name.img

    Можно при загрузке изображений сразу делать уже подготовленные картинки всех используемых размеров
     
  3. Vivec

    Vivec

    Регистрация:
    24 ноя 2014
    Сообщения:
    105
    Симпатии:
    15
    в моём случае я снизил побочный эффект этого решения путем одинаковых размеров для нескольких групп. В итоге получается на 9 групп у меня в кеше только три картинки, не так и много, чтоб быть проблемой. А там где нужны совсем маленькие - сжимаю размер css-ом. Вроде нормально смотрится
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.038
    Симпатии:
    774
    Где-то я недавно читал, что Гугл такого не любит.
     
  5. Vivec

    Vivec

    Регистрация:
    24 ноя 2014
    Сообщения:
    105
    Симпатии:
    15
    это касается тех мест, куда он предположительно не наведывается: корзина, список заметок, сравнения и др.
     
  6. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    269
    Симпатии:
    41
    кеширование - с одной стороны хорошая идея, с другой - не всем нужная,
    потому что примитивная библиотека пережимает фото хорошего качества подготовленные в ФШ до неприемлемого качества.
    Вопрос как отключить кеширование ВСЕХ изображений меньше 300х300, к примеру.
    И чтобы изображения выводились из дефолтной папки image/data (а не cache/.....)
     
    Vivec нравится это.
  7. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    269
    Симпатии:
    41
    и все что ли ? никто ничего не знает?
     
  8. Vivec

    Vivec

    Регистрация:
    24 ноя 2014
    Сообщения:
    105
    Симпатии:
    15
    На опенкартовском форуме задавал этот вопрос, ответа не получил. Странно.
    В моём случае вопрос был о том, чтоб большую фотку товара в карточке не кешировать, а отображать исходную.
    Для себя решил этот вопрос модулем мейджик зум плюс.
    Но конечно же тоже хотелось бы что б кто-то подсказал или хотябы объяснил в чем сложность или принцып работы
     
  9. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    Сложность в одном if
    вызывать модель или нет
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.038
    Симпатии:
    774
    Это если просто на форуме ляпнуть, то легко.
    Прежде всего нужно узнать размер изображения, чтоб принять решение ресайзить его или нет. И делать это лучше всего как раз в модели, иначе придёться перекапывать кучу файлов.

    Решение:
    В файлах /catalog/model/tool/image.php и /admin/model/tool/image.php находим строки:
    PHP:
    $old_image $filename;
    $new_image 'cache/' utf8_substr($filename0utf8_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($filename0utf8_strrpos($filename'.')) . '-' $width 'x' $height '.' $extension;
    }
    Писал это глядя на код последней версии на Гитхабе, так что нужно протестировать и для ОК 1.5 могут быть отличия.
     
  11. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    Т.е. модератору позволено не держать язык за зубами и хамить?

    И все равно все пришло к оператору if.

    Человек хочет сделать сам, при этом хочет получить код на халяву не потрудившись заглялнуть в исходники.
    Где есть и получить размеры изображений.

    Кроме того: прописать логику с image_width > 300 and image_height <300 или наоборот.
     
  12. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    411
    Симпатии:
    159
    chukcha, Модератор в отличие от многих остальных реально помогает реальными советами реально расшифровывая и разжёвывая.
    Хотя мог бы просто сказать как Вы - копать туда и всё.

    У ТС нет цели получить на халяву. Всё равно ему придётся делать, как ни крути. И бороться с возможными проблемами тоже ему придётся. И отвечать перед заказчиком если что. И ждать совета, которого может и не быть и копать, копать, копать в силу своих потребностей и возможностей.
    Не хотите помогать "на халяву" - не отвечайте не "бесплатные" темы. И проблема решена.

    ps ничего личного, просто мнение.
    pps сорри за офф.
     
  13. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    вы не поверите.
    Я помогу любому и подскажу. Только при одном условии - если я увижу что чел что-то предпринял.
    Если это тупое ожидание халявы, то здесь не ко мне.
    Если есть попытка что-то сделать и не получилась - всегда велкам.

    ps ничего личного, просто мнение.
    pps сорри за офф.
     
  14. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.038
    Симпатии:
    774
    Программисты люди простые (и прямые), если слово "ляпнуть" для кого-то оскорбление, то уж извините. Но меня всегда дико раздражает, когда люди ничего конкретного не советуют и даже не подсказывают в каком направлении двигаться (if - это уж никак не реальная подсказка). Я тоже не люблю сразу давать готовые решения (и вообще меня раздражает, когда люди с нулевыми знаниями сначала решают сэкономить на программисте, а потом заваливают форумы детскими вопросами), но всё зависит от сложности задачи. Выдавать в сложной задаче подсказки по крупицам - это немного издевательство. (пусть для меня или для вас задача не кажется сложной, но она требует достаточного знания ОК)
    В данном случае для меня намного проще было написать готовое решение, чем пытаться куда-то направлять.

    А на счёт if - если человек не знает, что для решения такой задачи он ему понадобиться, то есть сомнения, сможет ли он даже готовым кодом воспользоваться (безотносительно к ТС), а в остальных случаях - это совсем не подсказка. Так что смысла в такой подсказке нет: она либо бесполезна, либо бессмысленна. Как модератор я привык считать сообщения с такой степенью полезности - набивкой постов (учитывая, что сообщения в этом разделе засчитываются).

    Вдобавок, это решение может быть полезно не только для ТС, а потому хорошо, если оно будет оформлено цельной инструкцией с полным кодом, а не размазано между подсказками и закадровыми попытками ТС ими воспользоваться.
    И вообще, если б не "халявщики" и люди готовые им помогать на Stack Overflow, жизнь всех программистов была бы куда печальнее.
     
  15. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    На Stack Overflow люди обращаются за помощью, и показывают свой код, свою проблему.
    Что там происходит в других ветках. я в основном говорю про php, jquery

    согласен про конечный код, но это должно остаться на совести ТС получившего код - описать конечный результат)

    Т.е. принцЫп объяснен. Нужен if - те.проверка условия, практически в любом ЯП высокого уровня.

    И где попытка? Отключить кеширвование - это не делать рантайм ресайз, а ведь можно при загрузке отресайзить, согласно установкам системы.
     
  16. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    269
    Симпатии:
    41
    Уважаемый, ты что-то путаешь.
    Если быстро и доходчиво то:
    Ты просто пришел поговорить, а Dotrox не на словах а на деле показал это в коде, не засирая форум.
    Каждому идиоту ясно что дело в операторе if
    Но не каждый молча сядет и напишет реальный код для людей.

    Если ты тут и силен в коде, так я считаю это совсем не взападло для пацана ответить конкретно, и обсудить в последствии с камрадами, раз ты сказал А, говори и Б. Неужели отец не учил этому?
    --- Добавлено, 7 авг 2015 ---
    А тут ты вообще красавец!
    И что я должен быть долбанным оракулом чтобы лезть куда и исправить что?
    --- Добавлено, 7 авг 2015 ---
    Добавлю для всех программистов на будущее:
    если вы видите что есть подобная тема и человек задал вопрос (и он не особо простой) - кидайте ему в личку ЦЕНУ РЕШЕНИЯ.
    мне было бы не сложно потом выложить оплаченное мной решение в паблик
     
  17. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    Где в стартопике желание оплатить?

    Мог бы спросить.
    Мой вопрос был - что понимается под кешированием.

    Надеюсь, что Вы не идиот.

    И.. Вы не прочитали, не процитировали мое дальнейшее...
    Т.е. и здесь вопросов не возникло...

    Будем дальше пузыри надувать? Или все же расскажете сообществу свое желание.
     
  18. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.038
    Симпатии:
    774
    http://stackoverflow.com/questions/...lues-with-other-values-from-same-array-in-php
    Это первое, что попалось по тегу php. И такого добра там тонны. И всё равно кто-нибудь напишет весь код и разжуёт как он работает.
    Видимо, вы просто никогда не просматривали ленту, а попадали туда только из Гугла.

    Вообще, хватит оффтопить. Все согласны, что халявщики это плохо, а в сложных задачах нужно помогать, а спор идёт только о том, кто в этой теме правее.
     
  19. mr.Elias

    mr.Elias

    Регистрация:
    15 июн 2013
    Сообщения:
    269
    Симпатии:
    41
    Привет! если для 2й версии ОС вносить эти изменения не в файлы, а отдельным фиксом, нужно использовать вкмод или окмод?
    я че-то не особо в теме с ОС 2,0 пока
     
  20. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.038
    Симпатии:
    774