it-swarm-vi.com

Làm cách nào để thêm liên kết băm trong menu?

Có cách nào để thêm một liên kết băm trong menu dưới drupal để tạo một mục menu nhảy xuống một neo hoặc id trên trang không?

21
mohamad salama

Thật không may, theo như tôi biết, Drupal không thể thực hiện việc này ngay lập tức. Tuy nhiên, bạn có thể sử dụng mô-đun các mục menu đặc biệt để tạo một mục menu mới, và đặt "nolink" trong cài đặt đường dẫn.

15
user842

Thực hiện theo những gì được báo cáo trong một nhận xét cho tài liệu l() .

Để tạo liên kết đến một neo được đặt tên (ví dụ: "#namedanchor"), bạn sẽ cần sử dụng một công việc nhỏ.

l('linktext', '', array('fragment' => 'namedanchor', 'external' => TRUE));

Để tạo liên kết chỉ băm (đến "#"), bạn sẽ cần điều chỉnh nó thành:

l('linktext', '', array('fragment' => ' ', 'external' => TRUE));

(Lưu ý rằng đoạn đó có chứa một khoảng trắng.)

Trong Drupal 7, đặt "HTML" thành TRUE, sau đó nối thêm ký tự băm.

15
Sebastian

http://drupal.org/node/123103#comment-4955236

nút/16 # gohere

url tự động sẽ thay đổi nó thành như thế

về chúng tôi # gohere

13
squarecandy

Hãy thử sử dụng mô-đun Menu Void :

Menu Void cho phép bạn định cấu hình các giá trị đặc biệt cho các thẻ để sử dụng trong hệ thống menu Drupal 7. Bạn có thể tùy chỉnh tối đa 10 thẻ void khác nhau với bất kỳ giá trị nào bạn muốn và sử dụng chúng một cách tự do trong hệ thống menu Drupal.
[.__.] ...
[.___ Điều này được thực hiện với thẻ void được đặt thành javascript: void (0); hoặc thậm chí một thẻ băm đơn giản #. Lợi ích của việc sử dụng mô-đun này qua Special_menu_items cho điều này là các menu của bạn sẽ không yêu cầu bất kỳ kiểu dáng bổ sung nào để tính đến các thẻ span được thêm bởi Special_menu_items và sẽ hợp lệ W3C vì mọi neo phải có thuộc tính href.

Đó là một giải pháp rất hay!

6
Andriyun

Chỉ gặp phải vấn đề tương tự. Tôi cần lập trình thêm các mục menu với các liên kết băm. Mã của tôi:

// 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);
2
EDWH

Chỉ cần đặt external thành TRUE sẽ giúp tôi. Đã thử nghiệm trong Druapl 7.32.

l('Some Name', '#', array('external' => TRUE));

1
timofey.com

Sử dụng chức năng dịch Drupals cũng hoạt động.

/**
 * 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';
  }
}
0
Alan D.

cài đặt các mục menu đặc biệt và Menu DHTML cho các menu phân cấp rồi :

  • thêm từ vựng ví dụ x của bạn và thêm vào đó các thuật ngữ của bạn
  • nhấp vào sửa đổi ví dụ x hơn trong phần menu phân loại vị trí đặt menu
  • đi đến khối đặt menu thành một khối
  • trong phần chỉnh sửa quản trị trình đơn, bạn sẽ thấy các điều khoản được thêm tự động
  • nhấp vào sửa đổi một mục menu sau đó qua <void> trong mục tiêu

bây giờ trở lại trang chủ của bạn và bạn sẽ thấy rằng mục menu mà chúng tôi đã sửa đổi trong nhấp chuột không đi đâu cả

0
elaz
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;
}

Bạn có thể thêm liên kết băm vào menu bằng cách sử dụng mã ở trên.

0
Guru
/**
 * 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;
  }
}
0
ccx105