Tôi muốn sử dụng javascript để xóa một tùy chọn khỏi danh sách các tùy chọn trong trường hợp người dùng không phải là quản trị viên và tôi đã tìm kiếm và tìm thấy mã này trong một bài đăng và tôi đã sử dụng nó trong tệp themes->mythemename->mythemename.theme của dự án, nhưng cách đó không hiệu quả và tôi có một số vấn đề muốn biết cách giải quyết, vì tôi đã tìm kiếm rất nhiều nhưng không tìm ra giải pháp
function mythemename_pre process_page(&$variables, $hook) {
if (!in_array("quản trị viên", \Drupal::currentUser()->roles) {
if (isset($variables['node']->type) && !empty($variables['node']->type) && (strpos($variables['node']->type, 'proxy_request') ! == sai)) {
drupal_add_js(drupal_get_path('theme', 'mythemename') . '/js/datcbaseauth.js');
}
}
}
Vấn đề đầu tiên là tôi không thể lấy dữ liệu của người dùng hiện tại, vì tôi luôn được thông báo rằng tham số thứ hai của hàm in_array là null.
Vấn đề thứ hai là tôi đang nói rằng tham số thứ hai của hàm strpos là một đối tượng chứ không chỉ là một chuỗi mặc dù ví dụ trong bài đăng coi nó chỉ là một chuỗi.
Vấn đề thứ ba và cũng là vấn đề cuối cùng là tôi đang nói rằng hàm drupal_add_js và hàm drupal_get_path không được xác định.
Mình tìm rất lâu nhưng không thấy có lời giải cho 3 vấn đề này, kể cả các chủ đề có thể họ đề cập trong đó cũng không đầy đủ, ví dụ như không báo cách sử dụng hàm drupal_add_js bên trong file .theme là gì. điều kiện tiên quyết hoặc ngay cả trong chính tài liệu của Drupal, không có dữ liệu nào về biến &$variables sẽ nói về nội dung của nó, bản chất của từng phần, v.v. ngoại trừ việc nó là một mảng kết hợp