local.xml을 통해 제품 목록에서 도구 모음 제거


13

레이아웃 업데이트에 local.xml을 사용하는 데 익숙하지만 remove 또는 unsetChild 메서드를 사용하여 제품 목록 블록에서 도구 모음을 제거 할 수 없습니다.

이것이 실제로 가능하지 않거나 누군가 내가 잘못하고 있다고 말할 수 있습니까?

나는 시도했다 :

<action method="unsetChild">  
    <alias>toolbar</alias>
</action>

<action method="unsetChild">  
    <alias>product_list_toolbar</alias>
</action>

또한 <remove name="" />방법도 있지만 아무것도 작동하지 않습니다.

답변:


11

그리고 당신은 뭔가를 재정의하지 않고 그것을 제거 할 수 없습니다. 여기에 어떻게 getToolbarBlock()방법은 다음과 같습니다

public function getToolbarBlock()
{
    if ($blockName = $this->getToolbarBlockName()) {
        if ($block = $this->getLayout()->getBlock($blockName)) {
            return $block;
        }
    }
    $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, microtime());
    return $block;
} 

즉, 특정 이름을 가진 블록 (로 반환 된 값 getToolbarBlockName)이 레이아웃에 존재하면 해당 블록이 반환됩니다. 그렇지 않으면 유형으로 새 블록이 작성되고 catalog/product_list_toolbar메소드에 의해 리턴됩니다.

[편집] 방금 미친 아이디어가있었습니다. 툴바 블록 타입을 바꾸지 않겠습니까? 그렇게하면 툴바로 렌더링되지 않습니다. 나는 그것을 시도하지 않았지만 그만한 가치가 있다고 생각합니다.
다음과 같은 것 :

<reference name="product_list">
    <block type="core/template" name="product_list_toolbar" />
</reference>

이름은 같지만 유형이 다른 블록을 추가하는 것을 의미합니다. 그것이 작동하지 않는 경우 donwvote하지 마십시오; 그것은 단지 아이디어입니다 :)


1
이와 같은 코드는 마 젠토에게 정말 짜증납니다. 이제 멋진 레이아웃 xml이 충분할 클래스 또는 템플릿을 재정의해야합니다.
Marty Wallace

나는 일하기에 충분히 미친 아이디어로 답변을 업데이트했습니다.
Marius

@MartyWallace-적어도 처음에는 레이아웃 XML이 있습니다. 사람들이 그것을 사용하는 방법을 알고 나면 레이아웃 XML이 "마우스에게 쿠키 제공"범주에 속한다고 생각합니다.
benmarks

1
페이징을 설정하기 위해 setCollection 함수가 필요하기 때문에 다른 유형이 문제를 일으킬 수 있음
Alex

1
정말 실망 스럽지만 훨씬 덜 침입적인 해킹은 jQuery (document) .ready (function () {jQuery ( '. limiter'). hide ();})와 함께 jquery를 사용하여 숨길 수 있습니다.
Danny Z

8

당신의에서 local.xml파일에 다음을 추가합니다 :

<catalog_category_default>
    <!-- Remove Toolbar by setting a blank template -->
    <reference name="product_list_toolbar">
        <action method="setTemplate"><template /></action>
    </reference>
</catalog_category_default>

카테고리 페이지의 사용자 정의 레이아웃 업데이트의 경우 이것이 가장 좋습니다.
Joseph at SwiftOtter

2

개발자가 물건을 만든 이상한 방법으로 인해 이것을 제거하거나 XML을 통해 이것을 설정 해제 할 수없는 것 같습니다. 그러나 빈 템플릿을 만들고 대신이 빈 템플릿을 도구 모음으로 가리킬 수 있습니다.

<catalog_category_default>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_default>
<catalog_category_layered>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_layered>
<catalogsearch_result_index>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalogsearch_result_index>

일반 카테고리, 고정 카테고리 및 검색 페이지에서 제거됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.