Làm thế nào để thêm chức năng gọi lại truy cập vào một đường dẫn được xác định bởi một đường dẫn được xác định bởi một khung nhìn?


7

Tôi đang sử dụng Drupal 7, Lượt xem 3 và hook_menu_alter

function MYMODULE_menu_alter(&$items){
  $items['client/place/%'] = array(
    'access callback' => 'custom_function',
  );   
}

để ghi đè khả năng hiển thị của chế độ xem (quyền truy cập), cũng xóa bộ đệm, nhưng điều này dường như không hoạt động, ai đó có thể đưa ra ánh sáng về cách giải quyết vấn đề này, đây có phải là cách đúng để ghi đè đường dẫn được xác định bởi chế độ xem không?

cảm ơn trước


1
Tôi nghĩ rằng bạn có thể đã mắc một lỗi đánh máy ở đó; câu hỏi của bạn cho biết "truy cập gọi lại" trong khi mã mẫu của bạn đặt "gọi lại trang".
marcvangend

Bạn đúng rồi. Tôi vừa cập nhật nó
maurermo

Câu trả lời:


9

Nhắc nhở: Mô-đun Lượt xem cho phép bạn đặt quyền truy cập từ Giao diện người dùng

Nếu bạn muốn tạo logic của riêng bạn; đây là cách mã của bạn sẽ trông như thế nào:

function MYMODULE_menu_alter(&$items){
  $items['client/place/%']['access callback'] = 'MYMODULE_custom_callback'; 
}

function MYMODULE_custom_callback(){ 
  $isValid = false;

  /* your logic */

  return $isValid;
}

Đảm bảo mô-đun của bạn được gọi sau mô-đun Lượt xem. Thông thường mô-đun Lượt xem là 10; vì vậy mô-đun của bạn nên từ 11 trở lên.

Ngoài ra, đừng quên xóa bộ nhớ cache của bạn.


1
xin chào, cảm ơn Nó hoạt động. Tôi cần nhiều hơn mỗi vai trò hoặc bộ lọc cấp phép (như thông qua giao diện người dùng). Tôi đã tìm kiếm một cách để biết đó là mô-đun trọng lượng, đây là một số phương pháp http://drupal.org/node/110238 .
maurermo

rất hoan nghênh, rất vui vì nó hiệu quả với bạn
Aboodred1

5
Bạn cũng có thể sử dụng hook_module_implements_alterđể di chuyển hook_menu_altertriển khai của mình sau Chế độ xem và sau đó xem các mục menu mà Chế độ xem đã thêm. Hoạt động tương tự như cài đặt trọng lượng mô-đun, ngoại trừ bạn không phải đặt trọng lượng rõ ràng cho mô-đun của mình.
thứ ba

Tôi đã phải sử dụng% lượt xem_arg thay vì% để nó hoạt động với tôi. Vì vậy, như thế này:$items['user/%views_arg/posts']['access callback'] = 'MYMODULE_custom_access_callback';
jphelan
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.