Joomla.it Forum

Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => I Template di Joomla 1.5.x => : marlow 03 Jul 2009, 15:35:05

: verificare se c'è qualcosa da pubblicare in una posizione
: marlow 03 Jul 2009, 15:35:05
Ciao a tutti,
sono passato da joomla 1.0 a 1.5 da poco e ho difficoltà ad integrare funzioni che mi permettevano di "adattare" il template alle esigenze.
Ad esempio, utilizzando <?php if (mosCountModules('user8') > 0) { ?> verificavo la presenza di moduli pubblicati nella posizione user8 per adattare graficamente lo spazio.

Sul sito http://www.agriculturepoint.it verifico se i tre banner quadrati sono pubblicati. La differenza è visibile tra la home e le altre pagine.

Il problema con la 1.5 è che questo codice non funziona.

Qualcuno potrebbe indicarmi qual'è l'equivalente?
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: marlow 03 Jul 2009, 15:47:43
dimenticavo: è chiaro che sono al corrente che $this->countModules( 'user8' ) dovrebbe essere l'equivalente, ma come posso condizionare al numero di moduli presenti (nel caso di J1.0 segnavo "> numero" ) ?

Pubblico il codice che ho scritto, dovrebbe creare la colonna sidebar2 se nella posizione right c'è qualcosa, altrimenti l'area content occupa tutto lo spazio disponibile:

<?php // esegui questa condizione solo se right ha contenuti
if($this->countModules('right')) : ?>

<div class="content">
<?php if ($this->countModules('breadcrumb') || artxHasMessages()) : ?>
<div class="Post">
    <div class="Post-body">
<div class="Post-inner">
<div class="PostContent">
<jdoc:include type="modules" name="breadcrumb" />
<jdoc:include type="message" />

</div>
</div>
</div>
</div>
<?php endif; ?>
<jdoc:include type="component" />

</div>
<div class="sidebar2">
<jdoc:include type="modules" name="right" style="artblock" />
</div>
</div>

<?php  else : // esegui questa condizione solo right non ha contenuti ?>

 <div class="content2">
<?php if ($this->countModules('breadcrumb') || artxHasMessages()) : ?>
<div class="Post">
    <div class="Post-body">
<div class="Post-inner">
<div class="PostContent">
<jdoc:include type="modules" name="breadcrumb" />
<jdoc:include type="message" />

</div>
</div>
</div>
</div>
<?php endif; ?>
<jdoc:include type="component" />
</div>
</div>

<?php endif; ?>
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: conti1 04 Jul 2009, 01:08:04
ciao
non ti seguo sarà il caldo
allora ora come ora il tuo sito non ha una posizione user8  almeno da quel che si vede ,
Ad esempio, utilizzando <?php if (mosCountModules('user8') > 0) { ?> verificavo la presenza di moduli pubblicati nella posizione user8 per adattare graficamente lo spazio.
cosa intendi x verificavo la presenza....
se hai creato la posizione user8 e pubblichi un modulo in quella posizione non devi fare altro che vedere come si vede nel sito  e dali che vedi se il modulo sta giusto nella posizione user8  se devi modificare il modulo devi agire su css.
dimenticavo: è chiaro che sono al corrente che $this->countModules( 'user8' ) dovrebbe essere l'equivalente, ma come posso condizionare al numero di moduli presenti (nel caso di J1.0 segnavo "> numero" ) ?
perché vuoi condizionare i numero ?
pura curiosità ?
se nel user8 metto due moduli ne vedo 2  e cosi via sta poi a te di non esagerare altrimenti allunghi troppo la pagina.
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: copesc 04 Jul 2009, 09:37:19
$this->countModules() ritorna il numero di moduli presenti nella posizione passato come parametro, per cui se vuoi verificare che il numero di moduli non sia superiore a 2

if($this->countModules('pos')<=2)

ecc.
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: copesc 04 Jul 2009, 09:40:50
[sbagliato il topic]
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: marlow 08 Jul 2009, 11:55:01
Grazie per i contributi. Non ho potuto rispondere prima perché ho trascorso qualche giorno lontano dai computer :)

La risposta di copesc mi è utilissima,
if($this->countModules('pos')<=2)
la provo subito.

perché vuoi condizionare i numero ?
pura curiosità ?

no, non è pura curiosità. Ti faccio un esempio semplice rimandandoti al sito su cui sto lavorando:
tec.tempocomune.it
Ci sono 3 colonne. Quella centrale non sempre è necessaria, per cui il mio layout deve adattare la colonna dei contenuti facendole occupare anche lo spazio della seconda colonna. Se verifico la presenza di un modulo utilizzo un layout a tre colonne, altrimenti a due. In questo modo mi evito di creare un layout assegnato alle pagine diverse dal template predefinito (immagina che casino sarebbe per il cliente che deve assegnare alla pagina anche il template, mi sbrana vivo).

Altra funzione sullo stesso sito, e questa è già attiva, è l'assegnazione dell'header. Il cliente ha chiesto di poter mettere un visual diverso su alcune pagine. Lo farà lui quando creerà di volta in volta nuovi contenuti. Grazie a qualche stringa di php, verifico se il cliente abbia assegnato un modulo con il flash da visualizzare nell'header. Se non l'ha fatto, automaticamente ne comparirà uno di default.

Insomma, una serie di automatismi che riducono gli interventi nel pannello di controllo.
Mi sono spiegato?
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: marlow 08 Jul 2009, 12:04:04
Grazie copesc per la segnalazione del libro, farò un salto da Feltrinelli per sbirciare qualche pagina ed eventualmente comprarlo.
Beato te che hai seguito il corso di applicazioni ipermediali!
Vedo anche che Luca Mainetti è professore associato all’Università di Lecce dove insegna Ingegneria del software e Informatica grafica. Forte, informatica grafica! Quando frequentavo l'università nn se ne parlava nemmeno.
: Re:verificare se c'è qualcosa da pubblicare in una posizione
: copesc 08 Jul 2009, 12:10:02
Ecco dov'è finito questo post  ;D

Avevo sbagliato topic  ::)