문제

/ app/code/mage/catalog/block/product/view.php를보고 _PREPERELAYOUT 함수

에있는 메타 설명 태그에 대한 논리를 볼 수 있습니다.
$description = $product->getMetaDescription();
            if ($description) {
                $headBlock->setDescription( ($description) );
            } else {
                $headBlock->setDescription(Mage::helper('core/string')->substr($product->getDescription(), 0, 255));
            }
.

이것은 훌륭하지만 논리를 변경하여 메타 설명을이 순서로 채 웁니다

  1. 메타 설명
  2. 설명
  3. 짧은 설명
  4. 제품 제목
  5. 기본 메타 설명
  6. 이를 달성하는 가장 좋은 방법은 무엇입니까?_PREPERELAYOUT 함수를 무시할 것입니까?

도움이 되었습니까?

해결책

블록의 재정의에 대해 제안하면 마그네 토를 업그레이드 할 시간이있을 때 악몽을 일으 킵니다.훨씬 깨끗한 방법은

에 관찰자를 추가하는 것입니다.

  1. "core_block_abstract_prepare_layout_after"또는
  2. "core_block_abstract_to_html_before"
  3. 이벤트.둘 다 원하는 객체에 액세스 할 수 있습니다.블록 논리를 수정할 수있는 다른 이벤트도있을 수 있습니다.

    관찰자가있는 핵심 시스템이 미래의 업그레이드에서 해당 이벤트를 트리거하지 않더라도 이점을 얻을 수 있습니다 (가능성이 없지만 잠시 낙천적 인 것임)에서는 아무 것도하지 않는 함수가 있습니다.블록 파일에서 "치명적인 오류"가 아닙니다.

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