Joomla.it Forum

Non solo Joomla... => Sviluppo => : emildag 26 Jan 2010, 06:53:30

: nascondere un modulo agli utenti registrati
: emildag 26 Jan 2010, 06:53:30
buongiorno..
ho un problema  io o joomla 1.5 installata,lingua italiana  e non trovo il file frontend.php sulla cartella includes.
Devo segure questo passaggio




foreach ($modules as $module) {
  $params = new mosParameters( $module->params );

 e inserire

 // HACK: added code to check if module should be shown when a user is logged in
  if (!$params->get('show_registered', 1) && $my->id) {
   // simply continue the loop without outputting this module
   continue;
  }
  // --- end HACK ---
 un aiuto!!
: Re:aiuto
: scarinciotto 26 Jan 2010, 09:00:33
prima di eseguire un hack dicci cosa vorresti fare, magari riusciamo a farlo senza mettere le mani al codice...
: nascondere un modulo agli utenti registrati
: emildag 26 Jan 2010, 10:36:48
vorrei nascondere i moduli agli utenti registrati e renderli visibile solo al pubblico ,ho letto qui nel forum e ho trovato questa procedura http://forum.joomla.it/index.php/topic,19006.0.html (http://forum.joomla.it/index.php/topic,19006.0.html)
: Re:aiuto
: scarinciotto 26 Jan 2010, 10:54:44
uhm... il contrario di quello che di solito si fa.... strano, mi incuriosisce! A cosa potrebbe servire se è lecito)?
: Re:aiuto
: = odino = 26 Jan 2010, 10:56:53
uhm... il contrario di quello che di solito si fa.... strano, mi incuriosisce! A cosa potrebbe servire se è lecito)?

per esempio a nascondere un modulo che ti chiede di registrarti per accedere alle aree private del sito  :)
: Re:aiuto
: scarinciotto 26 Jan 2010, 12:11:51
per esempio a nascondere un modulo che ti chiede di registrarti per accedere alle aree private del sito  :)
ok in quel caso, ma comunque il modulo di login cambia "forma" una volta loggati.... ma non è che scompare sempre lì è....
: Re:aiuto
: = odino = 26 Jan 2010, 13:18:50
per esempio a nascondere un modulo che ti chiede di registrarti per accedere alle aree private del sito  :)
ok in quel caso, ma comunque il modulo di login cambia "forma" una volta loggati.... ma non è che scompare sempre lì è....

...un modulo custom html che elenca i servizi per gli abbonati e che deve ovviamente scomparire una volta che loggi, che non dev'essere associato al modulo di login graficamente...
: nascondere un modulo agli utenti registrati
: emildag 26 Jan 2010, 17:50:24
esiste (un componente) che dia  la funzione di nascondere un modulo a tua scelta?io ho bisogno di questa funzione
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 09:08:50
nessuno mi puo dare una diritta  di come posso fare  :(?
: Re:aiuto
: mmleoni 27 Jan 2010, 09:24:14
a parte che il post che indichi si riferisce alla versione 1.0, trovo non sia mai una buona idea mettersi a fare hack qua e là, specialmente se non si è programmatori  >:( .

ti suggerisco di aggiungere una nuova posizione per i moduli nel template inserendola così:

:
<?php $user JFactory::getUser(); if(!$user->id): ?>
  <div id="<QuelCheEPosizione>">
    <jdoc:include type="module" name="<posizionemodulo>" />
  </div>
<?php endif ; ?>

in questo modo, appena l'utente si loggerà, la posizione sparirà dal template.

ciao,
marco
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 14:04:30
ciao marco grazie ,io ho fatto quetso passaggio  ma non va  :-[ ti faccio un esempio

<?php $user = JFactory::getUser(); if(!$user->id): ?>
  <div id="<QuelCheEPosizione>">
    <jdoc:include type="module" name="<mod_shoutboxo>" />
  </div>
<?php endif ; ?>
 

o devo integrare come e stato creato il codice senza portare modifiche?<div id="<QuelCheEPosizione>"> cosa devo inserire ? non sono molto esperto     
: Re:aiuto
: mau_develop 27 Jan 2010, 14:14:59
eseguo il codice della pagina e arrivo a qs punto:

<?php $user = JFactory::getUser(); if(!$user->id): ?>

if(!$user->id), cioè, se non c'è un user_id vuol dire che non è loggato, allora carico il modulo:

<jdoc:include type="module" name="<mod_shoutboxo>" />

se loggato ovviamente passerà oltre senza caricare il modulo.

... ma si chiama shout boxo ?!! non shout box?

Quello che ha messo Marco tra i div è perchè ha pensato che il modulo venisse messo tra div ma non so se è così e comunque non cambia nulla.

M.
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 14:33:42
quindi  nel template devo  integrare cosi
<?php endif ; ?>
 
<?php $user = JFactory::getUser(); if(!$user->id): ?>
 
<jdoc:include type="module" name="<mod_shoutbox>" />
 
<?php endif ; ?>
: Re:aiuto
: mmleoni 27 Jan 2010, 14:38:14
ciao,
emildag

ciao marco grazie ,io ho fatto questo passaggio  ma non va  ...

jdoc:include serve a caricare i moduli presenti in una posizione del template, non un modulo direttamente: quali moduli inserire in quella posizione lo decidi da gestione moduli nell'amministrazione.

questo articolo potrà essere più esplicativo:
http://wiki.joomla.it/index.php?title=Come_aggiungo_nuove_posizioni_modulo%3F

<QuelCheEPosizione> e <posizionemodulo> sono solo dei segna posto che vanno sostituiti (comprese <>) il primo con ciò che vuoi (serve per il css) ed il secondo con il nome della posizione come indicato nell'articolo citato.

non sono molto esperto     

 :( ops, scusa ho dimenticato che se fossi stato esperto di certo non lo avresti chiesto a me  ;)

ciao,
marco



: Re:aiuto
: mmleoni 27 Jan 2010, 14:39:43
quindi  nel template devo  integrare cosi...

il primo endif è sicuramente di troppo. inizia a leggere l'articolo suggerito. se poi hai problemi ...

ciao
marco
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 16:49:46
ciao Marco ho letto anche la guida ma non sono riuscito a fare nulla ,ho seguito come ai riportato nel post ma io non risco  a fare cio' :( ho provato  devo abbandonare...  la nave  :) ecco quello che io ho fatto e poi messo nel template

<?php $user = JFactory::getUser(); if(!$user->id): ?>
<div id="shoutbox">
<jdoc:include type="module" name="mod_shoutbox" />
</div>
<?php endif ; ?>
: Re:aiuto
: mau_develop 27 Jan 2010, 16:58:45
name="mod_shoutbox" />

noneeee

la posizione! non il nome del modulo

M.
: Re:aiuto
: mau_develop 27 Jan 2010, 17:11:58
remember:

nel file xml del tuo template ci sono varie posizioni definite:

esempio:  <position>bread</position>

quando installi un modulo o lo attivi gli devi assegnare una posizione, ammettiamo tu scelga proprio "bread"

nell'index del template avrai il tuo include:

<jdoc:include type="module" name="bread" />

che vuol dire:

includi tutti i moduli a cui è stata assegnata la posizione "bread"

Vuoi una posizione personalizzata? bene! apri il file xml templatedetails nel tuo template
aggiungi dove sono tutte le posizioni una riga così:

<position>shoutbox</position>

vai in gestione moduli-> shoutbox

gli assegni quella posizione, e il tuo codice diventa

<jdoc:include type="module" name="shoutbox" />

M.
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 17:56:33
ok ho seguito il tuo consiglio
puoi notere che ora ho dato il nome <jdoc:include type="module" name="user4" /> ho inserito  tutto il contenuto nella pagina del template  e ho salvato
ora quando accedo al sito   il modulo e ancora posizionato dove io ho dato il nome non va via ,come mai sbaglio ancora? 
: Re:aiuto
: mau_develop 27 Jan 2010, 18:09:47
hai messo anche il resto dello script?
$user = JFactory::getUser(); etc?

M.
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 18:14:45
si ho messo tutto o anche cambiato il nome per testare es da user4 in left ma non va
: Re:aiuto
: mmleoni 27 Jan 2010, 18:34:38
ciao,
piccolo riepilogo: hai questo codice nel template:

:
<?php $user JFactory::getUser(); if(!$user->id): ?>
  <div id="User4Div">
    <jdoc:include type="module" name="user4" />
  </div>
<?php endif ; ?>
(l'id del div può essere diverso)
hai inserito, dall'amministrazione, il modulo che vuoi nascondere agli utenti loggati in user4.

vai sul sito, effettui il login ed il modulo è ancora in vista?

è cosi?

ciao,
marco
: nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 19:01:50
si e cosi effettuo il login  e il modulo e ancora li
ti lego un link di download del codice della mia pagina del template  se puoi dare una occhiatahttp://mywebhome.altervista.org/html%20template.rar (http://mywebhome.altervista.org/html%20template.rar)   o puoi posizionare il codice
: Re:aiuto
: = odino = 27 Jan 2010, 19:42:22
sosituisci la prima riga di php

:
<?php $user JFactory::getUser(); if(!$user->id): ?>
con

:
<?php $user JFactory::getUser(); $user->id $user->get('id'); if(!$user->id == 0): ?>
dovrebbe andare anche come ti hanno suggerito, ma può essere benissimo che sia saltata un'API, in wordpress succede spesso  :P
: Re:aiuto
: mmleoni 27 Jan 2010, 20:49:41
... effettuo il login  e il modulo e ancora li ...

allora nel template che hai allegato devi sostituire la riga 222:

:
<?php if ($this->countModules('user4')) : ?>
con la seguente:

:
<?php $user JFactory::getUser(); if ( (!$user->id) and ($this->countModules('user4'))) : ?>

se non funziona, e la cosa non è bella  :( , prova a scriverla come suggerisce odino:

:
<?php $user JFactory::getUser(); $user->id $user->get('id'); if ( ($user->id != 0) and ($this->countModules('user4'))) : ?>

ciao,
marco
: RISOLTO
: emildag 27 Jan 2010, 21:22:57
ciao Marco  e andata a buon fine  :) :) :) ho fatto  il login e il modulo e sparito ...sei un grande ..o sostituito  la riga 222 con <?php $user = JFactory::getUser(); if ( (!$user->id) and ($this->countModules('user4'))) : ?>
: Re:aiuto
: mmleoni 27 Jan 2010, 21:34:12
ok, contento per te :)

ma metti [RISOLTO] nel titolo... e già che ne parliamo che ne dici di farlo diventare "nascondere un modulo agli utenti registrati" ?

ciao,
marco
: Re:nascondere un modulo agli utenti registrati
: emildag 27 Jan 2010, 21:43:13
ok fatto  ,
il merito e tuo e di tutti quelli che anno sostenuto questo post nel forum  grazie 1000