2014-12-23 3 views
0

Я пытаюсь изменить шаблон для рендеринга элементов на одной странице. Вот часть из checkout.xml, где установлен этот рендерер.Один элемент рендеринга страницы magento

<block type="checkout/onepage_review_info" name="root" output="toHtml" template="checkout/onepage/review/info.phtml"> 
     <action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/onepage/review/item.phtml</template></action> 
     <action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/onepage/review/item.phtml</template></action> 
     <action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/onepage/review/item.phtml</template></action> 
     <block type="checkout/cart_totals" name="checkout.onepage.review.info.totals" as="totals" template="checkout/onepage/review/totals.phtml"/> 
     <block type="core/text_list" name="checkout.onepage.review.info.items.before" as="items_before" translate="label"> 
      <label>Items Before</label> 
     </block> 
     <block type="core/text_list" name="checkout.onepage.review.info.items.after" as="items_after" translate="label"> 
      <label>Items After</label> 
     </block> 
     <block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="checkout/onepage/agreements.phtml"/> 
     <block type="core/template" name="checkout.onepage.review.button" as="button" template="checkout/onepage/review/button.phtml"/> 
    </block> 

Я хочу изменить его для конфигурируемых продуктов. Я не уверен, какое решение лучше.

ответ

1

Вы можете изменить рендеринг элементов через файл local.xml. Если файл еще не существует, вы можете создать его в папке app/design/frontend/[your_package]/[your_theme]/layout/.

<?xml version="1.0"?> 
<layout version="0.1.0"> 
    <checkout_onepage_review> 
     <reference name="root"> 
      <action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>path/to/your/file/item.phtml</template></action> 
     </reference> 
    </checkout_onepage_review> 
</layout> 

Вы поймете, почему это возможно, если вы посмотрите на addItemRender метод внутри Mage_Sales_Block_Items_Abstract класса.

public function addItemRender($type, $block, $template) 
{ 
    $this->_itemRenders[$type] = array(
     'block'  => $block, 
     'template' => $template, 
     'renderer' => null 
    ); 

    return $this; 
} 

Надеюсь, это поможет!

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