Joomla.it Forum
Joomla! 1.0.x (versione con supporto terminato) => Le voci di Joomla.it (solo per versione Joomla 1.0.x) => : .Andrea S. 12 Sep 2007, 16:10:50
-
Problema:
Come fare per far visualizzare un modulo solo ad un determinato tipo di utenti. (Author, editor)
al momento ho risolto con questo hack: Hide any module for logged in users ONLY (http://forum.joomla.org/index.php/topic,114630.msg795120.html#msg795120)
che in realtà fa il contrario ma ovviamente se si rovescia il problema.... :D
Funziona bene e ve lo consiglio.
Ma siccome non mi piace modificare il core di joomla vorre trovare una soluzione alternativa.
Avevo pensato di inserire nel template un modulo e caricarlo solo se l'utente loggato era di una certo tipo (Author), il codice doveva essere questo:
<?php if($my->usertype == "author"){?>
<?php echo mosLoadModules ( 'user9',-3 );?>
}else{
<?php } ?>
Mettendo poi i moduli ad ok risolverei il mio personalissimo problema.
Ma........ non funziona :(
Che sbaglio?
Mi sa che mi sto perdendo in un bicchiere d'acqua...
Grazie mille
-
Cosa ti succede così?
Ti sparisce tutto il Container nel caso in cui non sia un autore?
-
mi sparisce sempre, anche nel caso sia autore
Ho provato acnhe con administrator, guest, etc
-
strtolower( $my->usertype ) == 'author'
Prova così
-
perfetto! ;D
Devo levare l'else però... giusto?
<?php if(strtolower( $my->usertype ) == 'author'){?>
<?php echo mosLoadModules ( 'author',-3 );?>
<?php } ?>
e se volessi farlo visualizzare a 2 tipi di utenti? (l'appetito vien mangiando ;D)
Grazie ancora
-
Certo che sto codice non si può proprio guardare... :-X
-
Certo che sto codice non si può proprio guardare... :-X
napo ha perfettamente ragione
<?php
if(strtolower( $my->usertype ) == 'author'){
echo mosLoadModules ( 'author',-3 );
}
?>
se vuoi rendere attivo questo comportamento per 2 tipi di utenti basta che inserisci:
if(strtolower( $my->usertype ) == 'author' ||
strtolower( $my->usertype ) == 'altroTipo'){
...
}
sostituendo altroTipo con il tipo che ti interessa, al contrario se vuoi un comportamento diverso ti serve else.
Infine, se vuoi specializzare il comportamento per ogni tipo di utente prendi in considerazione il costrutto swith ;)
-
che dire... semplicemente magnifico.
Grazie mille!
.....mi sa che mi devo mettere a studiare ;)
-
if(strtolower( $my->usertype ) == 'author' ||
strtolower( $my->usertype ) == 'altroTipo'){
...
}
Anche questo codice non è bellissimo... ;D
Sarebbe meglio creare un array di stringhe in cui memorizzare tutti i tipi da controllare e poi verificare se usertype è dentro l'array. Qualcosa del tipo:
<?php
$tipiDaControllare = array("author", "altroTipo", ecc...);
if (in_array(strtolower($my->usertype), $tipiDaControllare)) {
// fai quello che devi fare
}
?>
-
Magnifico anche questo! ;D
Grazie mille anche a te Napo
-
...
Anche questo codice non è bellissimo... ;D
...
ok... ma niente eufemismi. :(