it-swarm-vi.com

Hiển thị nút trong lớp phủ bằng cách sử dụng drupal 7 mô-đun lớp phủ

Có cách nào để mở lớp phủ có nội dung nút bằng cách sử dụng drupal mô đun lõi lớp phủ không? Nếu tôi có thể sử dụng lại ít nhất mã javascript tôi đã rất vui =)

6
Luiz Guilherme

Cách nhanh hơn là triển khai hook_admin_paths_alter () trong một mô-đun để xác định lại mục nào trong các mục menu được xác định trong hook_menu() bởi các mô-đun khác là đường dẫn quản trị. Giá trị được trả về từ các cài đặt của hook_admin_paths () , sau đó được thay đổi từ các cài đặt của hook_admin_paths_alter(), được sử dụng từ mô-đun Lớp phủ để quyết định trang nào được hiển thị dưới dạng lớp phủ. Vì các mô-đun khác có thể sử dụng cùng một thông tin để hiển thị các trang sử dụng một chủ đề khác, mô-đun nên yêu cầu mô-đun Lớp phủ làm phụ thuộc, để đảm bảo các trang bổ sung được hiển thị hiệu quả dưới dạng lớp phủ.

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*/view'] = TRUE;
}

Nếu bạn nhận thấy rằng việc triển khai này không hoạt động khi người dùng đang xem, ví dụ: example.com/node/1, nhưng chỉ khi họ đang xem example.com/node/1/view, thì tôi sẽ triển khai hook bằng cách sử dụng đoạn mã sau. Việc triển khai đầu tiên tôi cung cấp sẽ hoạt động, vì tab "Xem" là mặc định và khi người dùng đang xem example.com/node/1, Drupal thực sự hiển thị example.com/node/1/lượt xem.

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*'] = TRUE;
  $paths['node/*/view'] = TRUE;
}

Vì dòng đầu tiên có thể bắt tất cả các trang nút (tôi không xác minh điều đó), tôi sẽ xác minh nếu có các trang khác trong đường dẫn đó không được hiển thị; trong trường hợp đó, việc triển khai có thể được thay đổi như sau ("nút/*/backlinks" chỉ là một ví dụ):

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*'] = TRUE;
  $paths['node/*/view'] = TRUE;
  $paths['node/*/backlinks'] = FALSE;
}
  • Thông thường, các mô-đun triển khai hook_admin_paths() để báo cáo mục nào trong menu của chúng là trang quản trị; điều này có nghĩa là nếu một trang không phải là trang quản trị, một mục nhập cho trang đó sẽ không được thêm vào mảng được trả về.
  • hook_admin_paths() được triển khai cho các mục menu được xác định trong mô-đun của riêng bạn; để xác định lại khi các mục menu được xác định từ các mô-đun khác là các trang quản trị, bạn cần triển khai hook_admin_paths_alter().
  • Đối với các trang được xác định là trang quản trị không được tự động áp dụng điều khiển truy cập; điều này có nghĩa là mô-đun xác định các mục menu được báo cáo là trang quản trị vẫn cần sử dụng "truy cập gọi lại" và "đối số truy cập" để xác định người dùng nào có thể truy cập vào các mục menu được liên kết với các trang quản trị. Các trang được xác định là trang quản trị chỉ được hiển thị khác nhau, nếu có một mô-đun thực hiện điều đó.
  • Mô-đun nút xác định các trang chỉnh sửa nút chỉ là trang quản trị khi hộp kiểm trong trang quản trị được chọn; những trang đó đã được xử lý.
6
kiamlaluno

Bạn cũng có thể sử dụng mô đun Đường dẫn lớp phủ . Đây là một mô-đun đơn giản cho phép quản trị viên sử dụng Lớp phủ tích hợp cho các trang không phải quản trị viên. Điều này có nghĩa là bạn có thể sử dụng lớp phủ để thực hiện quảng cáo mà không cần thêm thư viện javascript vào trang web của mình.

6
user842

Tôi đã kết thúc bằng cách sử dụng mô-đun Đường dẫn lớp phủ với Bảng để tôi có thể hiển thị biểu mẫu đăng ký bản tin của chúng tôi. Biểu mẫu xuất hiện, nhưng nó cũng bao gồm mọi thứ khác trên trang (tiêu đề, chân trang, thanh bên, v.v.). Nó đã hiển thị trang đăng ký bản tin thông qua mẫu trang mặc định.

Vì vậy, giải pháp khó khăn là tạo một Biến thể trên mẫu trang mặc định trong Bảng điều khiển. Biến thể chỉ được chọn nếu Node: Type là một Webform. Sau đó, tôi đã xóa nội dung thừa và làm cho Biến thể chỉ hiển thị Nội dung chính.

Mau! Trang đăng ký bản tin xuất hiện trong một lớp phủ chỉ đơn giản là một hình thức mà tôi có thể tạo kiểu cho nội dung trái tim CSS của mình!

1
silentkrange