Tampilkan item menu dengan batas akses ke pengguna anonim

9

Saya memiliki situs web yang menggunakan modul Pribadi untuk mengatur akses ke konten, dan tentu saja beberapa halaman saya memiliki item menu. Sekarang jika saya mengatur halaman menjadi pribadi, hanya pengguna dengan izin yang tepat yang bisa melihat itu, mana yang bagus dan apa yang saya inginkan.

Tapi saya mengalami sedikit masalah dengan item menu, mereka menghilang jika konten yang diberikan kepada mereka tidak bersifat publik (yaitu halaman yang ditugaskan kepada mereka adalah Privat), ini OK tapi saya ingin tetap dapat menampilkan item-item itu dalam navigasi, jadi jika pengguna mengkliknya, itu akan membawa mereka ke halaman login meminta mereka untuk memasukkan detail mereka untuk melihat halaman tertentu.

Jadi pada dasarnya saya ingin mengubah perilaku item menu dengan cara yang akan selalu terlihat oleh anggota anonim dan terdaftar dari situs web tetapi ketika Anda mengklik pada mereka, Anda akan dapat melihat halaman (jika Anda login in) atau dialihkan ke halaman login (jika anonim)

Saya menemukan solusi ini yang bukan yang terbaik untuk saya karena saya memiliki banyak halaman seperti itu jadi saya mencari pendekatan yang lebih baik. Saya bahkan sudah mencoba modul visibilitas item Menu tetapi itu juga tidak membantu!

Bagaimana saya bisa mencapai ini?

Luca

Luca
sumber
Saya memiliki beberapa kode di github.com/bbinkovitz/derpl/tree/master/foreshadow_menu yang mungkin dapat membantu Anda. Anda mungkin harus mengubah beberapa nilai atau menamai menu Anda dengan cara yang sama seperti yang saya lakukan, tetapi itu bisa membantu Anda memulai.
beth

Jawaban:

4

Masalah Anda cukup umum.

Berikut ini adalah diskusi bagaimana menerapkan trik semacam itu di Drupal 6 dan 7 dan 8: http://drupal.org/node/300607

Drupal 6 (dan 7) menghapus kemampuan untuk menampilkan item menu yang tidak dapat diakses oleh pengguna. Namun, dalam beberapa kasus diinginkan untuk menampilkan item menu meskipun pengguna tidak memiliki akses ke item menu. Misalnya, jika Anda menggunakan mekanisme otentikasi yang mencoba untuk mendapatkan otentikasi ketika 403 akan ditampilkan, Anda masih ingin menampilkan item menu sehingga pengguna mendapat kesempatan untuk memberikan kredensial untuk login.

Solusi untuk Drupal 7 dapat ditemukan di sini: http://drupal.org/node/300607#comment-4450062

Jika Anda lebih suka modul siap - Anda dapat mengunduhnya di sini https://github.com/systemseed/always_visible

Eugene Fidelin
sumber
Terima kasih banyak. Seandainya mereka memiliki opsi ini bawaan Drupal
Luca
1

Saya memiliki situasi yang sama di mana halaman harus muncul di sistem menu, tetapi konten seharusnya hanya muncul untuk pengguna login. Solusi terakhir sangat sederhana, dan terus bekerja.

Alih-alih mengendalikan akses konten, templat simpul memeriksa apakah pengguna masuk. Jika ya, ia akan menampilkan konten. Jika tidak, teks muncul dengan tautan untuk masuk atau mendaftar.

Mereka tidak secara otomatis dialihkan, jadi jika itu penting maka ini bukan solusinya.

Singkatnya:

<?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; 
?>
keva
sumber
Terima kasih, tetapi itu bukan solusi yang baik karena berbagai alasan, karena saya menggunakan jenis sistem template yang berbeda dan saya ingin memiliki akses konten sehingga ketika mendaftar konten yaitu di Views, yang akan menghargai akses.
Luca
ah iya. Saya harap Anda menemukan jawabannya. Sepertinya itu akan menjadi kasus penggunaan yang cukup umum.
keva