Получить мета ключевые слова динамически? - PullRequest
1 голос
/ 30 сентября 2011

На странице продукта magento я хочу получить название продукта, название его категории и название подкатегории в метатеге ключевых слов.

Пожалуйста, помогите !!

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 30 сентября 2011

Поскольку продукты уже имеют прикрепленное значение MetaKeyword, вы можете использовать наблюдатель, чтобы незаметно расширить это значение.Этот метод не включает расширение базового класса

Попробуйте:

/ app / code / local / YourCompany / YourModule / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <YourCompany_YourModule>
            <version>1.0.0</version>
        </YourCompany_YourModule>
    </modules>
    <global>
        <models>
            <YourCompany_YourModule>
                <class>YourCompany_YourModule_Model</class>
            </YourCompany_YourModule>
        </models>
    </global>
    <frontend>
        <events>
            <catalog_controller_product_view>
                <observers>
                    <YourCompany_YourModule>
                        <class>YourCompany_YourModule/Observer</class>
                        <method>productView</method>
                    </YourCompany_YourModule>
                </observers>
            </catalog_controller_product_view>
        </events>
    </frontend>
</config>

/app/code/local/YourCompany/YourModule/Model/Observer.php

<?php
class YourCompany_YourModule_Model_Observer
{

    public function productView(Varien_Event_Observer $observer)
    {
        $product = $observer->getEvent()->getProduct();
        /* @var $product Mage_Catalog_Model_Product */

        if ($product) {
            $keywords = $product->getMetaKeyword();

            // Add the product name
            $keywords = ' ' . $product->getName();

            // Add the category name
            $currentCategory = Mage::registry('current_category');
            if ($currentCategory && $currentCategory instanceof Mage_Catalog_Model_Category) {
                $keywords = ' ' . $currentCategory->getName();
            }

            $product->setMetaKeyword($keywords);
        }
    }

}
1 голос
/ 30 сентября 2011

Вы должны переписать класс Mage_Catalog_Block_Product_View, особенно метод __preparelayout ().

Просто добавьте следующий код в метод _prepareLayout, который вы перезапишете:

protected function _prepareLayout()
{
    $currentCategory = Mage::registry('current_category'); // For accessing current category information
    $product = $this->getProduct();

    if ($headBlock = $this->getLayout()->getBlock('head')) {
      $headBlock->setTitle("Whatever you want here");   
      $product->setMetaKeyword("whatever, keywords, you, want, here");   
      $product->setMetaDescription("Whatever description you want here);   
    }

    return parent::_prepareLayout();
}

Важно, чтобы выустановите метаключ и метаописание так, как описано выше, иначе он будет перезаписан родительским классом (классами).

С уважением, Кенни

0 голосов
/ 30 сентября 2011

Вы имеете в виду страницу с информацией о продукте?если да, значит очень просто

Перейти на страницу вашего конкретного продукта, там должна быть вкладка «Метаданные» . Здесь вы можете добавить

Meta Title, Meta Keywords, Meta Description
...