문제

최근에 storecount라는 사용자 정의 변수를 만들었습니다. Store Locator 플러그인에 추가 된 모든 저장소에 대해 프로그래밍 방식으로 프로그래밍 방식으로 증가 할 수 있습니다.

제품 및 카테고리 설명을 포함하여 다양한 위치 에서이 정보를 보여주고 싶습니다. 그래서 우리가 새 상점을 추가 할 때, 우리는 상점 수의 모든 발생을 찾지 않고 수동으로 1만큼 증가하지 않아도됩니다. {{customVar code=storecount}}를 사용하면 카테고리 설명에서 작동하지 않습니다.Magento 코어를 조각으로 해킹하지 않고이 변수를 얻을 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

수행하는 가장 쉬운 방법은 CMS 블록 및 페이지 내용에 사용되는 범주 설명에 대해 동일한 템플릿 프로세서를 사용하는 것입니다. 위젯 모듈에서 하나.

이를 위해 확장이 필요합니다.StackExchange_Catalog라고 부르겠습니다.
다음 파일이 필요합니다.

app/etc/modules/StackExchange_Catalog.xml - 선언 파일

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Catalog>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Catalog />
                <Mage_Cms />
                <Mage_Widget />
            </depends>
        </StackExchange_Catalog>
    </modules>
</config>
.

app/code/local/StackExchange/Catalog/etc/config.xml - 구성 파일

<?xml version="1.0"?>
<config>
    <global>
        <catalog>
             <content>
                <tempate_filter>widget/template_filter</tempate_filter>
            </content>
        </catalog>
    </global>
</config>
.

캐시를 지우고 다시 시도하십시오.

다른 팁

Magento Core를 해킹하지 않고, 예;코드없이, 아니오.

카탈로그 _category_load_after 이벤트를 수신하는 옵저버를 작성하고 카테고리 설명을 조작 할 수 있습니다.

/ edit : 변경된 설명이있는 범주가 저장되면 사용자 정의 변수가 저장 될 수 있으므로 훌륭한 해결책이 아닙니다.

다른 방법은 storecount 변수를 템플릿 파일에 추가하는 것입니다.

// To get the TEXT value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');

// To get the HTML value of the custom variable:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');
.

템플릿을 궁금해하는 경우 템플릿 경로 힌트 및 템플리트 파일에 추가 할 위치를 찾을 수 있어야합니다. 핵심 템플릿을 무시하지 마십시오. 테마의 디렉토리에 복사하십시오. 따라서 app/design/frontend/[Your Design Package]/[Your Theme]/template/catalog/category/view.phtml와 같은 어딘가에있는 사본을 만드십시오. 이 연습을 따르지 않으면 Magento를 업그레이드 할 때 작업이 끊어집니다.

CMS 블록 생성 및 템플릿 파일에 추가하여 편집하고 끄는 것이 더 쉽습니다.

{{customVar code=storecount}}And를 포함하여 콘텐츠로 CMS 블록을 추가하십시오. 템플릿 파일에 필요한 곳에 추가하십시오 :

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_cms_block_identifier')->toHtml() ?>
.

업데이트 marius의 답변 에 적절한 모습을 보았습니다 - 그의 솔루션은 매우 깔끔하게 보이고 Magento에 필요한 헌법 성을 추가합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top