[Решено] Убрать пункт пользовательского меню

Главные вкладки

Аватар пользователя akiyamatakahashi akiyamatakahashi 1 августа 2010 в 0:38

Здравствуйте.
Многие модули Друпала имеют неприятную привычку пихать свои пункты в меню пользователя (я так называю меню, отображающееся вверху на страничке профиля). Эти пункты я успешно отстреливал, редактируя код модулей.
Однако с модулем Signups возникли сложности. Даже если очистить код во всех хуках, которые я нашел в файле .module, назойливый пункт меню, предлагающий посмотреть все события, на который подписался пользователь, остается.
Я еще не очень хорошо изучил систему хуков, так что прошу подсказать, откуда нужно выковыривать заразу. Или, может, я все усложняю и есть какие-нибудь удобные модули для редактирования этого самого пользовательского меню?

Комментарии

Аватар пользователя akiyamatakahashi akiyamatakahashi 1 августа 2010 в 12:52

"RxB" wrote:
Тогда полтегейст, такого не бывает

Вы хотите сказать что, все пункты пользовательского меню содержатся в навигации? Но:
а) Эти пункты собственно в меню навигации не отображаются и никогда не отображались
б) В списке пунктов навигации я их никогда не видел, хотя, конечно, излазил его вдоль и поперек, прежде чем полезть в код

Аватар пользователя akiyamatakahashi akiyamatakahashi 1 августа 2010 в 13:02

"RxB" wrote:
Я хочу сказать, что быть такого не может чтобы пункт был, но в списке меню его не было

По-моему, ничего странного в этом нет, эти пункты меню отображаются только на странице профиля, чего бы им делать в списке пунктов навигации?

Аватар пользователя akiyamatakahashi akiyamatakahashi 10 ноября 2015 в 11:46

Окей, наверно, это надо было сделать в самом начале Smile
Открыта страница профиля. Мерзавец обведен красным (надпись переведена, в оригинале "Signups").

Аватар пользователя akiyamatakahashi akiyamatakahashi 1 августа 2010 в 13:35

"iHappy" wrote:
смею предположить, идется речь про табы в профиле.

Да-да, именно! Прошу прощения за свое незнание терминологии.

Аватар пользователя akiyamatakahashi akiyamatakahashi 10 ноября 2015 в 11:46

"WiseMan" wrote:
модуль tabtamer

Большое спасибо, это именно то, что нужно! Мне удалось удалить назойливый пункт, однако на его место пришел другой, еще более загадочный. Внимание на картинку. Как видно, оба ссылаются на одно и то же место (в данном случае users/admin). В TabTamer'е отображается только один из них - View (его как раз нужно оставить). Поиск в переводах строчки "Текущие" указывает на... Модуль OG. Есть идеи?

Аватар пользователя glu2006 glu2006 2 августа 2010 в 12:26

«Многие модули Друпала имеют неприятную привычку пихать свои пункты в меню пользователя (я так называю меню, отображающееся вверху на страничке профиля). Эти пункты я успешно отстреливал, редактируя код модулей.»

Дурь несусветная, друпал устроен так, что практически любой чих движка перекрывается либо альтером либо theme функцией либо preprocess функцией и если у Вас хватает ума лазить по коду чужих модулей, то наберитесь сил и терпения почитать о темизации контента в друпал, к примеру Ваши пункты меню а именно ими они и являются просто выводятся в табах спокойно перехватываются на hook_menu_alter() и там так же спокойно давятся. Так что мой Вам совет лазьте в код не своих модулей только для того чтоб посмотреть на примеры реализации а не хакать и учите мат часть.

Можно без меню альтера просто перекрыть функцию theme_menu_local_tasks(); и все свои проблемы решить в ней.

Аватар пользователя akiyamatakahashi akiyamatakahashi 2 августа 2010 в 12:36

"glu2006" wrote:
Так что мой Вам совет лазьте в код не своих модулей только для того чтоб посмотреть на примеры реализации а не хакать и учите мат часть.

Совет отличный, я бы и сам рад, вот только сроки поджимают. Свободное время и так трачу на поиск и чтение толковой документации, но, к сожалению, этого самого времени не хватает. Вот, о preprocess, например, узнал только сегодня, и еще о множестве хуков.

Аватар пользователя glu2006 glu2006 2 августа 2010 в 13:12

akiyamatakahashi wrote:
Совет отличный, я бы и сам рад, вот только сроки поджимают. Свободное время и так трачу на поиск и чтение толковой документации, но, к сожалению, этого самого времени не хватает. Вот, о preprocess, например, узнал только сегодня, и еще о множестве хуков.

Повторюсь, поджатие сроков вовсе не говорит о том что надо писать говнокод. Уважайте себя и прежде всего своего заказчика. Поймите что при первом же обновлении у Все ваши правки полетят к чертовой матери и это еще не самое страшное, когда этот проект попадет на саппорт к нормальному кодеру он помянет Вас "добрым словом" не один десяток раз и плюс ко всему, есть правила и стандарты кодирования в друпал и чем больше Вы их будете придерживаться тем больше людей к Вам потянутся с заказами поскольку аккуратность и педантичность в вопросах кода и его оформления немаловажный фактор (это из собственного опыта Вам говорю).
Можно быть тысячу раз гением кодирования, но выбор заказчика между:

<?php
$form
['title'] = array('#type' => 'textfield''#title' => 'Мой супер тайтл''#weight' => -89'#attributes' => array('class' => 'title'));
к примеру в модуле node.module в функции построения формы нода
?>
<?php
и 
$form
['title'] = array(
  
'#type' => 'fieldset',
  
'#weight' => -89,
  
'#title' => t('My super title'),
  
'#attributes' => array('class' => 'title')
);
в Вашем модуле на hook_form_alter
?>

будет очевиден и на 99% успешен в пользу второго примера.