답변:
안타깝게도 Drupal은이 작업을 즉시 수행 할 수 없습니다. 그러나 특수 메뉴 항목 모듈을 사용하여 새 메뉴 항목을 만들고 경로 설정에 "nolink"를 배치 할 수 있습니다 .
l('linktext', '', array('fragment' => ' ', 'external' => TRUE));
@Sebastian의 응답에 따라 사용하십시오.
<span title="" class="nolink">...</span>
됩니다. 문제는 CSS가 없다는 것입니다. ul.menu a{}
CSS를 복사하여 붙여 넣기 만하면 됩니다 ul.menu li span.nolink{}
. 그것은 나를 위해 잘 작동합니다. 그러나로 활성화 된 드롭 다운 화살표를 비활성화했습니다 li.expanded
. :(
jQuery("span.nolink").wrap("<a href='#'></a>");
문서 에 대한 주석에l()
보고 된 내용을 따르십시오 .
명명 된 앵커 (예 : "#namedanchor")에 대한 링크를 만들려면 간단한 해결 방법을 사용해야합니다.
l('linktext', '', array('fragment' => 'namedanchor', 'external' => TRUE));
"#"에 대한 해시 전용 링크를 만들려면 다음에 맞게 조정해야합니다.
l('linktext', '', array('fragment' => ' ', 'external' => TRUE));
조각에는 공백이 포함되어 있습니다.
Drupal 7에서 "HTML"을로 설정 TRUE
한 다음 해시 문자를 추가하십시오.
http://drupal.org/node/123103#comment-4955236
node / 16 # gohere
자동 URL은 다음과 같이 변경됩니다.
about-us # gohere
<front>#gohere
. 좋은! :)
Void Menu 모듈을 사용해보십시오 :
Void 메뉴를 사용하면 Drupal 7 메뉴 시스템에서 사용할 특수 값을 태그로 구성 할 수 있습니다. 원하는 값으로 최대 10 개의 서로 다른 void 태그를 사용자 정의하고 Drupal 메뉴 시스템 내에서 자유롭게 사용할 수 있습니다.
...
추가 보너스 및이 모듈의 기능으로 인해 실제 앵커를 자리 표시 자 이외의 다른 용도로 사용하지 않는 메뉴 항목으로 사용할 수도 있습니다. 이것은 javascript로 설정된 void 태그로 수행됩니다. void (0); 또는 간단한 해시 태그 #. special_menu_items보다이 모듈을 사용하는 이점은 special_menu_items에서 사용하는 추가 범위 태그를 설명하기 위해 메뉴에 추가 스타일링이 필요하지 않으며 모든 앵커에 href 속성이 있어야하므로 W3C에 유효하다는 것입니다.
아주 좋은 해결책입니다!
같은 문제가 발생했습니다. 프로그래밍 방식으로 해시 링크가있는 메뉴 항목을 추가해야했습니다. 내 코드 :
// the URL with hash in it is in the form 'normal_part_of_url'#'hash_part_of_url'
$item = array(
'link_path' => %normal_part_of_url%,
'link_title' => %your_link_title%,
'menu_name' => %menu_where_to_add_links%,
'options' => array('fragment'=>%hash_part_of_url%)
);
menu_link_save($item);
그냥 나를 위해 설정 external
합니다 TRUE
. Druapl 7.32에서 테스트되었습니다.
l('Some Name', '#', array('external' => TRUE));
Drupals 번역 기능 사용도 가능합니다.
/**
* Implements hook_menu().
*
* Defines a valid link to use when creating menu items.
*/
function greenacorn_menu() {
$items['<main-content>'] = array(
'page callback' => 'drupal_not_found',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Implements hook_menu_link_alter().
*
* Flags the link to be altered at runtime.
*
* Note: Changes here would be saved back to the database.
*/
function greenacorn_menu_link_alter(&$item, $menu) {
if ($item['link_path'] == '<main-content>') {
$item['options']['alter'] = TRUE;
}
}
/**
* Implements hook_translated_menu_link_alter().
*
* Refactors the link to go to the fragment #main-content.
*/
function greenacorn_translated_menu_link_alter(&$item, $map) {
if ($item['link_path'] == '<main-content>') {
$item['href'] = '';
$item['localized_options']['fragment'] = 'main-content';
}
}
function test_menu() {
$items = array();
$items['sample'] = array(
'title' => t('Sample page'),
'type' => MENU_NORMAL_ITEM,
'menu_name' => 'main-menu',
'page callback' => 'samplepage',
'access callback' => TRUE,
'options' => array('fragment' => 'sampleHash'),
);
return $items;
}
위 코드를 사용하여 메뉴에 해시 링크를 추가 할 수 있습니다.
/**
* Implements hook_module_implements_alter().
*/
function MODULE_module_implements_alter(&$implementations, $hook) {
if ($hook == 'url_outbound_alter') {
$stored = $implementations['MODULE'];
unset($implementations['MODULE']);
$implementations['MODULE'] = $stored;
}
}
/**
* Implements hook_url_outbound_alter().
*/
function MODULE_url_outbound_alter(&$path, &$options, $original_path) {
if (strpos($path, '#') !== FALSE) {
$fragment = substr($path, strpos($path, "#") + 1);
$path = str_replace('#' . $fragment, '', $path);
$options['fragment'] = $fragment;
}
}
계층 메뉴를위한 특수 메뉴 항목 및 DHTML 메뉴를 설치 한 후 다음을 수행하십시오.
<void>
대상에 붙여 넣습니다.이제 홈페이지로 돌아 가면 클릭으로 수정 한 메뉴 항목이 아무데도 가지 않는 것을 볼 수 있습니다