2012-01-03 2 views
4

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

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

ответ

5

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

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); 

Вот новый код. Если вы скажете мне, до какого расширения, мы решили быстро. Если я не ошибаюсь, вы использовали Расширение изображения шаблона шаблона шаблона. Таким образом, внутри внутренней части есть функция, как показано ниже.

// app/design/frontend/default/default/template/easycatalogimg/homepage.phtml 
<?php echo Mage::helper('easycatalogimg/image')->resize($imageUrl, $width , $height) ?> 
+1

Я не могу использовать это, потому что использую «Mage :: getModel ('catalog/category') -> load ($ _ category-> getId()); чтобы получить экземпляр категории .. выше код работает для отдельных продуктов .. – balanv

+0

@balanv попробуйте новый код пожалуйста. –

+0

Я пробовал это, но не могу использовать это. Когда я использую код $ this-> helper ('catalog/image') -> init ($ cur_category, 'thumbnail', $ image-> getFile()) -> resize (100,100); показывает ошибку, как «Позвоните в функцию-член getFile() на не-объекте в /app/design/frontend/default/default/template/easycatalogimg/subcategories.phtml« – balanv

0

Если вам необходимо изменить размер изображение категории, как он держит сокращается до 475px в ширину, вы можете сделать это путем удаления «ширина =„475“» из следующего шаблона: приложение/дизайн/интерфейс /default/default/template/catalog/category/view.phtml

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

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

+0

Спасибо Detzee .. – balanv

2

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

+1

вы хотите заменить строку 33 помощника на это: '$ this-> placeHolder = Mage :: getDesign() -> getSkinUrl ('images/catalog/product/placeholder/image.jpg'); ', чтобы избежать бесконечной вложенности, если в папке с темами нет местозаполнителя (с помощью кода сверху magento вернется к заполнителю по умолчанию) , В противном случае отличный код, спасибо за обмен – srgb

+0

@ Netismine спасибо вам и сделали. –

3
<?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 
?> 

"/>

Для получения дополнительной осветления see here

0

Я понимаю, что я опоздал на вечеринку, но у меня была возможность посмотреть на это в последнее время и с помощью 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, помимо того, что она имеет дело с кучей логики с самим продуктом.

Смежные вопросы