2012-05-04 2 views
2

checkout.xml 파일의 일부만 변경하고 싶습니다 (이 파일은 코어 레이아웃 폴더에 있음). 내 config.xml 내 자신의 레이아웃 - XML ​​파일에 내 자신의 확장 및 링크를 만듭니다.Magento : 레이아웃의 일부만 덮어 쓰십시오. xml-File

<layout> 

    <updates> 
    <checkout> 
    <file>mymodule_checkout.xml</file> 
    </checkout> 
    </updates> 
</layout> 

전체 파일 checkout.xml을 복사하고 mymodule_checkout.xml로 저장할 때 아무런 문제가 없습니다. 그러나 나는 단지 내가 단지 내가 젠토 만이 내 파일을 읽고, 필요한 부분을 쓸 때,이 경우

<reference name="content"> 

</reference> 

사이에이 큰 파일의 작은 부분을 대체하려면 부분품. 따라서 magento는 원래 checkout.xml의 나머지 부분을 가져 오지 않습니다.

전체 파일을 복사하거나 코어를 변경하지 않고 코어 레이아웃 xml-File의 일부만을 변경할 수 있습니까?

mymodule.xml의 코드는 다음과 같습니다

<layout version="0.1.0"> 

<checkout_onepage_index translate="label"> 

    <reference name="content"> 
     <block type="checkout/onepage" name="checkout.onepage" template="checkout/onepage.phtml"> 
      <block type="checkout/onepage_login" name="checkout.onepage.login" as="login" template="checkout/onepage/login.phtml"> 
       <block type="page/html_wrapper" name="checkout.onepage.login.before" as="login_before" translate="label"> 
        <label>Login/Registration Before</label> 
        <action method="setMayBeInvisible"> 
         <value>1</value> 
        </action> 
       </block> 
       <block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/billing.phtml"/> 
       <block type="checkout/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="checkout/onepage/shipping.phtml"/> 
      </block> 
      <block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="checkout/onepage/shipping_method.phtml"> 
       <block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/> 
       <block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/> 
      </block> 
      <block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml"> 
       <block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml"> 
        <action method="setMethodFormTemplate"> 
         <method>purchaseorder</method> 
         <template>payment/form/purchaseorder.phtml</template> 
        </action> 
       </block> 
      </block> 
      <block type="checkout/onepage_review" name="checkout.onepage.review" as="review" template="checkout/onepage/review.phtml"/> 
     </block> 
    </reference> 
</checkout_onepage_index> 
</layout> 

을 내가 필요한 부분 이잖아. 이 경우 magento는 코어 XML 파일의 나머지 코드가 아닌이 코드 만 사용합니다.

답변

0

물론 그렇습니다. Magento는 대체 테마의 파일을 포함하여 모든 레이아웃 파일을 하나로 결합합니다. 모든 파일을 처리 한 후에도 여전히 관련성이있는 것은 무엇이든 레이아웃을 생성하는 데 사용되는 것이고 XML이 올바르게 형식화되어있는 한 .xml 파일의 모든 섹션을 무시할 수 있습니다. 즉, page.xml은 foobarbaz.xml에서 재정의 할 수 없다는 것을 의미합니다.

XML에 문제가있을 가능성이 높습니다. mymodule_checkout.xml의 내용을 게시하여 수행하려는 작업을 파악하고 작업 대체를 제공 할 수 있습니까?

+0

나는 내 질문에 코드를 게시합니다. – Marco

+0

감사합니다. 게시 한 코드는 잘못된 페이지의 닫기 블록을 제외하고는 괜찮습니다. 이것이 의도인지는 모르지만 위 코드의 청구 및 배송 섹션은 로그인 페이지에 지정되어 있습니다. 위의 두 선언,'checkout.onepage.billing'과'checkout.onepage.shipping'은 뒤에 올 것입니다. 기본 코드가있는 코드와 비교하여 교체 된 코드로 한 페이지 체크 아웃에서 누락 된 것이 무엇인지 정확하게 알 수 있습니까? 일러스트레이션을 위해 페이지의 URL을 제공 할 수 있습니까? 감사! – WildWorx

+0

로그인 블록의 하위 위치 인이 위치에있는 청구 및 배송 블록이 의도되었습니다. 그게 내가 필요한 변화 야. 다른 한 페이지 체크 아웃의 모든 항목이 누락되었습니다. Magento는 내 코드 만 가져옵니다. – Marco

관련 문제