Drupal Создать динамическое меню с активным свойством Trail - PullRequest
0 голосов
/ 10 сентября 2010

Я хочу создать динамическое меню, которое будет получать элементы определенного типа. Я думал, что смогу сделать это, создав представление заголовков и поместив его в блок. Однако, когда кто-то нажимает на один из этих заголовков, я хочу выделить его и поэтому хочу добавить в ссылку активный класс. Я знаю, что Drupal делает это автоматически для меню, но могу ли я сделать это для меню, основанного на представлении?

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

почему бы не использовать идею Эндрюса в сочетании с hook_form_alter?Примерно так будет работать:

Предполагая, что ваш тип контента называется «mycontent»:

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

mymodule_form_alter(&form, &$form_state, $form_id){
  if($form_id=="mycontent_node_form"){
    $form['menu']['enabled']['#default_value'] = 1;
    $form['menu']['link']['parent']['#default_value'] = "menu-custom:0";
  }
}

так, $ form_id должен быть равен «[my_content_type] _node_form», а значение по умолчанию для parent должно быть равно «menu- [my_menu]: 0»

Если вы обеспокоены тем, что пользователи не добавляют свой контент в меню, эта строка лишает их контроля над элементом формы:

$form['menu']['#disabled']=true;
0 голосов
/ 11 сентября 2010

Я не совсем уверен в ваших требованиях к «динамическому меню», но альтернативой просмотру заголовков может быть настройка пользовательского меню, а затем, когда вы создаете эти узлы, установите их как частьэто меню в форме редактирования узла.Затем отобразите это меню в блоке. И вы должны выделить нужные вам активные элементы.

...