2013-01-03 2 views
0

Magento 사이트 내에 상점의 루트 카테고리가 있습니다 (이것은 단지 "기본 카테고리"입니다). 이 밑에 우리는 몇 가지 최상위 카테고리 (예를 들어, "전자 제품"및 "가구"라고 부름)를 설정하고 여러 하위 범주를 설정했습니다.magento의 맞춤 최상위 카테고리 랜딩 페이지

그래서 예를 들어 우리의 카테고리 구조는

  • MP3 플레이어
  • 컴퓨터
  • 가구

    • 전자
      • DVD 플레이어 수 있습니다
        • 3 파이 ECE의
        • 의자
        • 테이블
        • 소파 베드는

      나는 그런 우리는 사용자 정의 제품을 표시 할 수 있도록 "DVD 플레이어"로 "하위 범주"에 대한 레이아웃/템플릿을 편집 관리해야 목록보기.

      이제 최상위 카테고리 (루트 카테고리 아래의 첫 번째 카테고리)에 대해, 제품 목록이 아닌 모든 하위 카테고리 및 연관된 축소판 이미지의 맞춤 격자를 표시합니다.

      최상위 카테고리에만 완전히 다른 템플릿을 어떻게 할당합니까?

      사람은이 작업을 수행하는 방법에 대한 통찰력을 제공 할 수있는 경우 단계의 우리가 취할 필요 (내가 코드 자체에 확인을해야 그 바로 그러한 사용자 정의 모듈과 템플릿으로 구현하는 방법)

      감사합니다

  • 답변

    4

    최상위 카테고리에 적용 할 수있는 맞춤 페이지 레이아웃이 필요한 것처럼 들립니다. 페이지 레이아웃은 제품 또는 카테고리에 적용하기 위해 드롭 다운에서 선택할 수있는 기본적으로 명명 된 페이지 템플릿입니다.

    <global> 
        <page> 
         <layouts> 
          <my_custom_layout_name translate="label"> 
           <label>My Custom Layout</label> 
           <template>page/my-custom-layout.phtml</template> 
           <layout_handle>my_custom_layout</layout_handle> 
          </my_custom_layout_name> 
         <layouts> 
        <page> 
    <global> 
    

    그런 다음 당신은 그냥 응용 프로그램/디자인 어딘가에 page/my-custom-layout.phtml 템플릿 파일을 작성해야합니다 :

    은과 같이, 모듈의 config.xmlglobal/page/layouts 노드를 추가, 레이아웃을 정의하려면 템플릿 대체 체인.

    layout_handle 노드는 당신이 <my_custom_layout> 노드와 레이아웃 XML 파일에서를 대상으로 할 수 있도록,이 레이아웃을 사용하는 모든 페이지에 추가 할 수있는 새로운 레이아웃 핸들의 이름을 지정합니다.

    .phtml는 전체 HTML 페이지에 대한 템플릿 될 것입니다 참조하고 파일, 그래서 기본 page/*.phtml 템플릿 중 하나 (빈 1column에서 찾을 것 <html>, <head>, <body> 태그와 다른 것을 포함해야한다, 2 칼럼 - 왼쪽 등). 이 레이아웃 된 XML과 목표로 지정된 레이아웃 XML 사이에서이 페이지를 처음부터 완전히 사용자 정의 할 수 있습니다.

    마지막 단계는 카탈로그 -> 카테고리 관리에서 각 상위 카테고리를 편집 할 때 "맞춤 디자인"탭에서이 새로운 레이아웃을 선택하는 것입니다. 드롭 다운에 레이아웃이 표시되지 않으면 XML이 올바르게 구성되어 있는지 확인하고 (참조 용으로 app/code/core/Mage/Page/etc/config.xml 참조) 캐시를 새로 고칩니다.

    +0

    나는 그것이 최상의 해결책 인 것처럼 대답을 받아 들일 것입니다. 그러나 서둘러 일을 끝내기 위해 관찰자를 사용하여 최상위 카테고리 페이지를 자동으로 확인하고 레이아웃을 완전히 변경하는 방법을 발견했습니다. 미래에는 귀하의 솔루션이 더 깨끗한 방법 일 것이라고 생각합니다. – Lee

    +0

    나는 또한이 시도했지만 템플릿 목록에 나타나지 않습니다. 또한 재발행하고 다시 색인을 붙이려고했지만 여전히 보이지 않았습니다. – Mike

    1

    이 작업을 수행하는 한 가지 방법은 범주 격자가 될 새 템플릿을 만든 다음 해당 템플릿을 CMS를 통해 선택한 선택한 범주의 정적 블록으로 호출하는 것입니다. 아래를 참조하십시오.

    1. 이동은 "응용 프로그램/디자인/프론트 엔드/기본/템플릿/카탈로그/탐색"이 경로에서
    2. , 우리는 파일 호출 category_listing.phtml을 만듭니다하는 범주 그리드 템플릿 만들기
    3. 다음 코드해야합니다이 파일 :

      <?php $_maincategorylisting=$this->getCurrentCategory()?> 
      <?php $_categories=$this->getCurrentChildCategories()?> 
      <h2><?php echo $this->__('Browse Products') ?> </h2> 
      <div class="subcat-listing"> 
      <ul class="subcat-products"> 
      <? foreach ($_categories as $_category):?> 
      <? if($_category->getIsActive()): ?> 
      <?php $cur_category=Mage::getModel('catalog/category')->load($_category->getId()); ?> 
      <?php $layer = Mage::getSingleton('catalog/layer'); ?> 
      <?php $layer->setCurrentCategory($cur_category); ?> 
      <? if($_imageUrl=$this->getCurrentCategory()->getImageUrl()):?> 
      <li> <a href="<?php echo $this->getCategoryUrl($_category) ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"> 
      <img src="<?php echo $_imageUrl ?>" width="auto" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /> 
      </a> 
      <h3><?php echo $this->htmlEscape($_category->getName()) ?></h3> 
      <? if($_description=$this->getCurrentCategory()->getDescription()):?> 
      <p class="category-description"> 
      <?php echo $_description ?></</p> 
      <?php endif; ?> 
      <? endif; ?> 
      <? endif; ?> 
      <?php endforeach; ?> 
      </ul> 
      </div> 
      <?php $layer->setCurrentCategory($_maincategorylisting); ?> 
      

    전화 정적 블록

    1. 에서이 템플릿은 메뉴 "CMS/정적 블록"로 이동하여 새로운 블록을 만들 수 있습니다.

    2. CMS 블록의 콘텐츠 섹션에 추가 :
      {{block type="catalog/navigation" name="catalog.categories" template="catalog/navigation/category_listing.phtml"}}. 그런 다음 블록을 저장하십시오.

    사용 카테고리 페이지에서이 정적 블록.

    1. 이동 메뉴 카탈로그에/

    2. 이제 우리는 우리가 원하는 categorie를 선택

    3. 에 새로운 그리드를 표시 할 범주를 찾을 필요하고, 카테고리 관리 탭 "디스플레이 설정 다음 정보를 설정합니다 :

      디스플레이 모드 : 정적 블록 CMS 블록 : 카테고리 리스팅 (이전에 생성 한 블록) 앵커인가 : 아니오

    4. 저장을 클릭하십시오. 탭 "Custom Design"에서 템플릿을 선택해야 할 수도 있습니다. 범주에는 많은 이미지가 할당되어 있습니다.

    관련 문제