Domanda

Guardando / App /Code/mage/catalog/block/product/view.php Posso vedere la logica per il tag Meta Description all'interno della funzione _preparelayout

$description = $product->getMetaDescription();
            if ($description) {
                $headBlock->setDescription( ($description) );
            } else {
                $headBlock->setDescription(Mage::helper('core/string')->substr($product->getDescription(), 0, 255));
            }
.

Questo è ottimo, ma vorrei cambiare la logica in modo che popola la meta descrizione in questo ordine

    .
  1. Meta Descrizione
  2. Descrizione
  3. Breve descrizione
  4. Titolo del prodotto
  5. Meta predefinito Descrizione
  6. Qual è il modo migliore per raggiungere questo obiettivo?Sarebbe quello di ignorare la funzione _preparelayout?

È stato utile?

Soluzione

Suggerirei contro l'override del blocco, provoca incubi quando è il momento di aggiornare Magento.Un modo molto più pulito sarebbe quello di aggiungere un osservatore per

    .
  1. "core_block_abstract_prepare_Layout_after" o
  2. "core_block_abstract_to_html_bura prima"
  3. Eventi.Entrambi ti darà accesso all'oggetto desiderato.Potrebbero esserci anche altri eventi che ti permetteranno di modificare la logica del blocco.

    Con un osservatore, ottieni un vantaggio, che anche se il sistema Core smette di scatenare quell'evento in un futuro aggiornamento (non è probabile, ma siamo un minor ottimista per un momento), avrai solo una funzione senza fare nulla,Non sarà un "errore fatale" nel file di blocco.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top