Back to top

Autore Topic: [RISOLTO] integrare un codice javascript ultimi video caricati canale youtube  (Letto 1207 volte)

Offline mariarosaria

  • Appassionato
  • ***
  • Post: 514
  • Sesso: Femmina
  • Comincio a capire...
    • Mostra profilo
Buonasera a tutti.Ho trovato questo metodo interessante per integrare un canale youtube in un modulo. Carica automaticamente gli ultimi video pubblicati sul canale.

https://jsfiddle.net/shaneapen/wh6r1suy/
Ho provato a inserire il codice javascript sia nel campo "custom javascript" integrato nella gestione del template che utilizzo (helix ultimate), sia in un file custom.js nella cartella js del template (avevo trovato a riguardo qualche guida, ma non funziona.

Qualcuno potrebbe darmi delle dritte su dove inserire il codice javascript?
Grazie
« Ultima modifica: 19 Gen 2022, 22:11:09 da mariarosaria »

Offline Limma

  • Abituale
  • ****
  • Post: 1209
  • Sesso: Maschio
    • Mostra profilo
Re:integrare un codice javascript in joomla
« Risposta #1 il: 19 Gen 2022, 09:17:45 »
Nel codice JS che hai linkato, sostituisci il simbolo $ con: jQuery

Ho provato ad utilizzarlo e funziona, ma, l'unico modo è stato quello di inserire lo script direttamente nell'html dell'articolo dove l'ho provato.

Uso molti script js in varie situazioni e, di solito, funzionano sia inserendoli nel campo custom code del template che nel file custom.js di Helix. In questo caso ha funzionato solo inserendolo nell'articolo, ma non chiedermi perché...

Offline mariarosaria

  • Appassionato
  • ***
  • Post: 514
  • Sesso: Femmina
  • Comincio a capire...
    • Mostra profilo
Re:integrare un codice javascript in joomla
« Risposta #2 il: 19 Gen 2022, 14:42:36 »
 :o :-[

Qui ho inserito tutto il codice (eccetto il css), dentro il modulo (accordion, voce "video")

Qui l'ho inserito all'interno di un articolo, ma senza javascript all'interno (anche se ho provato ugualmente). Ho inserito anche il solo javascript nella sezione custom dalle impostazioni di helix.

Però ancora non va... Ovviamente ho sostituito $ con jQuery... Ho provato anche senza sostituzione. A questo punto quale potrebbe essere il problema?

Grazie
« Ultima modifica: 19 Gen 2022, 15:18:59 da mariarosaria »

Offline Limma

  • Abituale
  • ****
  • Post: 1209
  • Sesso: Maschio
    • Mostra profilo
Re:integrare un codice javascript in joomla
« Risposta #3 il: 19 Gen 2022, 15:41:18 »
Nel primo dei due, quello col codice scritto direttamente nel modulo, devi inserire il codice js dentro il tag <script></script>.
Se non lo fai, non solo non funziona, ma compare il "testo" del codice come se fosse, appunto, un paragrafo di testo.

Offline mariarosaria

  • Appassionato
  • ***
  • Post: 514
  • Sesso: Femmina
  • Comincio a capire...
    • Mostra profilo
[RISOLTO]Re:integrare un codice javascript in joomla
« Risposta #4 il: 19 Gen 2022, 16:08:13 »
Ok, perfetto, adesso sì.


Avevo copiato direttamente da jsfiddle, senza pensare che ovviamente nella sua finestra lo leggeva automaticamente come codice.
Però in effetti mi sembrava strano che cominciasse con 'var'  ;D


Scusami, ma per ora mi arrangio solo con css e html

Comunque farò qualche altra prova anche da me con custom.js e il custom del template. Ovviamente neanche lì avevo messo il tag script, giusto per fare una controverifica del fatto che funziona solo dentro la stessa pagina.

Grazie  ;)
« Ultima modifica: 19 Gen 2022, 16:13:15 da mariarosaria »

Offline Limma

  • Abituale
  • ****
  • Post: 1209
  • Sesso: Maschio
    • Mostra profilo
Re:[RISOLTO] integrare un codice javascript in joomla
« Risposta #5 il: 19 Gen 2022, 20:51:54 »
Inserisci del css per rendere responsive l'iframe di YouTube perché da smartphone è tagliato sulla destra, naturalmente...


Facci sapere se riesci a togliere lo script dall'articolo (o quel che è) e a farlo funzionare dal custom.js
In alternativa puoi provare a fare un nuovo file js e richiamarlo nell'header del template.

Offline mariarosaria

  • Appassionato
  • ***
  • Post: 514
  • Sesso: Femmina
  • Comincio a capire...
    • Mostra profilo
Re:[RISOLTO] integrare un codice javascript in joomla
« Risposta #6 il: 19 Gen 2022, 22:04:38 »
Qui il codice responsive e inserito in griglia bootstrap a 3 colonne che poi diventano 1 se qualcuno volesse già prelevarlo bell'e pronto.
Codice: [Seleziona]
<div class="grid">
  <div class="row">
    <div class="col-12 col-lg-4">
<div class="respon"><iframe class="latestVideoEmbed" vnum='0' cid="sostituire-con-id-canale" width="600" height="340" frameborder="0" allowfullscreen></iframe>
  <p id="video-title">Lorem ipsum</p></div>
</div>
   
     <div class="col-12 col-lg-4">
<div class="respon"><iframe class="latestVideoEmbed" vnum='1' cid="sostituire-con-id-canale" width="600" height="340" frameborder="0" allowfullscreen></iframe>
  <p id="video-title">Lorem ipsum</p></div>
</div>

 <div class="col-12 col-lg-4">
<div class="respon"><iframe class="latestVideoEmbed" vnum='2' cid="sostituire-con-id-canale" width="600" height="340" frameborder="0" allowfullscreen></iframe>
  <p id="video-title">Lorem ipsum</p></div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>var reqURL = "https://api.rss2json.com/v1/api.json?rss_url=" + encodeURIComponent("https://www.youtube.com/feeds/videos.xml?channel_id=");

function loadVideo(iframe) {
  jQuery.getJSON(reqURL + iframe.getAttribute('cid'),
    function(data) {
      var videoNumber = (iframe.getAttribute('vnum') ? Number(iframe.getAttribute('vnum')) : 0);
      console.log(videoNumber);
      var link = data.items[videoNumber].link;
      var title=data.items[videoNumber].title;
      id = link.substr(link.indexOf("=") + 1);
      iframe.setAttribute("src", "https://youtube.com/embed/" + id + "?controls=0&autoplay=0");
      iframe.parentElement.querySelector("#video-title").innerText = title;
    }
  );
}

var iframes = document.getElementsByClassName('latestVideoEmbed');
for (var i = 0, len = iframes.length; i < len; i++) {
  loadVideo(iframes[i]);
}
</script>

La classe per la responsività è
Codice: [Seleziona]
.respon{position:relative;width:100%;height:0;padding-bottom:56.27198%;}
.respon iframe{position:absolute;top:0;left:0;width:100%;height:100%;}

vnum='numero'  ci permettere di caricare in ordine cronologico inverso i video del canale (0 = ultimo, 1 = penultimo, 2 = terzultimo) e così via... Dopo vnum, cid deve corrispondere all'id del canale
Il caricamento non è velocissimo, ma dato che sta su una sola pagina, pazienza...

Se poi si riuscisse a integrare questa  guida con lo stesso codice sarebbe proprio una favola e si velocizzerebbe il tutto... ma mi sembra difficile, per come funziona il sistema della guida joomla (mi pare siano due meccanismi incompatibili). La comodità del codice è che non bisogna stare lì a caricare manualmente gli ultimi video pubblicati, ma vanno in automatico...

Lo script fuori dall'articolo non funziona neanche a me.

Citazione
In alternativa puoi provare a fare un nuovo file js e richiamarlo nell'header del template.
Ci proverò e ti farò sapere, ma non saprei neanche da dove cominciare, quindi prima mi toccherà studiare.

Se poi qualcuno più esperto di js ci saprà dire dove potrebbe essere l' "inghippo" dell'extra pagina

Grazie a tutti
« Ultima modifica: 19 Gen 2022, 22:07:16 da mariarosaria »

Offline mariarosaria

  • Appassionato
  • ***
  • Post: 514
  • Sesso: Femmina
  • Comincio a capire...
    • Mostra profilo
Qui la dimostrazione finale, sezione "Video" dell'accordion.

Mi permetto di modificare il titolo del post, dato che si tratta di un javascript specifico (e non soltanto di una integrazione in generale del codice) per i video youtube e magari qualcun altro potrebbe cercare questo nello specifico.

Se poi i moderatori non dovessero essere d'accordo... sistemino come meglio credono.

 



Web Design Bolzano Kreatif