скрыть несколько ссылок

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

Аватар пользователя Корвин Корвин 11 марта 2013 в 12:40

Здравствуйте!

у меня есть страница на которой выводиться часть ссылок сайта, а именно модулем site_map.
например:

ссылка 1, ссылка 2, ссылка 3.

мне нужно не выводить ссылку 3

Как это сделать?

Казалось бы в template.php моей темы переопределить функцию моя_тема_site_map_menu_item. Но она не вызывается по чему то. расположена в файле site_map.admin.inc

function моя_тема_site_map_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
        $arr_exceptions = array('node/3');
        if (in_array($link, $arr_exceptions)) {  
        return false;
        }
}

Комментарии

Аватар пользователя Корвин Корвин 11 марта 2013 в 15:15

Самый главный вопрос:

Почему sites\default\themes\моя_тема\template.php Не работает функция моя_тема_site_map_menu_item

хотя она определена в sites\all\modules\site_map\site_map.theme.inc так theme_site_map_menu_item

Аватар пользователя divined divined 11 марта 2013 в 15:27

1. А хук то такой есть внутри тела этой функции?
2. И с чего вы взяли что он не работает, как проверяли?
3. Кэш сбрасывали?

Аватар пользователя Корвин Корвин 11 марта 2013 в 16:21

1. А хук то такой есть внутри тела этой функции?
Внутри тела хука нет, сама функция ниже. Если он должен, то как должен выглядеть ?

(тут, на сайте сейчас не работает вставка кода )
sites\all\modules\site_map\site_map.theme.inc
function theme_site_map_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {

$class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf'));
if (!empty($extra_class)) {
$class .= ' '. $extra_class;
}
if ($in_active_trail) {
$class .= ' active-trail';
}
return '

  • '. $link . $menu ."
  • \n";
    }

    2. И с чего вы взяли что он не работает, как проверяли?
    внутри функции прописал echo 'тест'; - ничего не вывелось,

    прописывал в других функциях файла template.php все выводит.

    3. Кэш сбрасывали?
    его сбрасывать не надо, в админке галки стоят соответсвующие

    Аватар пользователя divined divined 11 марта 2013 в 19:36

    Скорее всего хука нет, посмотрите там еще должны быть вызовы
    theme_site_map_menu_item, хотя бы пару раз.

    один это декларирование {module_name}_themes()
    второй - назначение, типа $element['#theme'] = 'theme_site_map_menu_item'; //или как-то так

    Где происходит назначение ту функцию и надо хукать, предварительно в своем модуле задекларировав новую функцию темизации, и создав функцию вывода
    скопировав в нее внутренности из theme_site_map_menu_item. В хуке элемента назначаете свою функцию темизации элемента.

    И потом уже работать со своей функцией.

    П.С. я по многим параметрам могу ошибаться, т.к. последние 10 проектов на 7-ке и уже путаю некоторые вещи.