Supporto volontario e collaborativo per Joomla!® in italiano

Eliminare contenuti da pagine scelte es: main content da home page

Codice

N.B. Prima di effettuare qualsiasi modifica al codice, è consigliabile effettuare un backup, quantomeno delle pagine che andremo a modificare, per un eventuale ripristino qualora qualcosa dovesse andare storto.

N.B. Il procedimento dovrebbe essere valido per tutte le versioni di Joomla, dico dovrebbe perchè l'ho testato solamente sulla v.2.5, qualora qualcuno faccia qualche test su altre versioni, o mi capiterà di farlo personalmente in seguito, provvederò ad aggiornare l'articolo.


Fatte le prime dovute raccomandazioni, andiamo al sodo..

 

Chi di voi, almeno una volta, non si è trovato nella necessità di dover nascondere un qualsiasi contenuto solamente in alcune pagine del proprio sito web Joomla ? Ecco, scrivo questo articolo poiché trovandomi nell'impellenza di dover eliminare ( nascondere ) il contenuto del main content solamente in home page ( ovvero la sezione che mostra gli articoli sia in prima pagina che nelle altre pagine del nostro sito web .. Vedi immagine a lato),

 

ho escogitato uno stratagemma, prendendo ad esempio alcune stringhe di codice trovate in alcuni template ed apportandovi alcune modifiche.

 

Il risultato? Una piccola stringa di codice che vi permetterà di far apparire o scomparire un qualsiasi elemento, (in questo caso) condizionandolo all' "itemID" ( ovvero all' id del vostro pulsante menu ) di una qualsiasi pagina.

In soldoni, potete decidere se far apparire o meno un contenuto in una pagina o in più pagine con id x..

Ma passiamo velocemente alla pratica..

Come vedete nell'immagine a lato (area evidenziata in rosso), ogni voce di menù riporta una colonna dove viene specificato un ID univoco.

 

Questo id univoco  può essere richiamato, ed essere utilizzato come filtro da PHP che tramite un semplice "if" ed un confronto tra id ( quello caricato e quello imposto da noi sul quale si effettua il confronto ) sarà in grado di capire se l'id della pagina caricata è != ovvero, "diverso", dall'id della pagina in cui non vogliamo che appaia il contenuto. Qualora questo id risultasse diverso, il contenuto verrà mostrato, altrimenti verrà nascosto.

 

Passiamo alla stringhetta..

Andiamo ad aprire l' index.php del nostro template. Una delle prime righe di codice riportate  dovrebbe essere questa:

 

defined('_JEXEC') or die('Restricted index access');

 

Ecco subito sotto scriviamo questa stringa, che altro non fa che creare una variabile "$pageitemid" con valore = all'id della pagina caricata:

 

$pageitemid = JRequest::getVar('Itemid','');

 

Il risultato dovrebbe essere una cosa del genere:

 

defined('_JEXEC') or die('Restricted index access');
$pageitemid = JRequest::getVar('Itemid','');

 

Ora fatto questo, ci spostiamo un pò più giù, ed andiamo a ritracciare il < div > contenitore, all'interno del quale possiamo riconoscere il codice responsabile dell'apparizione del main content ( o di qualsiasi altro modulo, posizione ecc. ).

 

Un consiglio che mi sento di darvi e che senza dubbio può agevolarvi nella ricerca  è quello di aiutarvi con le classi nel rintracciare un div specifico, o meglio ancora con gli id ( essendo univoci,  se presenti  ), e sopratutto con l'ausilio dello strumento "ispeziona elemento di Chrome" indispensabile in certi casi.

 

Fatto questo, trovato quindi il nostro

andremo ad inglobarlo nella condizione ..

 

 

 

Inseriamo quindi prima e dopo il div da far scomparire il seguente codice al quale sostituiremo il numero "435" ( id d'esempio) con l'id della pagina nella quale vogliamo che il nostro div scompaia:

 

<?php if ($pageitemid != '435') : ?>
 
---CODICE CONDIZIONATO di esempio da non copiare ( div che scompare)---
 
<div id=" usermodules3" class="modulescontainer modulescontainer<?php echo $this->helper->countPositions('user5', 'user6', 'user7'); ?> row-fluid">
 
---CODICE CONDIZIONATO di esempio da non copiare ( div che scompare)---
 
<?php endif; ?>

 

A questo punto salviamo e ricarichiamo la index.php tramite ftp. Fatto questo, ricaricando la pagina, dovremmo aver ottenuto il risultato sperato (immagine a lato).

 

Qualora non riusciate a vedere la modifica al refresh della pagina scaricate la cache del browser e refreshate schiacciando ctrl +F5 dalla tastiera.

Qualora dovessero invece verificarsi problemi, potete ricaricare il backup fatto in precedenza e tutto ritornerà allo stato d'origine.


CommentaCommenta questo articolo sul forum