2012-03-01 4 views
1

최근 Magento 1.6.1을 사용하여 저의 로컬 전자 상거래 회사에서 새로운 자리를 차지하기 시작했습니다. 나는 이전 경험이 있지만 그것은 주로 Wordpress를 사용합니다.Magento 레이아웃 작업

나는 Magento를 "알고"있지만 작동 방식에 대해 내 머리를 감쌀 수 있지만, 물론 여전히 장애물이 있습니다. 운좋게도 코드에서 손이 더러워지고 실제로 매일 더 많이 배울 수있는 충분한 상사가 있습니다.

최근에 레이아웃이 내 새로운 장애물이었습니다. 문제는 코드 내에서 다른 사람이 수정했거나 다른 사람이 코드를 수정 한 것입니다. 저는 여기 첫 번째 웹 마스터가 아닙니다 ...

"bottom.phtml"블록을 이동하여 "media.phtml"(제품 이미지/축소판 렌더링 위치) 아래로 렌더링하는 데 어려움을 겪고 있습니다. 코드는 다음과 같다 :

<catalog_product_view translate="label"> 
    <label>Catalog Product View (Any)</label> 
    <!-- Mage_Catalog --> 
    <reference name="root"> 
     <action method="setTemplate"><template>page/1column.phtml</template></action> 
    </reference> 
    <reference name="head"> 
     <action method="addJs"><script>varien/product.js</script></action> 

     <action method="addJs"><script>virtualpaginate.js</script></action> 

     <action method="addItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/><!--<if/><condition>can_load_calendar_js</condition>--></action> 
     <action method="addItem"><type>js</type><name>calendar/calendar.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action> 
     <action method="addItem"><type>js</type><name>calendar/calendar-setup.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action> 

    </reference> 
    <reference name="content"> 
     <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml"> 
      <!-- 
      <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/summary.phtml</template></action> 
      <action method="addReviewSummaryTemplate"><type>short</type><template>review/helper/summary_short.phtml</template></action> 
      <action method="addReviewSummaryTemplate"><type>...</type><template>...</template></action> 
      --> 
      <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/> 
      <block type="core/text_list" name="alert.urls" as="alert_urls" translate="label"> 
       <label>Alert Urls</label> 
      </block> 

      <action method="setTierPriceTemplate"><template>catalog/product/view/tierprices.phtml</template></action> 
      <block type="catalog/product_list_related" name="catalog.product.related" as="related" template="catalog/product/list/related.phtml"/> 
      <block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml"> 
       <action method="setColumnCount"><columns>4</columns></action> 
       <action method="setItemLimit"><type>upsell</type><limit>4</limit></action> 
      </block> 

      <block type="catalog/product_view_additional" name="product.info.additional" as="product_additional_data" /> 
      <block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml"/> 
      <block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml"/> 
      <block type="catalog/product_view" name="product.info.addto" as="addto" template="catalog/product/view/addto.phtml"/> 
      <block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/> 

      <block type="catalog/product_view" name="product.info.options.wrapper" as="product_options_wrapper" template="catalog/product/view/options/wrapper.phtml" translate="label"> 
       <label>Info Column Options Wrapper</label> 
       <block type="core/template" name="options_js" template="catalog/product/view/options/js.phtml"/> 
       <block type="catalog/product_view_options" name="product.info.options" as="product_options" template="catalog/product/view/options.phtml"> 
        <action method="addOptionRenderer"><type>text</type><block>catalog/product_view_options_type_text</block><template>catalog/product/view/options/type/text.phtml</template></action> 
        <action method="addOptionRenderer"><type>file</type><block>catalog/product_view_options_type_file</block><template>catalog/product/view/options/type/file.phtml</template></action> 
        <action method="addOptionRenderer"><type>select</type><block>catalog/product_view_options_type_select</block><template>catalog/product/view/options/type/select.phtml</template></action> 
        <action method="addOptionRenderer"><type>date</type><block>catalog/product_view_options_type_date</block><template>catalog/product/view/options/type/date.phtml</template></action> 
      </block> 
        <block type="core/html_calendar" name="html_calendar" as="html_calendar" template="page/js/calendar.phtml"/> 
       </block> 
      <block type="catalog/product_view" name="product.info.options.wrapper.bottom" as="product_options_wrapper_bottom" template="catalog/product/view/options/wrapper/bottom.phtml" translate="label"> 
       <label>Bottom Block Options Wrapper</label> 
       <action method="insert"><block>product.tierprices</block></action> 
       <block type="catalog/product_view" name="product.clone_prices" as="prices" template="catalog/product/view/price_clone.phtml"/> 
       <action method="append"><block>product.info.addtocart</block></action> 
      </block> 

      <block type="core/template_facade" name="product.info.container1" as="container1"> 
       <action method="setDataByKey"><key>alias_in_layout</key><value>container1</value></action> 
       <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action> 
       <action method="append"><block>product.info.options.wrapper</block></action> 
       <action method="append"><block>product.info.options.wrapper.bottom</block></action> 
      </block> 
      <block type="core/template_facade" name="product.info.container2" as="container2"> 
       <action method="setDataByKey"><key>alias_in_layout</key><value>container2</value></action> 
       <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action> 
       <action method="append"><block>product.info.options.wrapper</block></action> 
       <action method="append"><block>product.info.options.wrapper.bottom</block></action> 
      </block> 
      <action method="unsetCallChild"><child>container1</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action> 
      <action method="unsetCallChild"><child>container2</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action> 
     </block> 
    </reference> 
    <reference name="right"> 
     <block type="catalog/product_list_related" name="catalog.product.related" before="-" template="catalog/product/list/related.phtml"/> 
    </reference> 
</catalog_product_view> 

내가 말한대로 내가 가서 지금, 나는 그것이 확실히 나에게 이점을 주어진 것 정도에, 나의 워드 프레스 themeing의 지식, 마 젠토를 배우는 중이에요. 그러나 이것을 해독하려고 시도하는 것은 어려운 장벽으로 판명되었습니다. 어쩌면 나는 그것을 분석하고 있지만, 단지 몇 가지 사항에 대해 머리를 감쌀 수는 없습니다. 1) 왼쪽에 "media.phtml", 제품 옵션에 "bottom.phtml"을 플로팅하는 방법을 어떻게 알 수 있습니까? 권리? 2) "bottom.phtml"을 옵션에서 분리하여 "media.phtml"(제품 이미지) 아래로 옮길 수 있고 어떻게 스타일링을 시작할 수 있습니까?

나는 Magento를 좋아하지만, 사람은 그것을 데리러 거친 사람입니다.

빛을 비추거나 단단한 자원을 제공 할 수있는 사람에게 감사드립니다! 모든 자습서, 내가 찾은 자료는 훌륭하지만 새로 설치해야하므로 많은 코드가 필요하지 않습니다. 이것으로, 나는 다른 누군가에게 일하고 정직하게 코드를 파헤 치고있다 ... 나는 내가 아는 모든 것에 대해 정말로 나쁠 수있다!

다시 한번 감사드립니다!

답변

5

XML 부분은 대부분 템플릿 파일을 사용할 수있는 특정 블록을 만듭니다.

template/catalog/product/view.phtml에서 봐, 그리고 당신이 HTML 비트를 많이 볼 수 있습니다 (물론 모든 규칙과 core/text_list 블록 또는 적용 않습니다 XML의 순서 $this->getChildHtml('')를 호출 템플릿의 경우에는 예외가 있습니다) 그리고 라인은 ...

<?php echo $this->getChildHtml('media') ?> 

... 이것은 블록의 위치입니다. 이제 bottom.phtmlproduct_options_wrapper_bottom으로 사용하지만 블록은 다음과 같이 출력된다 container1container2 블록에 추가됩니다 직접 사용되지 않는 :

<?php if ($_product->isSaleable() && $this->hasOptions()):?> 
    <?php echo $this->getChildChildHtml('container1', '', true, true) ?> 
<?php endif;?> 

당신이해야 할 모든 편집 catalog/product/view.phtml 그래서 비트가 낮은 아래이다 페이지. 물론 기본 템플릿을 직접 편집하지 말고 해당 파일을 사이트 테마의 해당 경로에 복사하십시오.

Magento 기본 설치에서는 제품보기 페이지가 가장 복잡 할 수 있습니다. 위치를 시작하기에 좋은 장소입니다. 앨런 스톰 (Alan Storm)의 No Frills Magento Layout으로 시작하는 것이 더 좋은 방법 일 것입니다. 나는 아마 그것을 추천할만한 사람이 아니다.

관련 문제