Как изменить размер изображения категории в Magento? - PullRequest
5 голосов
/ 03 января 2012

Как изменить размер изображения категории в Magento? Я использовал следующий код для изменения размера изображений товара, но я не могу использовать его для показа изображений категорий:

$this->helper('catalog/image')->init($_product, 'small_image')->resize(170);

Ответы [ 5 ]

5 голосов
/ 03 января 2012

Если я не ошибаюсь, должно быть:

init($_product, 'small_image')->resize(100,100);

// single parameter work with 'image'
init($_product, 'image')->resize(100);

// How about this
$this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $image->getFile())->resize(100,100);

Вот новый код. Если вы скажете мне, какое расширение использовалось, мы быстро решим. Если я не ошибаюсь, вы использовали Template Monster Catalog Image Extension. Итак, внутри расширения есть функция, как показано ниже.

// app/design/frontend/default/default/template/easycatalogimg/homepage.phtml
<?php echo Mage::helper('easycatalogimg/image')->resize($imageUrl, $width , $height) ?>
3 голосов
/ 08 февраля 2014
 <?php
               $_file_name = $cat->getThumbnail(); // Here $cat is category data array                
$_media_dir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS;
                $cache_dir = $_media_dir . 'resize' . DS; // Here i create a resize folder. for upload new category image

if (file_exists($cache_dir . $_file_name)) {
                             $catImg =Mage::getBaseUrl('media') .  'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
                         } elseif (file_exists($_media_dir . $_file_name)) {
                             if (!is_dir($cache_dir)) {
                                 mkdir($cache_dir);
                             }

                             $_image = new Varien_Image($_media_dir . $_file_name);
                             $_image->constrainOnly(true);
                             $_image->keepAspectRatio(false);
                             $_image->keepFrame(false);
                             $_image->keepTransparency(true);
                             $_image->resize(224, 174); // change image height, width
                             $_image->save($cache_dir . $_file_name);
                             $catImg = Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
                         }
 echo  $catImg ; // display resize category thumbnail imagename
 ?>

"/>

Для получения дополнительной информации см. Здесь

2 голосов
/ 06 декабря 2012

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

1 голос
/ 01 мая 2017

Я понимаю, что я опаздываю на вечеринку, но у меня была возможность взглянуть на это недавно, и использование init() для изменения размера изображений продуктов прекрасно, как описано в вопросе, но вы не должны использовать тот же функция для изменения размера отдельного изображения, через функцию, где само изображение (третий параметр) является необязательным значением.

Вот что я сделал, чтобы изменить размер изображения, это для любого изображения:

$model = Mage::getModel('catalog/product_image');
$model->setBaseFile('test.png');
$model->setWidth(100);
$model->resize();
$model->saveFile();
echo $model->getUrl();
// generates the following url: http://example.com/media/catalog/product/cache/1//9df78eab33525d08d6e5fb8d27136e95/test.png

Если вы не хотите сохранять изображение в каталоге media, вы можете использовать объект Varien_Image для достижения этого:

$varienImage = new Varien_Image('test.png');
$varienImage->resize(100);
$varienImage->save('var', 'test2.png');

save() принимает первый параметр в качестве каталога, в котором вы хотите сохранить новый файл, а второй параметр - имя нового файла.

Шаги аналогичны тому, что делает функция init, кроме работы с кучей логики с самим продуктом.

0 голосов
/ 04 января 2012

Если вам нужно изменить размер изображения категории, поскольку оно продолжает уменьшаться до 475 пикселей в ширину, вы можете сделать это, удалив 'width = "475" из следующего шаблона: app / design / frontend / default / default / template /catalog / category / view.phtml

Также может потребоваться отключить или очистить кэш в бэкенде по адресу: Система -> Управление кэш-памятью -> Кэш-память изображений -> Очистить.

От: http://www.pridedesign.ie/content/magento-resize-category-image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...