Visualizzare un widget solo in un determinato forum


Tutorial Visualizzare un widget solo in un determinato forum

Messaggio Da Niko Mar 11 Giu 2013 - 21:43

Titolo del tutorial


Definizione

Con questo tutorial avremo la possibilità di far visualizzare un widget solo all'interno di un determinato forum..

esempio
Sono all'interno del forum Giochi e VideoGiochi e voglio che il widget Flash games sia visualizzato solo quando sto navigando al suo interno: questo è il tutorial che può aiutarvi :bene:



Creazione di un widget

Prima di tutto bisogna creare un widget, andiamo verso Pannello di amministrazione ► Moduli ► Gestione Widget forum ► Creare un widget personalizzato

Ecco il codice da inserire nel "Titolo del widget"
Codice:
<span  class="module_forum [2,3]">TITOLO</span>

La parte più importante è quella che riguarda il titolo del widget. Il titolo è etichettato "span" e contiene la "classe" CSS chiamata "module_forum [2,3]". All'interno delle parentesi vi sono i numeri de forum dove apparirà il widget.

Nota: Si può anche mettere all'interno delle parentesi:
  • I per visualizzarlo anche nell'indice.
  • * per visualizzarlo in tutte le pagine (indice incluso)


Se io inserirò module_forum [I, 23] questo widget sarà visibile nell'indice e nel forum numero 23

Il codice Javascript

Ora bisogna creare il codice Javascript, andiamo quindi verso Pannello di amministrazione ► Moduli ► HTML & JavascriptGestione del codice Javascript

Codice:
$(function(){
  $("div#left table.forumline, div#left div.module, right#left table.forumline, right#left div.module").has("[class^='module_forum']")
      .hide();
  $("[class^='module_forum']").each(function(){           
      var arr = $(this).attr("class").match(/\d+|[\*PI]/gi);
      for(f in arr){
        if(arr[f] == "*" || (arr[f].toUpperCase() == "I" && fa_is_on_index()) || fa_is_in_forum(arr[f])){
            $(this).closest("div#left table.forumline, div#left div.module, right#left table.forumline, right#left div.module")
              .show();
        }
      }       
  });
});
 
function fa_is_on_index(){
  return $("#i_icon_mini_index").parent().attr("href") == $(location).attr('pathname');
}
function fa_is_in_forum(num_forum){
  var found = false;
  $("a[href^='/f'].nav").each(function () {
      href = $(this).attr("href");
      if (href.match(/^\/f\d+/)) {
        numf = parseInt(href.match(/^\/f\d+/)[0].replace("/f", ""));
        if (num_forum == numf) {
            found = true;
        }
      }
      if(found) return false;
  });
 
  return found;
}




Ultima modifica di Niko il Lun 1 Mar 2021 - 10:27 - modificato 1 volta. (Motivazione : Aggiornamento)
Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 25
Messaggi : 8698
Località : Provincia di Varese

Visualizza il profilo https://www.openstudio.one
Niko è stato ringraziato dall'autore di questo topic.

Visualizza l'argomento precedente Visualizza l'argomento successivo Torna in alto


 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.