Как установить активные ссылки меню в разделе «Моя учетная запись» в Magento - PullRequest
2 голосов
/ 08 января 2012

У меня есть пользовательский модуль, расширяющий раздел учетной записи клиента. Я добавил новую ссылку под названием «Мои загрузки». Эта ссылка отображается в нижней части боковой панели ссылок Моя учетная запись. На странице указателя ссылка «Мои загрузки» выделена жирным шрифтом и недоступна для выбора. Однако на моих дочерних страницах ни одна из ссылок не выделена жирным шрифтом или не может быть выбрана. Я ищу, как сохранить те же функции ссылок в моем пользовательском модуле (т. Е. Все родительские и дочерние страницы показывают одну и ту же ссылку боковой панели как активную). _SetActiveMenu, по-видимому, является только методом, доступным в контроллерах администратора, поэтому я действительно не знаю, как это сделать. сделать это. У кого-нибудь есть подсказки?

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Если я не ошибаюсь, вы хотите добавить ссылку на боковой панели «Моя учетная запись». Итак, navigation.php, который доступен в /app/code/local/themename/customer/block/account/navigation.php, управляет этими ссылками. Внутри файла есть несколько функций, некоторые из них:

public function isActive($link)  
{
if (empty($this->_activeLink)) {
    $this->_activeLink = $this->getAction()->getFullActionName('/');
}
if ($this->_completePath($link->getPath()) == $this->_activeLink) {
    return true;
}
return false;
} 


public function setActive($path)
{
    $this->_activeLink = $this->_completePath($path);
    return $this;
}
0 голосов
/ 08 февраля 2018

Вы можете сделать это в вашем макете. Пример для ссылки с именем changepassword:

<mycompany_changepassword_index_index translate="label">
    <label>Change Password Page</label>
    <update handle="customer_account"/>
    <reference name="my.account.wrapper">
        <block type="customer/form_edit" name="mycompany_changepassword" template="mycompany/changepassword.phtml">
            <reference name="customer_account_navigation">
                <action method="setActive"><path>changepassword</path></action>
            </reference>
        </block>
    </reference>
</mycompany_changepassword_index_index>
...