У меня есть специальный модуль, расширяющий раздел учетной записи клиента. Я добавил новую ссылку под названием «Мои загрузки». Эта ссылка отображается в нижней части боковой панели ссылок «Моя учетная запись». На странице индекса ссылка "Мои загрузки" выделена жирным шрифтом и недоступна для выбора. Однако на моих дочерних страницах ни одна из ссылок не выделена жирным шрифтом или не может быть выбрана. Я ищу, как сохранить ту же функциональность ссылки в моем настраиваемом модуле (т.е. все родительские и дочерние страницы показывают ту же ссылку на боковой панели, что и активная). _SetActiveMenu, похоже, является методом, доступным только в контроллерах администратора, поэтому я действительно не знаю никакого способа сделать это. У кого-нибудь есть подсказки?
Как установить активные ссылки меню в разделе `` Моя учетная запись '' в клиентском разделе внешнего интерфейса Magento 2
comment
Ваш вопрос непонятен. Похоже, вы добавили новую ссылку на консоль администратора. Это заставит опытного разработчика Magento поверить, что вы настроили свой собственный контроллер и действие контроллера для ссылки. Однако текст вашего вопроса указывает на то, что у вас нет доступа к _setActiveMenu. Если у вас нет настраиваемого контроллера, как вы настроили эти новые ссылки?
- person Alan Storm   schedule 09.01.2012
comment
Алан, я также добавил новую ссылку на консоль администратора, но сейчас я имею в виду не это. Я говорю о внешней учетной записи клиента / разделе моей учетной записи (область, в которую вы должны войти, чтобы просмотреть). Некоторые из этих ссылок - «Информация об учетной записи», «Адресная книга» и т. Д. Я добавил новую ссылку под названием «Мои загрузки» в свою настраиваемую конфигурацию upload.xml. Ссылка отображается нормально; Я просто пытаюсь понять, как сохранить его состояние как «АКТИВНЫЙ» для всех страниц. Если вы будете перемещаться по страницам «Информация об учетной записи», эта ссылка останется активной и т. Д. Я надеюсь, что это немного проясняет ситуацию.
- person Jared Eitnier   schedule 09.01.2012
comment
Ах, неправильно понял вопрос. Отставить.
- person Alan Storm   schedule 09.01.2012
comment
Вы знаете, где я должен искать, чтобы разобраться в этом?
- person Jared Eitnier   schedule 09.01.2012
comment
Не с ума, нет.
- person Alan Storm   schedule 09.01.2012
Ответы (2)
Если я не ошибаюсь, вы хотите добавить ссылку на боковой панели клиентов «Моя учетная запись». Итак, 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;
}
person
Oğuz Çelikdemir
schedule
08.01.2012
Спасибо за ваш ответ, но я уже создал ссылку, мне просто нужно, чтобы ее состояние было АКТИВНО через родительскую и дочернюю страницы, когда пользователь перемещается.
- person Jared Eitnier; 09.01.2012
Для этого нужен
setActive
метод. Вы можете вызвать его из макетов, см. magentocommerce.com/design_guide/articles/intro- в макеты или с вашего контроллера. Для поиска подсказок в существующих макетах для action method="setActive"
- person Zifius; 09.01.2012
Вы можете сделать это в своем макете. Пример ссылки с именем 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>
person
div
schedule
08.02.2018
Magento2.3.0 выдает ошибку 1 исключение (я): Исключение № 0 (Magento \ Framework \ Config \ Dom \ ValidationException): "путь" элемента: этот элемент не ожидается. Ожидается (аргумент). Строка: 1070
- person M Shoaib Qureshi; 05.05.2019
О @MShoaibQureshi, мой ответ только для Magento 1.
- person div; 14.09.2020