문제

상황은 다음과 같습니다.나는 core/template 프로그래밍 방식으로 차단합니다(있는 경우). CMS Block(Static Block)가 레이아웃 구조에 존재합니다.이 템플릿을 사용하여 일부 콘텐츠를 동적으로 추가하겠습니다.

정적 블록에 대한 관찰자가 있으면 이를 사용할 수 있습니다.또 다른 옵션은 정적 블록 특정 레이아웃 핸들이 있는 경우 레이아웃을 통해 동일한 결과를 얻을 수 있다는 것입니다(마치 다음과 같습니다). cms_page 레이아웃 핸들).

하지만 아직 정적 블록에 대한 관찰자를 찾을 수 없습니다.그래서 관찰자와 함께 갈 수 없습니다.또한 정적 블록별 레이아웃 핸들을 찾습니다.그 검색은 나를 필사적으로 만들었습니다.하나도 찾을 수 없었습니다.따라서 레이아웃 업데이트도 불가능합니다.

그래서 제가 이를 달성할 수 있는 유일한 방법은 일반적인 사건을 관찰하는 것입니다(아마도 controller_action_layout_generate_blocks_after).하지만 너무 나쁜 방법인 것 같아요..

그럼 이제 어떻게 해야 할까요?이를 수행하는 가장 좋은 방법은 무엇입니까?정적 블록에 대한 사용자 정의 이벤트 리스너를 생성해야 할 수 있나요(가능한지 모르겠습니다!!)?당신의 생각을 함께 나누세요.

메모 : 확장 프로그램을 만드는 중입니다.최대한 깨끗하고 싶습니다.:)

도움이 되었습니까?

해결책 2

이를 수행하는 다른 방법은 없는 것 같습니다.그래서 일반행사를 들어봤는데 controller_action_layout_generate_blocks_after .cms 블록이 있으면 새 블록을 만들었습니다.

다른 팁

어쩌면 XML에서 도우미를 사용하고 그 안의 조건을 확인하고 XML 내에서 조건을 수행한 다음 그에 따라 조치를 취할 수도 있습니다.관찰자로 블록의 부하를 하나하나 관찰하는 것보다 더 나을 수도 있습니다.

여기는 XML 접근 방식에 대한 답변입니다.

<action method="addLink" translate="label title" module="catalog" ifconfig="catalog/seo/site_map">
    <label>Site Map</label>
    <url helper="catalog/map/getCategoryUrl" />
    <title>Site Map</title>
</action>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top