Имате си чисто нов онлайн магазин, красив, функционален, пълен с продукти и добри отстъпки, но все още има нещо, което много ви дразни – title-а на страницата, на която се виждат само филтрирани по определен критерий продукти. Какъв е проблемът? Магенто автоматично ви генерира заглавията на всяка страница, но в този случай вие искате да имате конкретен title на нея, който да съдържа името на филтъра. Какво имам предвид. Например: Имате онлайн магазин за сладкарски изделия и искате да филтрирате продуктите в него само по „Десертни кремове“. Правите филтрирането без проблем, но в title-а на страница, която показва филтрираните само по „Десертни кремове“ продукти не фигурира „Десертни кремове“. Именно решение на този проблем ви представям днес.

В нашия случай имаме два варианта, по които филтрираме продуктите. 1-вият е, когато филтрираме по атрибут, който има повече от една стойност, а 2-рият – по атрибут с една стойност.

Към URL адреса на филтъра с повече от една стойност добавяме GET променлива

 ($_GET['act']) 

, с която да го различаваме. Т.е. URL-а може да бъде следният

http://mybestwebsite/category.html?attribute_code=attribute_val&act=all

Ако филтрираме продуктите по първия начин трябва да изчистим URL-а на текущата страница, за да вземем attribute code-a на филтъра и чрез стандартните функции на Magento да вземем неговия FRONT END LABEL.

Ако филтрираме по 2-рия начин ни е достатъчно да вземем активния филтър отново чрез функциите, които са ни предоставени от Magento.

Отваряме

/app/design/frontend/base/default/template/page/html/head.phtml

още в началото добавяме следните редове

if(isset($_GET['act']))
{
$currentUrl = $this->helper('core/url')->getCurrentUrl();

$parts = explode('?', $currentUrl);

$cat = explode('=', $parts[1]);

$attrcode = $cat[0];

$attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product',$attrcode);

$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);

$kw = $attribute->getFrontendLabel()." - ";

}
else
{
$_filters = Mage::getSingleton('Mage_Catalog_Block_Layer_State')->getActiveFilters();

foreach ($_filters as $_filter)
{
$kw = $this->stripTags($_filter->getLabel())." - ";
}

}

и реда

<title><?php echo $this->getTitle() ?></title>

го променяме като

<title><?php echo $kw.$this->getTitle() ?></title>