2013-09-09 3 views
0

Мне нужно программно обновить макет страницы тысяч категорий в каталоге Magento + randomize. Вот кусок кода:Изменение макета категории Magento

 /* @var $_childColorCategory Mage_Catalog_Model_Category */ 
     $_childColorCategory = Mage::getModel('catalog/category')->load($_childColorId); 

     /* positions rand */ 
     $_positions = $_childColorCategory->getProductsPosition(); 
     if (count($_positions) > 1) { 
      $_order = range(1, count($_positions)); 
      shuffle(&$_order); 
      $_newPositions = array_combine(array_keys($_positions), $_order); 
      $_childColorCategory->setPostedProducts($_newPositions); 
     } 

     $_childColorCategory 
       ->setPageLayout('two_columns_right') 
       ->save(); 

, конечно, это все в цикле и т.д.

Вопрос заключается в том, что макет не обновляется (порядок вложенных продуктов изменился штраф): Я вижу в приборной панели, что все («two_columns_right»), но на самом деле он не работает над интерфейсом до нажатия кнопки «Сохранить» в администраторе. Если я нажимаю кнопку (без внесения каких-либо изменений), то макет становится фактически правильным на интерфейсе, и более того - любые дальнейшие изменения в программном макете в эту категорию хорошо работают. Есть идеи? Thanks

P.S. Это не проблема с кешем 100%. Magento обновлен до версии 1.7 - не повезло. Многострочная установка (4 веб-сайта).

ответ

0

В Magento все макеты изменения в XML-файлах, более подробная информация находится в http://www.magentocommerce.com/design_guide/articles/intro-to-layouts

для категории макет, который вы anwser здесь http://www.magentocommerce.com/boards/viewthread/16838/

НО это очень плохая идея, чтобы показать Распределить продукты, потому что Magento будет очень медленно.

+0

Почему он должен быть медленным? Конечно, я знаю, как макеты работают в magento, но мне не нужны все категории, которые нужно изменить – c0rewell