PDA

Zobacz pełną wersję : Nietypowy dostęp do modułu ...



devnull
04-05-2009, 08:18
... a może typowy tylko ja o tym nie wiem. Celem jest opublikowanie modułu w taki sposób, aby użytkownicy anonimowi go widzieli, a po zalogowaniu się moduł nie był widoczny. Podgladnąłem na innych witrynach i zacząłem się bawić warunkiem:

<?php $user =& JFactory::getUser();
if(!$user->id) ?>
<?php if($this->countModules('moduł_powszechny')) : ?>
<jdoc:include type="modules" name="moduł_powszechny" style="xhtml" />
<?php endif; ?>
<!-- i odpowiednio dalej -->
<?php $user =& JFactory::getUser();
if($user->id) ?>
<?php if($this->countModules('moduł_rejestrowany')) : ?>
<jdoc:include type="modules" name="moduł_rejestrowany" style="xhtml" />
<?php endif; ?>
ale niestety moduł_powszechny nie "ukrywa się" po zalogowaniu. Może ktoś już otworzył drzwi innym sposobem i nie muszę ich wyważać ?
Dziękuję za każdą pomoc. (J1.5.10)

prince15
04-05-2009, 10:33
Zamiast warunków, może lepiej skorzystać z opcji modułu takiej jak "Poziom dostępu" - ustalasz sobie czy np. dla zarejestrowanych ma być widoczny, a dla innych nie.

devnull
04-05-2009, 10:52
W opcjach modułu - poziomy dostępu - nie ma możliwości ukrycia powszechnie dostępnego modułu po zalogowaniu się. Przeczytaj co jest celem - jak opisałem wyżej.

prince15
04-05-2009, 11:10
Soraski, faktycznie nie przeczytałem do końca. Nie spotkałem się z takim gotowym modułem, ale wymyśliłem coś innego. Spróbuj pokombinować z szablonami. Jeden szablon dla użytkowników niezarejestrowanych z widocznym modułem i warunek, jeśli się zarejestrują przekierowanie na inny szablon bez widocznego modułu.

ppilus
04-05-2009, 11:20
Nie ma co kombinować z szablonami. Wystarczy podpatrzeć jak jest napisany mod_login. Z braku czasu nie podam gotowca.

devnull
04-05-2009, 12:01
Uzupełniłem o klamerki i działa ! W php nie jestem za dobry...
Gdyby ktos potrzebował to rozwiązanie poniżej:


<?php $user =& JFactory::getUser();
if(!$user->id) { ?>
<?php if($this->countModules('modul_powszechny')) : ?>
<jdoc:include type="modules" name="modul_powszechny" style="xhtml" />
<?php endif; ?>
<?php } ?>
<?php $user =& JFactory::getUser();
if($user->id) { ?>
<?php if($this->countModules('modul_rejestrowany')) : ?>
<jdoc:include type="modules" name="modul_rejestrowany" style="xhtml" />
<?php endif; ?>
<?php } ?>po zalogowaniu moduł dla zarejestrowanych wskakuje w miejsce modułu powszechnego.
Zamykam wątek, dziękuje wszystkim za zainteresowanie i pomysły rozwiązania.

UPS!

cytując Zwiastuna: "zamykanie tematów to na forum czynność moderatora lub administratora, a nie komunikat użytkownika (nawet aktywnego i użytecznego!). Przypisywanie sobie nieposiadanych uprawnień nie należy do dobrego tonu" niczego nie zamykam :)