2010-07-05 1 views
1

После того, как я переопределить контроллер:После перекрывая регулятора, как наилучшим образом обновление обрабатывает

  <!--...-->    
       <rewrite>   
        <sj_storepickup_checkout_onepage>      
         <from><![CDATA[#^/checkout/onepage/#]]></from> 
          <to>/storepickup/checkout_onepage/</to>   
        </sj_storepickup_checkout_onepage>     
       </rewrite>   
      <!--...--> 

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

    <!--...-> 
        <layout>  
         <updates>  
          <storepickup>   
           <file>storepickup.xml</file>  
           </storepickup>   
         </updates>  
        </layout>  
       <--...--> 

так, что я могу обновить новый модуль (этот файл storepickup), чтобы использовать оригинальные checkout_onepage_action дескрипторы, которые будут выполняться следующим образом в storepickup.xml

  <sj_storepickup_checkout_onepage_index>   
       <update handle="checkout_onepage_index"/> 
      </sj_storepickup_checkout_onepage_index>  

      <sj_storepickup_checkout_onepage_progress>   
       <update handle="checkout_onepage_progress"/>   
      </sj_storepickup_checkout_onepage_progress> 

           . 
           . 
           . 

В противном случае макет будет отображать пустой блок контента.

В файле макета storepickup.xml я говорю использовать оригинальные макеты для оформления заказа, и это кажется много повторяющимся и неэффективным способом сделать это? Есть ли лучший способ обновить ручки? могу ли я сделать то же самое в контроллере, чтобы избежать лишнего файла макета для записи/обработки?

Спасибо,

Margots

ответ

4

Переопределение контроллеры непосредственно всегда было немного рубить, с большим количеством нежелательных побочных эффектов. Попробуйте использовать the technique discussed here, чтобы Magento сначала проверила ваш модуль на конкретный файл контроллера.

<admin> 
<routers> 
    <adminhtml> 
    <args> 
     <modules> 
     <sintax before="Mage_Adminhtml">Mage_Sintax</sintax> 
     </modules> 
    </args> 
    </adminhtml> 
</routers> 
</admin> 

Он должен оставить неповрежденные имена.

+0

+1, за такой информативный базовый ответ, поддерживающий синтаксис Magento. –

0

Спасибо Алан, ... Я пробовал это перед публикацией, чтобы узнать, что версия Magento 1.2 не поддерживает это решение, а сайт находится в версии 1.2. Я считаю, что это решение будет работать только для magento версии 1.3 и выше. пожалуйста, исправьте меня, если я ошибаюсь?

Любые другие идеи, как решить это в пурпурной версии 1.2 и ниже?

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