Anonim kullanıcılara sınır erişimi olan menü öğelerini göster


9

İçeriğe erişimi ayarlamak için Özel modül kullanan bir web sitem var ve elbette bazı sayfalarımda menü öğeleri var. Şimdi bir sayfayı özel olacak şekilde ayarlarsam, yalnızca uygun izne sahip kullanıcılar bunu görebiliyordu, bu harika ve istediğim şeydi.

Ama menü öğeleri ile biraz sorun yaşıyorum, kendilerine atanan içerik herkese açık değilse kaybolurlar (yani kendilerine atanan sayfa Özeldir), bu tamam ama yine de bu öğeleri gösterebilmek istiyorum kullanıcı onları tıklarsa, giriş sayfasına yönlendirerek belirli bir sayfayı görmek için ayrıntılarını girmelerini ister.

Temel olarak menü öğelerinin davranışını, web sitesinin anonim ve kayıtlı üyelerine her zaman görünür olacak şekilde değiştirmek istiyorum, ancak üzerlerine tıkladığınızda, sayfayı görebileceksiniz (giriş yapıyorsanız ) veya giriş sayfasına yönlendirilebilir (anonim ise)

Benim için en iyisi olmayan bu çözümü buldum çünkü böyle birçok sayfam var, bu yüzden daha iyi bir yaklaşım arıyorum. Hatta Menü öğesi görünürlük modülünü denedim ama bu da yardımcı olmadı!

Bunu nasıl başarabilirim lütfen?

Luca


Github.com/bbinkovitz/derpl/tree/master/foreshadow_menu adresinde size yardımcı olabilecek bazı kodlarım var. Muhtemelen bazı değerleri değiştirmeniz veya menülerinizi benim yaptığım gibi adlandırmanız gerekir, ancak başlamanıza neden olabilir.
Beth

Yanıtlar:


4

Sorununuz oldukça yaygın.

Drupal 6 ve 7 ve 8'de böyle bir hile nasıl uygulanacağı tartışılıyor: http://drupal.org/node/300607

Drupal 6 (ve 7), kullanıcının erişemediği menü öğelerini görüntüleme özelliğini kaldırdı. Ancak, bazı durumlarda kullanıcının menü öğesine erişimi olmamasına rağmen bir menü öğesinin gösterilmesi istenir. Örneğin, bir 403 görüntülendiğinde kimlik doğrulaması almaya çalışan bir kimlik doğrulama mekanizması kullanırsanız, kullanıcıların giriş yapmak için kimlik bilgileri sağlama şansı elde edebilmeleri için yine de menü öğesini görüntülemek istersiniz.

Drupal 7 için çözüm burada bulunabilir: http://drupal.org/node/300607#comment-4450062

Hazır modülü tercih ederseniz - buradan indirebilirsiniz https://github.com/systemseed/always_visible


Çok teşekkür ederim. Keşke bu seçenek yerleşik Drupal olsaydı
Luca

1

Sayfaların menü sisteminde görünmesi gereken benzer bir durum vardı, ancak içerik yalnızca giriş yapan kullanıcılara görünmelidir. Nihai çözüm çok basitti ve çalışmaya devam ediyor.

İçerik erişimini denetlemek yerine, düğüm şablonu kullanıcının oturum açıp açmadığını denetler. Öyleyse içeriği görüntüler. Değilse, giriş yapmak veya kaydolmak için bağlantılar içeren metin görünür.

Otomatik olarak yönlendirilmezler, bu yüzden kritikse çözüm bu değildir.

Özetle kod:

<?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; 
?>

Teşekkür ederim ama bu pek çok nedenden ötürü iyi bir çözüm olmaz, farklı bir şablon sistemi türü kullanıyorum ve içeriğe erişim sağlamak istiyorum.
Luca

Ah evet. Umarım bir cevap bulursun. Oldukça yaygın bir kullanım örneği gibi görünüyor.
keva
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.