После переопределения контроллера, как лучше всего обновить дескрипторы - PullRequest
1 голос
/ 05 июля 2010

Как только я переопределил контроллер:

            <!--...-->               
              <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

Ответы [ 2 ]

4 голосов
/ 05 июля 2010

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

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

Это должно оставить ваши имена дескрипторов нетронутыми.

0 голосов
/ 08 июля 2010

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

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

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