Problema con AvReloaded, sh404SEF e i video in lightbox
AvReloaded è una estensione per Joomla che ci facilita la gestione di file multimediali: tramite un apposito modulo e plugin ci consente di riprodurre file audio e video di vari formati, permettendoci anche di creare delle playlist, e dandoci numerosi parametri per personalizzarne l’aspetto. E’ una estensione che rientra nelle nostre fondamentali, ovvero quelle che riteniamo di dover installare sempre sui nostri siti.
Recentemente abbiamo riscontrato e risolto un errore per una condizione particolare, tale per cui aprendo un video si riceveva un errore “Pagina non trovata”. Di seguito tutti i dettagli.
Situazione
Il sito che presentava il problema è realizzato con
- Joomla 1.5.15
- AvReloaded 1.2.6
- sh404SEF 1.5.4.302
Un modulo di AvReloaded presenta sulla colonna destra la possibilità di visualizzare un video. Nella modalità normale, ovvero con il video che scorre nel riquadro esistente, non ci sono stati problemi.
Anomalia
Dopo qualche giorno, riceviamo una segnalazione in merito al fatto che cliccando per far partire i video, si ottiene la pagina di errore di Joomla relativa alla pagina non trovata. Verifichiamo subito il sito, e ci accorgiamo che il problema si presenta perchè nel frattempo è stata attivata la modalità “lightbox” del video: ovvero quando si clicca sulla immagine di anteprima del video, si attiva l’effetto lightbox e il player video diventa una finestra centrale circondata da uno sfondo scuro.
Dopo un po’ di debug, abbiamo finalmente scoperto che il problema era riconducibile all’utilizzo di un link relativo in una pagina “interna” del sito. Ovvero, grazie a sh404SEF la pagina nella quale si trova il video ha un indirizzo del tipo:
http://www.gibilogic.com/paginainterna/
e il plugin di AvReloaded (invocato dal modulo) passa un indirizzo del tipo
index.php?option=com_avreloaded&...
senza la barra iniziale. Il sito cerca quindi di presentare la pagina:
http://www.gibilogic.com/paginainterna/index.php?option=com_avreloaded&...
e ovviamente non la trova.
Soluzione
Si tratta di correggere il file /plugin/content/avreloaded.php, in particolare la funzione _renderToDB, che inizia intorno alla riga 562. La riga
$url = 'index.php?option=com_avreloaded&view=popup&Itemid='.$itemid.'&divid='.$divid;
diventa
$url = '/index.php?option=com_avreloaded&view=popup&Itemid='.$itemid.'&divid='.$divid;
Così il percorso è assoluto e la pagina viene nuovamente trovata.
Nota
L’uso di percorsi relativi è dovuto al fatto che Joomla potrebbe anche essere installato in una sottocartella del sito, ad esempio
http://www.gibilogic.com/sitojoomla/
Tuttavia, se avete intenzione di usare sh404SEF o un altro componente esterno per la riscrittura degli indirizzi, sconsiglio questa modalità di installazione.
Luca
Ciao,
sto avendo lo stesso problema ma, a parte il path relativo a darmi fastidio, avendo installato in una subdirectory cms, ho anche il dvid che viene passato erroneamente…
Si apre il lighbox oppure la window ma il dvid immagino debba essere il nome del video ed invece gli passa l’id “avreloaded1”.
http://www.mivedi.it/cms/index.php?option=com_avreloaded&view=popup&Itemid=1&divid=avreloaded1
Dove prende questo “avreloaded1”????
Francesco
@Luca:
ti sbagli, “divid” non deve contenere il nome del video, ma è un modo per distinguere tra i vari elementi avreloaded presenti nella pagina. Se tu avessi diversi video, avresti infatti come link “divid=avreloaded1”, “divid=avreloaded2”, e così via.
Quindi questo non è un malfunzionamento, ma un comportamento corretto del componente. Se ancora non riesci a vedere i video nonostante quanto spiegato nell’articolo sopra, significa che c’è qualche altro problema.
Luca
Grazie per la risposta. Si in effetti ho sbagliato: seguendo la documentazione il divid è un nome che assegni in maniera arbitraria…nel codice:
{flv popup=”true” divid=”mypopup”}video{/flv}
che rimane nascosto…poi però nella doc si dice di inserire un codice del tipo
{avrpopup type=”window” id=”mypopup”}Klick here to show video in a popup window{/avrpopup}
Ed è qui che ci dovrebbe essere l’assegnazione dell’id al video vero e proprio…ma questo codice nei campi di definizione del modulo del cms joomla non so dove posizionarlo…c’è un campo dedicato “Usepoup” e lo dovrebbe fare automaticamente…credo….qualche idea?