Когда конкретному администратору или конкретной группе администраторов запрещена некоторая функция - то и пункт меню пропадёт.
Этот способ - самый правильный, если вам нужно не просто скрыть пункт меню, а запретить доступ к функции.
Однако, бывают ситуации, когда нужно просто скрыть пункт административного меню без запрещения доступа к соответствующей пункту функциональности.
Например, такая потребность возникает, если вы проводите реорганизацию административного меню: хотите переставить его пункты местами.
Например, в стандартной функциональности есть пункт меню Продажа -> Доставка, а вам может потребоваться целый раздел "Доставка" с подпунктами, одним из которых будет стандартный пункт "Доставка".
Как скрыть пункт административного меню?
Для этого существует следующий приём: надо сказать системе, что данный пункт меню зависит от несуществующего модуля.
Например, вы можете написать adminhtml.xml для вашего модуля следующего содержания:
<?xml version="1.0"?>
<config>
<menu>
<sales>
<children>
<shipment translate="title" module="sales">
<depends>
<module>NotExistent</module>
</depends>
</shipment>
</children>
</sales>
</menu>
</config>Данный набор правил говорит системе, что стандартный пункт меню sales / shipment зависит от несуществующего модуля NotExistent.
Система, видя, что модуль NotExistent отсутствует, исключит из меню пункт Продажа -> Доставка.
Далее вы можете добавить этот стандартный пункт меню в другое место, вставив в требуемое место стандартное описание пункта "Доставка", например:
<?xml version="1.0"?>
<config>
<menu>
<sales>
<children>
<mymodule_shipping translate="title" module="mymodule_shipping">
<sort_order>15</sort_order>
<title>Новый пункт меню для всех функций доставки</title>
<children>
<shipment translate="title" module="sales">
<title>Shipments</title>
<action>adminhtml/sales_shipment</action>
<sort_order>30</sort_order>
</shipment>
</children>
</mymodule_shipping>
</children>
</sales>
</menu>
</config>

Вход
Регистрация
Помощь

