come nascondere i contenuti di K2 agli utenti non registrati

Come mostrare video di K2 solo agli utenti registrati

In questa guida spiego come far vedere alcuni contenuti di K2 solo se gli utenti sono registrati e quindi loggati al sito, per esempio faccio vedere solo i video e gli allegati.

Questo sistema è utile per i motivi più disparati, per esempio i video o i contenuti sono privati, avete la necessità di raccogliere i dati utente prima di mostrargli i contenuti, ecc, ecc.

A me per esempio è capitato in questo periodo in cui sto lavorando ad un progetto di un cliente che necessita di costruire un catalogo prodotti strutturato su categorie a 3 livelli, quindi :

Macro categoria

          – Sotto categoria

                     – Categoria –> Articolo

Ho utilizzato K2 perchè il sistema nativo di Joomla! non supporta (almeno per ora, chissà in futuro) la categorizzazione a 3 livelli, infatti gestisce fino al secondo livello; oltre a questo mi è stato richiesto di mostrare i video e gli allegati solo agli utenti che hanno fatto accesso al sito, perchè il cliente vuole raccogliere i dati per poi utilizzarli per l’invio di informazioni commerciali.

Probabilmente esistono delle estensioni già pronte, ma siccome chi fà da sè fà per tre 🙂 e dovendo comunque customizzare il template di K2 facendo un override, ho fatto prima a farmi io la modifica a mano !

Come nascondere i video di K2 agli utenti non registrati

come nascondere i contenuti di K2 agli utenti non registrati

Per evitare di perdere le modifiche al primo aggiornamento di K2, consiglio di fare un override del template, qui ho scritto un articolo su come fare un override di un template K2 su Joomla! .

N.B. per inserire i video di K2 è necessario installare ed attivare da gestione plugin, il plugin gratuito All Videos che si scarica da qui

Premessa fatta, partiamo con la modifica del template di K2, yeeeeaa!

Il file da modificare in questo caso è solo 1, cioè quello che renderizza il contenuto dell’articolo di K2, il file in questione è item.php

Una volta aperto il file, proprio in cima troveremo questa parte di codice :

Ora abbiamo la necessità di fare apparire una dicitura tipo “Per visualizzare il contenuto devi essere registrato” solo se l’utente non è loggato al sito, per fare ciò è necessario fare un controllo e poi assegnare una classe diversa al div che conterrà il testo, quindi il codice diventerà :

In sostanza la condizione (if) verifica se l’utente è di tipo “guest” (ossia un visitatore puro e non loggato al sito) e quindi imposterà la classe del div (quello che contiente il testo) a “show”, altrimenti (else) la imposterà su “hide”, semplice no ?

Bene adesso modifichiamo quella parte di codice che regola l’inserimento del video, ecco il codice originale.

N.B. Non vi lascio la riga esatta del file perchè sarà diversa dalla vostra, fate quindi un search della stringa <?php if($this->item->params->get(‘itemVideo’) && !empty($this->item->video)): ?> per trovare la porzione di codice corretta.

Ed ecco il codice modificato

Molto semplicemente la condizione (if) controlla se esiste un video (!empty) e lo renderizza solo se l’utente è diverso da “guest” (!$this->user->guest)

Come mostrare gli allegati di K2 solo agli utenti registrati

Ora se volessimo fare vedere gli allegati, per esempio pdf, solo agli utenti che si sono registrati al sito, il procedimento da fare è il medesimo, ovviamente il codice che renderizza gli allegati di K2 è diverso, quindi ecco il codice originale :

Da sostituire con il seguente codice modificato

Come mostrare il testo “accedi o registrati per visualizzare il contenuto” di K2

Adesso è necessario mostrare un testo addizionale per far capire all’utente che l’articolo contiene dei contenuti privati, riccoriamo anche qui ad una condizione (if) da inserire dopo il codice che renderizza gli allegati (altrove darebbe errore, quindi attenzione).

Ecco il codice :

Come si può notare ho utilizzato la variabile $loginClass che avevo impostato all’inizio del file, in questo modo se l’utente è già loggato al sito non verrà mostrato il messaggio di avviso, altrimenti si.

Ed ecco il risultato

come mostrare i video di K2 solo agli utenti registrati

visualizzare allegati K2 solo agli utenti loggati al sito

Per chi avesse poca dimestichezza con il codice, ad inizio pagina è possibile scaricare l’intero file modificato che va in sostituzione di quello che usato attualmente.

Alla prossima!

Commenta l'articolo

Bisogno di postare codice ? Usa un servizio gratuito come Codeshare altrimenti WordPress formatta male il codice!

Pin It on Pinterest

Condividi l'articolo. Grazie.

Vuoi essere aggiornato ?