Имате си чисто нов онлайн магазин, красив, функционален, пълен с продукти и добри отстъпки, но все още има нещо, което много ви дразни – 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>