Спасибо, я всегда удивлялся некоторым людям на этом форуме. Не кому не в обиду сказано. Тут или в гугл отправляют или API читать, что там, что там был и после этого только задал вопрос. Я даже переводы этих ссылок по находил с разъяснениями, ну разъяснения уж очень скудные были, что больше запутали.
Спасибо, я всегда удивлялся некоторым людям на этом форуме. Не кому не в обиду сказано. Тут или в гугл отправляют или API читать, что там, что там был и после этого только задал вопрос. Я даже переводы этих ссылок по находил с разъяснениями, ну разъяснения уж очень скудные были, что больше запутали.
Вот это ответ достойный уважения, где плюсануть.
А теперь пожалуйста подскажите тот кто на самом деле знает друпал, а не тот кто научился гуглом пользоваться, я так понимаю там всего то нужно какое то условие template.php переписать.
Не когда не пойму некоторых людей. Нужно было то помочь тремя строками.
Если хочешь помочь голодному, дай ему не рыбу, дай удочку.
я тебе дал ссылку на функцию ,которая строит дерево меню с заданными параметрами ,а как его потом отрендерить и куда вывести - это уже сам решай
Если хочешь помочь голодному, дай ему не рыбу, дай удочку.
Спасибо конечно, но на эти ссылки я еще и до этого комента наткнулся. Проблема вся была $menu_items = render(menu_tree_output($menu)); вот на это я потратил 2 дня, нового нечего не узнал. Может подскажите еще одну вещь, как теперь сделать, что бы выводились подпункты активного пункта. То есть:
ну обычно выводят же к примеру только первый уровень ,а второй выводят только для активного пункта первого уровня и причем отдельно
а как вы хотите я честно не понял - покажите работающий пример
ну как вариант использовать функцию menu_tree_page_data , которая возвращает массив с родительскими ссылками ,
у которых в подмассиве ,если пункт активный , в элементе bellow ,будут дочерние пункты меню
а у неактивных соответственно bellow будет empty
но я бы не изобретал велосипед из костылей , а все же воспользовался menu_block
ну или хотя бы посмотрел в код этого модуля
Просто каждый модуль все больше и больше тормозит сайт, да и потом в дальнейшем этот модуль не подойдет, в дальнейшем планирую в зависимости от куда перешел пользователь, отображать разные меню, вот тут начнутся проблемы с этим модулем.
Просто каждый модуль все больше и больше тормозит сайт, да и потом в дальнейшем этот модуль не подойдет, в дальнейшем планирую в зависимости от куда перешел пользователь, отображать разные меню, вот тут начнутся проблемы с этим модулем.
ну тогда советую плотно подсесть вот сюда
там очень много интересного и нужного для решения подобных задач
Возможно кому-то пригодится на будущее решение, хоть и статья старая. Через javascript скрываете, или просто вытаскиваете меню третьего уровня и браузер сделает все за вас. Другое решение (более сложное), выташить меню третьего уровня ручками и отрендерить его.
Комментарии
https://drupal.org/project/menu_block
Спасибо конечно за ссылку, но в теме написано «программно» то есть с помощью шаблонов и кодов а не модулей.
ну если программно ,то
https://api.drupal.org/api/drupal/includes%21menu.inc/function/menu_navi...
https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_li...
или
https://api.drupal.org/api/drupal/includes%21menu.inc/function/menu_buil...
Спасибо, я всегда удивлялся некоторым людям на этом форуме. Не кому не в обиду сказано. Тут или в гугл отправляют или API читать, что там, что там был и после этого только задал вопрос. Я даже переводы этих ссылок по находил с разъяснениями, ну разъяснения уж очень скудные были, что больше запутали.
в таком случае 1 комментарий - ваш вариант
Вот это ответ достойный уважения, где плюсануть.
А теперь пожалуйста подскажите тот кто на самом деле знает друпал, а не тот кто научился гуглом пользоваться, я так понимаю там всего то нужно какое то условие template.php переписать.
И что ни кто не может нечего подсказать?
Не когда не пойму некоторых людей. Нужно было то помочь тремя строками.
Для остальных, кому то да понадобится и цирк что бы заново не устраивать.
В page.tpl.php
<?php
$menu = menu_build_tree('main-menu', array('min_depth'=>3));
$menu_items = render(menu_tree_output($menu));
print $menu_items;
?>
Где 'min_depth'=>3 от какого уровня строить меню, так же можно в обратную сторону 'max_depth'
Если хочешь помочь голодному, дай ему не рыбу, дай удочку.
я тебе дал ссылку на функцию ,которая строит дерево меню с заданными параметрами ,а как его потом отрендерить и куда вывести - это уже сам решай
Спасибо конечно, но на эти ссылки я еще и до этого комента наткнулся. Проблема вся была $menu_items = render(menu_tree_output($menu)); вот на это я потратил 2 дня, нового нечего не узнал. Может подскажите еще одну вещь, как теперь сделать, что бы выводились подпункты активного пункта. То есть:
-Фрукт
--Яблоко
--Груша
--Слива
-Ягода
--Арбуз
--Малина
--Черника
Когда открыть пункт меню Фрукты, Яблоко, груша, слива то показывались только Яблоко, груша, слива, а остальные скрыты.
ну обычно выводят же к примеру только первый уровень ,а второй выводят только для активного пункта первого уровня и причем отдельно
а как вы хотите я честно не понял - покажите работающий пример
Вот так мне и нужно. Я понимаю логику (если Уровень 1 меню активный, показать его детей), а вот как это реализовать на друпале не знаю.
ну как вариант использовать функцию menu_tree_page_data , которая возвращает массив с родительскими ссылками ,
у которых в подмассиве ,если пункт активный , в элементе bellow ,будут дочерние пункты меню
а у неактивных соответственно bellow будет empty
но я бы не изобретал велосипед из костылей , а все же воспользовался menu_block
ну или хотя бы посмотрел в код этого модуля
Просто каждый модуль все больше и больше тормозит сайт, да и потом в дальнейшем этот модуль не подойдет, в дальнейшем планирую в зависимости от куда перешел пользователь, отображать разные меню, вот тут начнутся проблемы с этим модулем.
ну тогда советую плотно подсесть вот сюда
там очень много интересного и нужного для решения подобных задач
Спасибо буду тыкаться. Осталось самая малость, английский выучить.
Возможно кому-то пригодится на будущее решение, хоть и статья старая. Через javascript скрываете, или просто вытаскиваете меню третьего уровня и браузер сделает все за вас. Другое решение (более сложное), выташить меню третьего уровня ручками и отрендерить его.