Tùy chỉnh đầu ra liên kết menu


7

Trong Drupal 7, làm cách nào tôi có thể chặn hiển thị menu trong template.php và thêm các đường ống sau khi liên kết menu?

Tôi đã thử sử dụng template_pre process_menu_tree nhưng tôi không nghĩ đó là thứ tôi đang tìm kiếm. Tôi muốn thay đổi cấu trúc HTML của một vài menu.


Bạn đang nói về bất kỳ liên kết menu, hoặc chỉ đến menu liên kết nhiệm vụ địa phương?
kiamlaluno

Menu tùy chỉnh, Menu chính, không phải nhiệm vụ địa phương.
Kevin

Nhận xét của tôi từ ngày 27 tháng 9 năm 13 Sử dụng HTML trong tùy chọn menu cũng rất hữu ích từ một mô-đun, tức là chèn hình ảnh làm tùy chọn menu. Có cách nào để sử dụng một cái gì đó như function MODULE_preprocess_menu_link(&$variables). Tái bút: Tôi cũng sẽ hỏi đây là một câu hỏi riêng biệt.
Gabriel R.

Câu trả lời:



5

Điều này có thể hữu ích. Bạn có thể sử dụng các chức năng tiền xử lý để thay đổi hoặc thêm một cái gì đó vào liên kết menu.

function THEME_preprocess_menu_link(&$variables) {
  $variables['element']['#below']['#markup'] = ' <span>→</span>';
}

Trong khoảng mã này được thêm vào mỗi mục liên kết điều hướng.


5

Cá nhân tôi chỉ cần thêm đường ống bằng CSS - bạn không thực sự muốn các đường ống trong đánh dấu của mình vì chúng hoàn toàn mang tính trình bày:

.breadcrumb li:after {
  content: "|";
  margin: 0 5px; // optional styling nicety
}

.breadcrumb li:last-child::after {
  content: "";
}

1

Menu được theo chủ đề với chức năng theme_links. Bạn sẽ muốn tạo một bản sao trong [thư mục chủ đề] /MYTHEME/template.php và đổi tên nó thành MYTHEME_links. Bạn có thể tìm thấy chức năng mặc định cho drupal 7 bằng cách truy cập: http://api.drupal.org/api/drupal/includes--theme.inc/feft/theme_links/7

Bây giờ bạn sẽ có thể tùy chỉnh giao diện của các menu từ tệp template.php.


Điều này cũng không hoạt động. Nó chỉ loại bỏ các liên kết theo ngữ cảnh (sử dụng krumo và var_dump trên các biến $). Đây là những gì tôi đã sử dụng trong D6 khá chắc chắn, nhưng dường như không chạm vào các menu trong một khối menu.
Kevin

Tôi chỉ cần làm điều này với các menu nhất định, câu trả lời này đã giúp. theme_menu_link chứa một mảng về menu nằm trong đó, vì vậy tôi có thể điều chỉnh đầu ra nếu đó là một menu cụ thể. stackoverflow.com/questions/2317462/ trộm
Kevin

0

Tôi khuyên bạn nên sử dụng một plugin cho việc này. Hướng dẫn đầy đủ tại đây: Tạo liên kết menu với đánh dấu html trong drupal 8

namespace Drupal\MYMODULE\Plugin\Menu;

use Drupal\Core\Menu\MenuLinkDefault;

/**
 * A menu link that displays number of points.
 */
class MyMessagesMenuLink extends MenuLinkDefault {

  /**
   * {@inheritdoc}
   */
  public function getTitle() {
    $count = 0;
    if(\Drupal::currentUser()->isAuthenticated()) {
      // Load in your count here
      ...
    }
    return $this->t('My messages <span class="badge badge-dark">@count</span>', ['@count' => $count]);
  }

  /**
   * {@inheritdoc}
   */
  public function getCacheMaxAge() {
    return 0;
  }

}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.