Hiển thị các mục menu có quyền truy cập giới hạn cho người dùng ẩn danh


9

Tôi có một trang web sử dụng mô-đun Riêng tư để đặt quyền truy cập vào nội dung và tất nhiên một số trang của tôi có các mục menu. Bây giờ nếu tôi đặt một trang ở chế độ riêng tư, chỉ những người dùng có quyền phù hợp mới có thể thấy điều đó, điều đó thật tuyệt và những gì tôi muốn.

Nhưng tôi có một chút vấn đề với các mục menu, chúng biến mất nếu nội dung được gán cho chúng không công khai (tức là trang được gán cho chúng là Riêng tư), điều này không sao nhưng tôi vẫn có thể hiển thị các mục đó trong điều hướng, vì vậy nếu người dùng nhấp vào chúng, nó sẽ đưa họ đến trang đăng nhập yêu cầu họ nhập thông tin chi tiết để xem trang cụ thể đó.

Vì vậy, về cơ bản tôi muốn thay đổi hành vi của các mục menu theo cách chúng sẽ luôn hiển thị cho các thành viên ẩn danh và đã đăng ký của trang web nhưng khi bạn nhấp vào chúng, bạn sẽ có thể xem trang (nếu bạn đã đăng nhập trong) hoặc được chuyển hướng đến trang đăng nhập (nếu ẩn danh)

Tôi tìm thấy giải pháp này không phải là giải pháp tốt nhất cho tôi vì tôi có nhiều trang như vậy nên tôi đang tìm kiếm một cách tiếp cận tốt hơn. Tôi thậm chí đã thử mô-đun hiển thị mục Menu nhưng điều đó cũng không giúp được gì!

Làm thế nào để tôi đạt được điều này xin vui lòng?

Luca


Tôi có một số mã tại github.com/bbinkovitz/derpl/tree/master/foreshadow_menu có thể hữu ích cho bạn. Bạn có thể sẽ phải thay đổi một số giá trị hoặc đặt tên khác cho menu của bạn giống như tôi đã làm, nhưng nó có thể giúp bạn bắt đầu.
beth

Câu trả lời:


4

Vấn đề của bạn là khá phổ biến.

Dưới đây là thảo luận về cách thực hiện thủ thuật như vậy trong Drupal 6 và 7 và 8: http://drupal.org/node/300607

Drupal 6 (và 7) đã loại bỏ khả năng hiển thị các mục menu mà người dùng không có quyền truy cập. Tuy nhiên, trong một số trường hợp, mong muốn hiển thị một mục menu mặc dù người dùng không có quyền truy cập vào mục menu. Ví dụ: nếu bạn sử dụng cơ chế xác thực cố gắng xác thực khi 403 sẽ được hiển thị, bạn vẫn muốn hiển thị mục menu để người dùng có cơ hội cung cấp thông tin đăng nhập.

Giải pháp cho Drupal 7 có thể được tìm thấy ở đây: http://drupal.org/node/300607#comment-4450062

Nếu bạn thích mô-đun sẵn sàng - bạn có thể tải xuống tại đây https://github.com/systemseed/always_visible


Cảm ơn rât nhiều. Ước gì họ có tùy chọn này tích hợp sẵn Drupal
Luca

1

Tôi đã có một tình huống tương tự khi các trang phải xuất hiện trong hệ thống menu, nhưng nội dung chỉ xuất hiện cho người dùng đã đăng nhập. Giải pháp cuối cùng rất đơn giản, và tiếp tục hoạt động.

Thay vì kiểm soát truy cập nội dung, mẫu nút sẽ kiểm tra xem người dùng đã đăng nhập chưa. Nếu vậy, nó sẽ hiển thị nội dung. Nếu không, văn bản xuất hiện với các liên kết để đăng nhập hoặc đăng ký.

Chúng không được tự động chuyển hướng, vì vậy nếu điều đó rất quan trọng thì đây không phải là giải pháp.

Mã trong một tóm tắt:

<?php  
global $user;       
if ( $user->uid ) :
print render($content);
// or in some situations, display a view;
else : 
print 'Please <a href="https://drupal.stackexchange.com/user/login">log in</a> or <a href="https://drupal.stackexchange.com/user/register">register</a> etc etc.'
endif; 
?>

Cảm ơn bạn nhưng đó không phải là một giải pháp tốt vì nhiều lý do, vì tôi đang sử dụng một loại hệ thống mẫu khác và tôi muốn có quyền truy cập nội dung nên khi liệt kê nội dung tức là trong Chế độ xem, sẽ tôn trọng quyền truy cập.
Luca

à, vâng Tôi hy vọng bạn tìm thấy một câu trả lời. Có vẻ như nó sẽ là một trường hợp sử dụng khá phổ biến.
keva
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.