Manuale MediaWiki/Versione stampabile

Da Naturpedia.

altre wiki: navigazione, ricerca


Schiacciando qui vedrai sparire la barra di navigazione alla tua sinistra (non utile al momento della stampa). Ti consigliamo poi di aggiornare questa pagina, se vuoi essere sicuro di stampare anche le ultime modifiche apportate da qualcun altro negli ultimi minuti.


Copertina


Benvenuti nel wikilibro:

Manuale MediaWiki

Come installare il software Media Wiki


Guida Completa alle varie versioni e AddOnn

Vai ai contenuti >>



Indice/Sommario

Manuale online per l'installazione di MediaWiki


IntroduzioneFile:100%.png


  • Come installare e gestire un wiki?
  • Come funziona il Software Wiki?
  • Come creare velocemente un wiki, e subito operativo?


Con questa Guida, cercheremo di rispondere a tutte queste domande in maniera semplice e chiara, e di supplire all'innumerevole vuoto d'informazione mancante in italiano, su quest'importantissimo argomento. Un Wiki, infatti, è risaputo: è la maniera migliore per condividere informazione e contenuti in rete, di vario genere.


L'INSTALLAZIONE

Per sapere dove scaricare il software, e come installarlo, vai a:

5 semplici passi

Le varie Versioni

Le Estensioni

Il LocalSetting


LA GRAFICA

Cambiare il Logo

Cambiare Pagina Principale e messaggi di sistema

Mettere le pagine colorate

Mettere i "bottoncini" aggiuntivi "UserMarks"

L'Edittools

Modificare la Barra Laterale

Cancellare i vandalismi da "Ultime modifiche"


Note conclusive

Versione stampabile

  • Versione stampabileFile:100%.png


Link

Riferimenti esterni

La documentazione ufficiale e gli aggiornamenti del software si trovano a questi indirizzi:

Link ad altre Guide non ufficiali

Altri progetti

  • Collabora a Wikibooks Wikibooks contiene testi o manuali su Manuale MediaWiki/Versione stampabile
  • Collabora a Commons Wikimedia Commons contiene file multimediali su Manuale MediaWiki/Versione stampabile
  • Collabora a Meta-Wiki Meta-Wiki contiene informazioni su Manuale MediaWiki/Versione stampabile
  • Altri progetti wiki fuori da Wikimedia

  • Collabora ad Anarcopedia Anarchopedia contiene un wikilibro gemello di questo, sullo stesso argomento di MediaWiki
  • Collabora ad Ekopedia Ekopedia contiene un wikilibro gemello di questo, sullo stesso argomento di MediaWiki






  • GNU head, testa con barba tipica e corna arricciate, con un sorriso soddisfatto e sguardo profondo.
    È permesso copiare, distribuire e/o modificare questo documento in base ai termini della GNU Free Documentation License, Versione 1.2 o successive. Una copia della licenza è inclusa nella sezione intitolata "Testo della GNU Free Documentation License".
    Soggetto a disclaimer.




    Introduzione

    Questo Manuale, vuole essere una Guida veloce per installarsi un wiki mediawiki e averlo subito operativo.

    Bandiremo concetti e paroloni difficili, a favore di quelli più semplici, mettendo richiami per termini complicati ed eventuali approfondimenti.


    Una wiki può essere utilizzata come mezzo di comunicazione in un team o per gestire documentazione, laddove c'è bisogno di un sistema rapido e semplice per organizzare un lavoro d'equipe; in poche parole, Content Management per tutti.

    Un wiki mette in grado persone differenti di unire i loro sforzi più rapidamente. In ufficio, quando devi introdurre nuovi impiegati, distribuire l'elenco telefonico, memorizzare note, pianificare viaggi, documentare progetti, preparare riunioni, o descrivere processi interni.

    Per molti progetti di software libero le wiki hanno assunto un ruolo importante in qualche zona non meglio definita fra il manuale, la FAQ, l'IRC e le mailing list.

    Ecco perché l'esigenza di scrivere questo Manuale in italiano, visto che, attualmente, la documentazione si trova tutta in inglese.


    AVVERTENZA:

    Alcune delle cose descritte in questo Manuale, seppure efficaci, al lato pratico potrebbero non funzionarvi se possedete un servizio di hosting ed un dominio "difettosi"; che non vi consentano, cioè, di gestire in piena autonomia tutti i permessi delle relative cartelle e sottocartelle, root principali e secondarie, ecc.

    Vedi, Estensioni per cui rendere scrivibile delle Cartelle.

    Stessa cosa dicasi per il Database, nel quale appunto verranno immagazinati tutti i dati.

    Se prevedete di gestire molto traffico, inoltre, dovreste per lo stesso motivo premunirvi di un ottimo servizio che lo gestisca, altrimenti il vostro wiki potrebbe diventare estremamente "lento" in scrittura; ossia: quando si editano gli articoli, e talvolta anche solo per visualizzarli.


    Link di approfondimento:

    Qui, per esempio,

    http://www.mediawiki.org/wiki/Manual:What_is_MediaWiki%3F/it

    dice.. testuale:

    "MediaWiki è stato pensato per girare su siti con un inteso traffico web come http://www.wikipedia.org . Essendo stato ottimizzato per questo uso, portebbe non operare al meglio su siti di piccole dimensioni e con poca capienza di banda."


    Mentre, qui:

    http://www.mediawiki.org/wiki/Manual:Installation_requirements/it

    vengono spiegati i requisiti minimi di sistema.


    ---

    Nota

    Questo Manuale, è testato principalmente sulla versione 1.14.1 del software. ---

    Indice




    Installazione

    5 semplici passi

    Per installare il software mediawiki, ed avere così il vostro wiki,

    si seguono questi semplici passi:


    1. si scarica il software (vedi capitolo successivo per la scelta della versione)
    2. una volta sul Pc, si descomprime la cartella (se usate windows e avete scaricato dal sito originale, probabilmente avrete bisogno di 7-Zip[2] per descomprimere)
    3. infine, si copia il contenuto via FTP sul server dove andrete a installarlo (supponiamo altervista)
    4. una volta ivi copiato il contenuto, andremo a cliccare sul nostro dominio (per esempio: "miapedia.altervista.org") e ci apparirà la schermata che automaticamente ci guiderà all'installazione del software, tramite la compilazione di campi che adesso vedremo.
    5. rendere alcune sottocartelle (le specificheremo bene, più avanti) "scrivibili" (codice permessi: "777") ed avere, ovviamente, Php-MySQL sul server (ma ormai ce l'hanno tutti; quindi, ci sembra superfluo sottolinearlo; e anche le sottocartelle: in quasi tutti i server sono già predisposte con questi permessi).


    Dove copiare

    Il nostro consiglio è di copiare solo il contenuto della cartella (non anche la cartella quindi, ma solo i files che essa contiene), [1] sotto la root principale del vostro server. Il motivo? Così vi eviterete la complicazione (che è ben grande! credetemelo!!) di dover creare un "reindirizzamento" per quei browser che hanno difficoltà a visualizzare da php, come Opera ad esempio, ed il vostro wiki sarà subito visibile da tutti in pratica.


    I programmi per lavorare via Ftp

    Se usate come browser Mozilla vi consigliamo una semplice estensione, che a volte può funzionare meglio di altri software e può essere anche molto più veloce nel copiare. L'estensione (Add-Ons) è questa: FireFTP.


    Potete scaricarla qui:

    oppure, da qui:


    Lista dei software

    Una lista completa in inglese dei software per lavorare in Ftp, la trovate qui:


    oppure. qui:


    Quello più comunemente usato, è: Filezilla. (gratuito)


    Installazione: riempire i campi

    Nelle schermate iniziali

    Vai a: Installazione: Schermate iniziali.

    come apprezzate dalle immagini, troverete dei campi vuoti da riempire.


    Ora vedremo meglio nel dettaglio cosa sono e come impostarli, per far sì che la nostra installazione vada a buon fine senza errori.

    Vai a: Installazione: Riempire i campi.

    (clicca sui link)


    Per approfondire, vedi Local Settings: Configurare permessi ed altri parametri.


    Problemi vari

    Problema creazione delle immagini thumbnail su Mediawiki

    Su alcuni server gratuiti come Altervista, ma anche su altri (vedi Aruba, che è a pagamento), si possono presentare dei problemi sulla creazioni delle "anteprime", cioè, la creazione delle immagini thumbnail, che sono quelle che si creano quando caricate un'immagine e la volete ridimensionare con il comando "thumb", appunto. Nelle ultime versioni di Mediawiki, sembra che ciò viene risolto, senza ulteriori modifiche da parte dell'utente.

    Mentre, nella nostra che abbiamo usato come test, invece, per fare questo Manuale, che è la 1.14 ricordiamo, si è dovuti procedere in questo modo:

    è bastato cambiare nel Localsettings, il valore, da true a false, della stringa


    $wgUseImageMagick = true;

    $wgUseImageMagick = false;


    che corrisponde a lasciare l'uso di ImageMagik a favore di un altro programma di creazione per le miniature, installato quasi sempre ormai di default sulla maggior parte dei provider, che si attiva in automatico nel momento in cui, noi, appunto, disattiviamo il primo.


    Link di approfondimento


    PHP 5.3.2-1ubuntu4.7: incompatibile

    In breve, abbiamo scoperto che la versione di Php 5.3.2-1ubuntu4.7 (PHP 5.3.2-1ubuntu4.7) è incompatibile con Mediawiki (almeno con la versione 1.14.1, che è quella che abbiamo "testato"), e sul sito di Mediawiki non lo dicono, per cui ora lo sapete.

    Ciò ch'è strano è che, non vi apparirà nemmeno nessun "warning" [2] al momento dell'installazione, com'è invece consetudine quando il software detecta qualcosa che non va. Quindi, è importante che lo sappiate prima.

    Si tratta di un errore e una mancanza grave che andrebbe segnalato al loro sito ufficiale, per chi sa l'inglese, dato che questa versione "suppostamente bacata" di Php è normalmente installata su tutti i Pc del mondo che usano Ubuntu 10.04.


    Ecco quanto è invece, attualmente, riportato sul loro sito ufficiale:


    Warning: PHP 5.3.1 has a bug in it and is not supported by MediaWiki.
    You should use PHP 5.3.0 or PHP 5.3.2+ instead.
    However, due to a security issue with PHP it is strongly advised to
    use PHP 5.2.17 or PHP 5.3.5+


    In pratica, dicono che la versione 5.3.2 o superiore vanno bene; ma, in base alla nostra esperienza, ciò non è vero.

    Al lato pratico, si è dovuti "retrocedere" il PHP di questo server alla versione 5.2.10, dopodichè si è riusciti ad andare avanti (dava problemi di aggiornamento del database, quando, per esempio, si è iniziati col cambiare la pagina principale); solo allora il wiki ha funzionato.


    Messaggi di errore (Warning!) più comuni

    I Messaggi di Errore più comuni ('Warning!') durante l'installazione, sono:

    Acune note di warning non indicano errori, ma solo "situazioni", nell'ambiente dove si andrà a installare il software, che potrebbero generarli: essere fonte di problemi, e che meritano quindi attenzione.

    Link


    Installazione Locale

    Vai a: Installazione in locale.


    Note

    1. Cioè, col mouse, invece di "cliccare tutta la cartella" relativa alla vostra versione, appena scaricata -per esempio, mediawiki 14.0- e poi fare copia-incolla, entrare prima dentro (alla cartella), poi selezionare "tutti" i file (da dentro la Cartella), e, infine, ora sì, copiare andando a incollarli dentro alla root principale. Noi consigliamo, appena "sotto", come spiegato nel Manuale, di modo che il "tuo dominio" vi arrivi automaticamente, senza ulteriori complicazioni di reindirizzamenti..vari.
    2. messaggi di errore dati dal sistema






    Riempire i Campi



    La primissima schermata che vi appare sarà simile a questa; come vedete, la scritta in inglese c'invita a cliccarci sopra per iniziare con l'installazione.


    • Schermata_iniziale_1.png

    Una volta fattolo, appare la successiva schermata, qui "spezzettata" nelle prossime immagini:



    A

    • Schermata_iniziale_2.png

    B

    • Schermata_iniziale_3.png

    C

    • Schermata_iniziale_4.png

    D

    • Schermata_iniziale_5.png

    E

    • Schermata_iniziale_6.png

    F

    • Schermata_iniziale_7.png



    Messaggi di Errore

    • Schermata_iniziale_0.png


    Quest'ultima immagine, in realtà, la trovate all'inizio; e non è altro che: un insieme di messaggi di avvertimento, di errori possibili o incompletezze, che potesse avere il vostro server sul quale vi state accingendo ad installare il vostro wiki di mediawiki.

    Come vedete, lì su altervista ne segnala alcuni: questo server, infatti, non è dei migliori per chi è alle prime armi ad installare il software mediawiki; però, resta al momento uno dei più semplici da usare per farci delle prove veloci. Quindi, lo abbiamo usato. Vedremo poi in dettaglio cosa significano quegli avvertimenti (anche perché, "comuni" pure su altri server) e come ovviarli.





    Questi, i campi importanti da impostare all'inizio

    (tutto il resto, se siete alle prime armi, noi suggeriamo di lasciarlo così com'è, di default). Tenete presente che, se vorrete cambiarli dopo, potrete tranquillamente farlo.

    Wiki name:           nome del tuo wiki, per esempio: Naturpedia
    
    Contact e-mail:      mail per il contatto, per esempio: naturpedia@altervista.org
    
    Language:     IT (oppure, quello che volte; inglese, ecc)
    
    
    Copyright/license:  selezionare la preferita
    
       * No license metadata
       * Public Domain
       * GNU Free Documentation License 1.2
       * GNU Free Documentation License 1.3
       * A Creative Commons license - choose
    
    
    
    Admin username:    WikiSysop (o altro nome: da evitare Admin, perchè può dar problemi nelle Chat IRC)
    Password:          (a scelta)
    Password confirm:  (a scelta)
    
    
    
    Database host:       indirizzo web del Database MySQL; 
                         su altervista è: localhost
    
    Database name:       nome del Database (si crea dal Pannello di Controllo del server del vostro dominio) 
      
    
    DB username:         username del database
    DB password:         (password del Database)
    DB password confirm: (password del Database)
    
    prefisso tabelle     per esempio: wk14_  
                         Si può omettere. Tuttavia, risulta molto utile se installate più wiki su uno stesso server
                         che non permette creare altri database, in quanto serve per non confondere le tabelle
                         fra i diversi wiki installati, garantendo così un maggior ordine.
    
    

    Questi sono i campi principali da riempire che trovate, come vedete nelle schermate iniziali.






    Versioni del software

    Dalla 1.12 in poi, le versioni si fanno più stabili e complete per integrare software ausiliario. Molti scelgono la 1.14 o la 1.15, perché l'ultima presenta problemi d'incompatibilità con molte estensioni. Stesso motivo, per cui non è molto consigliabile installare una versione antecedente alla 1.12.

    Diamo di seguito i link dove poter effettuar il download delle varie versioni del software MediaWiki.

    Link ufficiali per il Download



    v.22


    v.21


    v.20


    v.19


    v.18

    v.17

    v.16

    v.15

    v.14

    v.13

    v.12

    v.11

    v.10

    v.09

    v.08

    v.07

    v.06

    v.05

    v.04

    v.03

    Snapshot


    Link "non ufficiali" per il Download





    Estensioni

    Cosa sono, come installarle

    Per chi è abituato a usare il browser Mozilla Firefox, non gli è nuovo questo concetto: le estensioni, deducendolo dalla parola stessa, sono dei pezzi di codice in più che si aggiungono al software di base, per darle diverse funzionalità extra che, il pacchetto originale, non ha.

    Ecco così che, possiamo in definitiva, aggiungere quasi tutto quello che vogliamo sul nostro MediaWiki.

    L'installazione

    L'installazione di un'estensione, di solito, consiste unicamente di due passaggi:

    1. Si copia via Ftp la cartella e/o il file .php dell'estensione dell'estensione stessa, nell'omonima sul vostro server,
    2. Si attiva poi l'Estensione sul file LocalSettings, apponendovi al fondo una stringa.
    Vedi, il Local Settings: installazione delle Estensioni.
    Vedi, :mw:Manual:Extensions.


    Estensioni Mediawiki (più importanti)

    Per approfondire, vedi Estensioni/Download.

    Elenchiamo qui di seguito le Estensioni più importanti di MediaWiki, cercando di dare una panoramica d'insieme tra: quelle più importanti di tutte, le "essenziali", e quelle "superflue" al suo funzionamento basico. E, come nel capitolo successivo vedremo poi come attivarle sul LocalSettings, diamo accanto di alcune delucidazioni su stringhe specifiche che poi ritroverete lì, accanto a quella di attivazione.

    Nota: non sono messe in ordine alfabetico, ma d'importanza.


    ESSENZIALI



    Per le CATEGORIE

    1. CategoryTree Ramifica le Categorie
    2. ManageCategories Visualizza un comodo menu a tendina per le Categorie (Versione migliorata e tradotta all'italiano, per Naturpedia)
    3. ArticleToCategory2 Questa, è incompatibile con l'altra (simile) di "articletocategory". Attivate o una, o l'altra: non tutt'e due assieme. Hanno funzione simile; entrambe permettono di creare articoli direttamente dalle pagine delle Categorie. Questa è migliore però, a nostro avviso, perché invece di un box soltanto, ne mette due; l'altro, serve per creare anche le Categorie (Versione migliorata e tradotta all'italiano, per Naturpedia)

    Per abilitare certi comandi essenziali

    Queste prime due sono simili (si può tranquillamente omettere la seconda) e servono per poter far visualizzare e formattare i Template.

    1. ParserFunctions[15]
    2. StringFunctions
    3. ExpandTemplates
    4. ConditionalTemplate
    5. Cite Per la formattazione delle note a pie' di pagina.
    6. CharInsert Serve per creare l'Edittools
    7. InputBox Serve per creare box di ricerca.
    8. CreateBox (Traduzione italiana migliorata per Naturpedia) è una Versione Migliorata di Input Box. Vi consigliamo di tenere entrambe. "CreateBox", è infatti più specifica per aiutare a 'creare' gli articoli, piuttosto che 'cercarli'.
    9. Mimetex alternative Questa, riesce a far visualizzare senza nessun settaggio extra non solo i simboli matematici, ma anche le immagini generate nei Pdf. Per i simboli matematici bisogna usare nelle pagine il nuovo TAG generato: 'tex', al posto di 'match', per cui si va a toccare anche il codice del file EditPage.php, nella directory /includes/ dove avete installato il vostro wiki, per fare in modo che la bottoniera del vostro Edit venga aggiornata nelle pagine. (vedi, il Manuale della variabile per maggiori informazioni).
      • il pezzo di codice da sostituire è questo:
    array(	'image'	=>'button_math.png',
    	'open'	=>	"<math>",
    	'close'	=>	"</math>",
    	'sample'=>	wfMsg('math_sample'),
    	'tip'	=>	wfMsg('math_tip'),
    	'key'	=>	'C'
    

    Con questo:

    array(	'image'	=>'button_math.png',
    	'open'	=>	"<tex>",
    	'close'	=>	"</tex>",
    	'sample'=>	wfMsg('math_sample'),
    	'tip'	=>	wfMsg('math_tip'),
    	'key'	=>	'C'
    
    Vai a: Estensione Mimetex.

    Per visualizzare VIDEO, o altri tipi di file multimediali

    1. MultiUpload Permette l'Upload di più immagini o file multimediali sul wiki, contemporaneamente.
      • $wgMaxUploadFiles = 20; //Specificare qui il numero. Di default, sono cinque.
    2. OggHandler Permette la visualizzazione con Java, dei piccoli filmati .ogg

    Per PDF, PdfBook e altri tipi di documenti

    1. Collection Va settata bene per le immagini, altrimenti stampa solo il testo delle voci: è sufficiente e completa, sia per generare Pdf singoli (dalle pagine del vostro wiki) che per creare Libri (unendo assieme le voci, delle pagine del vostro wiki). Ma potete provare anche le altre.
    Vai a: Estensione Collection.
    1. GoogleDocs per visualizzare i Documenti Fogli di lavoro di google Doc, sul vostro wiki. Può essere superflua se avete già installato quella di Widget che inoltre, vi permette di visualizzare bene anche gli altri tipi di documenti presenti su Google doc.

    Per la Cancellazione e lo SPAM

    L'estensione Confirm Edit e il Captcha, sia esso il Visual o il Classico, vanno settate assieme prima di attivarle per farle funzionare. Altrimenti non vanno. Le diamo disattivate, quindi nel nostro LocalSettings che vi forniamo.

    1. ConfirmEdit
    2. VisualMathCaptcha (Versione migliorata)
      • Questo e' il VisualCaptcha, migliore e piu' sicuro di quello standard di Google fornito piu' in basso.
      • E' completo, e quindi vi consigliamo di attivarlo; prima di farlo però, andate a modificare anche il ConfermEdit.php dell'omonima cartella (sotto "Estensions", nel vostro wiki),
      • e sostituite lì il Simple Captcha di Default con il Visual Captcha.
      • ( Al posto di: $wgCaptchaClass = 'SimpleCaptcha' mettete: $wgCaptchaClass = 'VisualMathConfirmCaptcha' )
    Cancellazioni, monitoraggio e blocchi utenti
    1. Renameuser Questa, è per poter rinominare gli Utenti.
      • $wgGroupPermissions['sysop']['renameuser'] = true; //Si può qui specificare chi può avere questo privilegio.
    2. Password Reset Per poter cambiare la password degli Utenti.
      • $wgGroupPermissions['sysop']['passwordreset'] = true; //qui si scegli chi può cambiare la password degli Utenti.
    3. Maintenance Questa, abilita certe altre funzioni extra per il mantenimento del wiki, molto utili (tra cui, la possibilità sempre di cambiare le password).
      • $wgGroupPermissions['bureaucrat']['maintenance'] = true; //Di default, solo i burocrati possono accedere a questa prima estensione. Cambiare da 'burocrate' a un gruppo diverso per consentire ad un gruppo diverso di accedere
    4. UserRightsList Permette visualizzare una comoda lista di tutti gli utenti registrati e cambiare in maniera facile i loro privilegi. (Versione migliorata)
    5. UserLoginLog Consente di vedere l'IP di un Utente loggato (nella pagina: "Special:Log"). (Simile a CheckUser, ma funzionante fin da subito, senza settaggi)
    6. UserMerge Permette di cancellare gli Usuari senza pericoli per il DATABASE, tramite l'Unione l'un con l'altro.
    7. EditUser Permette agli utenti con i privilegi necessari, di modificare e visualizzare le preferenze personali degli altri utenti. (Versione tradotta all'italiano per Naturpedia)
      • $wgGroupPermissions['bureaucrat']['edituser'] = true; //User che possono 'spiare' o modificare, le 'preferenze' degli altri.
      • $wgGroupPermissions['sysop']['edituser-exempt'] = true; //User 'esenti' dall'essere modificati o 'visualizzati'.
      • Attenzione: Abbiamo riscontrato problemi installandola sulla versione 1.16 del software mediawiki.
    8. AbuseFilter
    9. ConfirmAccount
    Blocchi nelle pagine, filtri di parole
    1. AuthorProtect Permette agli utenti registrati, di bloccare le proprie pagine create, dagli edit altrui. Solo gli amministratori, potranno infatti, editarle o cambiarle.
      • Attenzione: se la installate, e dopo la disattivate, le pagine "protette" dagli Utenti non passeranno automaticamente sotto quelle "protette" dagli Amministratori (Sysop); almeno, non di default. Al riattivarla comunque, si ripristineranno i vecchi permessi (dati dagli User).
    2. ProtectSection Permette agli amministratori, la protezione di sezioni parziali nelle pagine.
    3. SpamRegex permette filtri di parole, sulla creazione dei contenuti delle pagine: per esempio, solo sul titolo, ecc.
      • (va creata prima una Tabella sul Database; e, sembra difettosa con le ultime versioni -1.15 in poi-)
    Cancellazione di pagine
    1. Nuke Consente agli amministratori la cancellazione in massa, delle pagine create da un IP o user, in blocco (verranno cioè cancellate tutte le pagine create da quell'IP o da quell'Utente).
    2. DeletePagePermanently Permette la cancellazione permanente di pagine: aggiunge la linguetta Delete Permanently alle voci (può essere pericolosa però, se non ci si fida al 100% dei propri collaboratori; o, semplicemente, se si e' distratti)
      • il codice seguente, permette di scegliere a quali Namespaces applicare la linguetta; e, in fondo, il gruppo di utenti che potranno usarla:
        • $wgDeletePagePermanentlyNamespaces = array( Mettere "false" su quelli che non si vuole applicare
        • NS_MAIN => true, Voci
        • NS_IMAGE => true, Immagini (File)
        • NS_IMAGE_TALK => true, Discussioni delle Immagini
        • NS_CATEGORY => true, Categorie
        • NS_CATEGORY_TALK => true, Discussioni delle Categorie
        • NS_MEDIAWIKI => false, Pagine MediaWiki (di servizio)
        • NS_MEDIAWIKI_TALK => true, Discussioni delle Pagine MediaWiki
        • NS_HELP => true, Aiuto
        • NS_HELP_TALK => true, Discussioni delle Pagine di Aiuto
        • NS_PROJECT => true, Progetti
        • NS_PROJECT_TALK => true, Discussioni delle Pagine dei Progetti
        • NS_TEMPLATE => true, Template
        • NS_TEMPLATE_TALK => true, Discussioni delle Pagine dei Template
        • NS_WIDGET => false, Wigget
        • NS_WIDGET_TALK => true, Discussioni delle Pagine dei Wigget
        • NS_USER => true, Pagine Utenti
        • NS_USER_TALK => true, Discussioni delle Pagine degli Utenti
        • NS_TALK => true, Discussioni delle Voci
        • );
        • $wgGroupPermissions['*'] ['deleteperm'] = false; Anonimi
        • $wgGroupPermissions['user'] ['deleteperm'] = false; Loggati
        • $wgGroupPermissions['bureaucrat']['deleteperm'] = true; Burocrati
        • $wgGroupPermissions['sysop'] ['deleteperm'] = false; Amministratori
    3. SpecialDeleteOldRevisions2 permette la cancellazione solo delle vecchie revisioni delle voci. Può essere meno pericolosa della prima, perché qui non appare la 'linguetta' e il risultato è abbastanza identico. (Versione migliorata).
      • $wgGroupPermissions['sysop']['DeleteOldRevisions'] = true; gruppo autorizzato.
    immagine della linguetta aggiuntiva data dall'estensione DeletePermanently


    Per gli INTERLINK

    1. Interwiki Vi sevirà per le tabelle, anche se decidete di non utilizzare gl'interlink. La diamo quindi attiva, nel nostro LocalSettings.
    Vedi, Barra Laterale: Come mettere i Collegamenti interlingua e ad altri wiki.


    -- -- --



    OPZIONALI



    CATEGORIE

    1. CategoryWatch Permette agli Utenti loggati di mettere sotto 'osservazione' anche le pagine delle Categorie, oltre a quelle degli articoli.
    2. GoToCategory Permette d'includere nel motore di ricerca anche le categorie. Si verrà così reindirizzati all'omonima categoria, quando questa è digitata; altrimenti alla voce, se esiste
    3. MultiCategorySearch Crea una nuova pagina speciale per la ricerca di voci in più categorie (Versione migliorata tradotta all'italiano, per Naturpedia)
    4. RandomInCategory Permette, tramite una pagina speciale, che sia scelta a caso una pagina, solo dentro ad una determinata Categoria
    5. Add Article to Category Questa, è incompatibile con l'altra (simile) di "ArticleToCategory2". Attivate o una, o l'altra: non tutt'e due assieme.
      • Hanno funzione simile; entrambe permettono di creare articoli direttamente dalle pagine delle Categorie

    Questa successiva, dopo che le abbiamo corretto qualche errore, visualizza un comodo messaggio ricordando a chi salva una voce, senza categoria, che deve metterla. Tuttavia, è ancora difettosa: rallenta la wiki. Al momento non usatela se avete wiki molto grandi o con pagine molto lunghe.

    1. WarnNoCategories (Versione migliorata)
      • $wgWarnNoCategoriesOnNamespace[NS_MAIN] = true; qui, si può specificare per quali Namespaces deve funzionare
    Vai a: Estensione WarnNoCategories.

    Per abilitare certi comandi utili, ma non essenziali

    1. Contributors Visulizza una nuova voce, sulla barra laterale sinistra, per visualizzare i contribuenti e gli autori degli articoli.
    2. NewestPages Crea una Pagina Speciale nuova, per poter visualizzare le pagine create recentemente: per Namespaces e per Utente.
    3. Poem Serve per formattare testi poetici, ma vi può servire anche per i codici.
    4. Social Bookmarking Per segnalare sui Social Forum gli articoli. (Versione migliorata per Naturpedia)
    5. SimpleCalendar Permette la visualizzazione di un piccolo calendario. Funziona tramite Tag, da apporre alle voci.
    6. ContactPage Crea un Modulo di Contatto, una Pagina Speciale nuova per chi vuole scrivere all'amministratore. Il vantaggio, è che non siete cosi' obbligati a mettere una mail pubblica.
      • $wgContactUser = 'WikiSysop'; qui si può specificare il nome utente che riceverà la posta
      • $wgContactSenderName = 'Modulo di Contatto' qui, si può cambiare il nome al modulo
    7. SidebarDonateBox Serve per aggiungere sulla barra laterale il box Donate di Paypal.
      • #$egSidebarDonateBoxContent = 'code Paypal'; s'immette qui il codice-html paypal.
    8. CustomTitle Per la modifica dei titoli delle pagine. Può essere superflua: si può infatti creare lo stesso effetto, con un semplice Template.
    9. CustomUserCreateForm permetterebbe di aggiungere campi aggiuntivi a chi si registra, tipo telefono, indirizzo, ecc, ma la Guida online non spiega nulla in dettaglio; presupponendo che chiunque la installi sia un esperto di .php e sappia come modificare il codice. La diamo quindi disattivata, anche se utile.
    10. TransformChanges Cambia l'aspetto Grafico della pagina Speciale:UltimeModifiche; può piacere, come non piacere, per cui la diamo disattivata.
    11. GoogleSiteSearch Cambia il motore di ricerca interno di default, con quello di Google. Per attivarla, dovete anche sostituire in /include/ il file SpecialSearch.php con quello che vi diamo noi, oppure cambiare il pezzo di codice specificato nella guida.
    12. AllowAnchorTags Crea un Tag alternativo per linkare. Può essere superflua, se non usate molto i link esterni.
    13. SpecialCite[16] Visulizza una nuova voce sulla barra laterale sinistra, per poter "citare" più facilmente gli articoli del wiki su altri spazi web.
    14. Description aggiunge una descrizione meta-tag alle pagine del Namespace MediaWiki del vostro wiki (pagine di servizio)
    15. Extension:SyntaxHighlight GeSHi Permette di poter visulizzare il codice sorgente che si scrive sulle pagine del wiki in maniera colorata, col nuovo Tag <source> (simile a <poem> e <pre>). Versione migliorata
    con Tabelle da settare sul Database

    Per queste ultime, va creata prima una Tabella nel Database MySQL, per cui le diamo disattivate nel nostro LocalSettings: attivatele solo dopo, aver fatto la o le tabella/e. (Le istruzioni per crearla le trovate nella cartella specifica di quell'estensione oppure su MediaWiki.org).

    1. MultiLanguageManager (Versione migliorata, per Naturpedia)
    2. CentralNotice (va creata una Tabella sul Database) Consente di mettere un Avviso che appare in tutte le pagine, che duri un certo lapso di tempo. Siccome necessita della creazione di una Tabella sul Database per funzionare, la diamo disattivata nel LocalSettings che vi diamo.
    3. WikiHiero (va creata una Tabella sul Database) Per la visualizzazione di geroglifici. Si tratta di una delle più pesanti per cui, se non la usate, non installatela.
    4. AjaxShowEditors (va creata una o più Tabella sul database) permette di visualizzare i contribuenti in contemporanea su una stessa pagina.
    5. WhosOnline (va creata una Tabella nel database) Permette di visualizzare chi è online.

    Visualizzare VIDEO e altri tipi di file multimediali

    1. YouTubeTag Specifica per i Video di YouTube.
    2. VideoFlash Specifica, per i Video-Flash.
    3. EmbedVideo Permette di visualizzare i Video, da quasi tutti i maggiori servizi online di Videosharing.
    1. Widgets Questa, la diamo disattivata nel LocalSettings, perché: necessita prima di aver reso "scrivibile" sul server la cartella /extensions/Widgets/compiled_templates/ per funzionare. I Widget, si comportano come dei comodi 'Template preconfezionati', specializzati sia sui video che sui documenti.
      • $wgGroupPermissions['sysop']['editwidgets'] = true; molte cose che fanno le estensioni, possono farlo i Widget; può essere più sicuro dare permessi qui, in questa stringa, piuttosto che dare la chiave del vostro server Ftp.
    2. ImageMap Utile per chi pensa di utilizzare molto la grafica: permette di linkare, all'interno delle immagini, le voci stesse del wiki.
    3. ImportFreeImages Permetterebbe l'importazione automatica da Flicr delle Licenze con cui sono pubblicate le immagini, ma va settata bene ed è un po' complicato farlo, altrimenti non funziona. Per cui, la diamo disattivata nel nostro LocalSettings.
    4. WikiHiero Permette la scrittura di Geroglifici. La diamo disattivata nel nostro LocalSettings perché è una delle più pesanti, e non tutti la usano.

    PDF, PdfBook e altri tipi di documenti

    1. PdfBook Consente di creare libri da tutti gli articoli di una categoria, senza dover star lì a scrivere o a aggiungere singolarmente le pagine. Funziona però solo tramite template.
    2. PdfExport Questa è molto buona. Rispetto a "Collection", genera Pdf più velocemente, ma leggermente più pesanti.. e inoltre, va settata bene altrimenti non funziona; stesso discorso vale per la prossima... (Versione migliorata).
    3. Wiki2LaTeX Questa va settata bene, altrimenti non va. Inoltre, è obsoleta per molte cose. Aggiunge una linguetta in più nelle pagine, invece che sulla Barra laterale.
      • $wgExtraNamespaces[100] = "LaTeX";
    4. PdfHandler Serve per vedere in anteprima i pdf caricati nelle pagine del vostro wiki.

    Per utilizzare invece, dei servizi Pdf esterni, integrati al wiki:

    Vai a: Altro servizio Pdf esterno: Joliprint.
    Per approfondire, vedi Joliprint Code e Barra Laterale: Pdfonline.

    Cancellazione e SPAM

    Filtri ANTI SPAM ( possono essere superflui se il Visual Captcha vi funziona bene )
    1. SimpleAntiSpam
    2. SpamBlacklist
    3. AntiBot
    Difettose
    1. RegexBlock Permetterebbe di mettere filtri di parole a quegli IP anonimi che editano frasi ripetitive, per un periodo che potete scegliere: da qualche ora, a giorni, o mesi; ma noi, non siamo riusciti a farla funzionare.
    2. reCAPTCHA Questo e' invece il Captcha classico. Lo diamo disattivato nel nostro LocalSettings, perché va in conflitto. O attivate questo, oppure il VisualMathCaptcha. (Da notare, che dovete anche per quest'ultimo cambiare alcuni valori nel file ConfirmEdit.php; a seconda di quale volete usare, cioè; come già spiegato sopra).
      • $recaptcha_public_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
      • $recaptcha_private_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
      • Se si decide di attivare il VisualMathCaptcha, molto migliore,
      • NON ATTIVATE I PARAMETRI CHE SEGUONO sul LocalSettings, altrimenti entrano in conflitto
      • $wgCaptchaClass = 'SimpleCaptcha';
      • Attivate o uno, oppure l'altro.
      • require_once( "$IP/extensions/ConfirmEdit/MathCaptcha.php");
      • $wgCaptchaClass = 'MathCaptcha';

    Per la CHAT

    Tutte le Versioni, sono state migliorate per Naturpedia, adattandone meglio la Traduzione all'italiano.

    1. Freenode Chat[17][18] Questa è l'unica che funziona perfettamente, subito. E, anche meglio della prossima (che ci assomiglia), in quanto: gli anonimi non solo possono entrare, ma anche scegliersi il nickname e il Canale. (Versione migliorata per Naturpedia).
      • $wgFreenodeChatChannel = '#nomeCanaleFreenode'; //qui, si può scegliere d'inserire un nuovo canale; infatti, di default, è impostato su #mediawiki18n dove generalmente si parla inglese.
    2. IRC Chat Questa, è più complicata settarla per via di Java (sia per chi la installa, che per chi la usa). Ma, se ci riuscite, è carina anch'essa; per cui, la diamo attiva nel nostro LocalSettings. Al contrario delle altre, visualizza comodamente diversi Canali a cui accedere. Chi la usa, però, deve conoscere un minimo di comunicazione IRC, per digitare i comandi. Inoltre, chi non usa Java o ha problemi a settarlo, è tagliato fuori. (E, a volte, gli IP anonimi hanno difficoltà a connettersi, anche se non sempre). Versione migliorata per questo progetto.
    Difettose
    1. WebChat Quest'altra, crea anch'essa una nuova pagina speciale di Webchat; sembra funzionare tutto, eccetto l'entrata per gli IP anonimi. Forse, perché studiata per lavorare sull'ultimissima versione di MediaWiki: la 1.16
      • $wgWebChatServer = 'qui si può impostare un Server';
      • $wgWebChatChannel = '#freenode'; qui si può impostare un Canale privato per il proprio wiki, invece di lasciare questo generale di #freenode (o '#mibbit';) (si crea gratis alla pagina di freenode)
      • $wgWebChatClient = 'freenodeChat'; // o, in alternativa, si può usare: 'mibbit';
    2. WikiChat Questa, invece, crea una 'linguetta' di Chat su tutti gli Articoli e le voci del vostro wiki; funziona, ma.. non riusciamo a settarla. Va solo con gli 'User Burocrati'; non riusciamo a capire come settarla per tutti gli Utenti.
    3. DPLforum Quest'altra, permette invece la visualizzazione delle pagine di discussioni (Talk) come Forum. Va settata bene però.
    4. AWC's MediaWiki Forum Altra estensione che genera un Forum: forse troppo invasivo, ma molto più completo del primo qui sopra. Inoltre, va settato bene anch'esso. (Versione migliorata)


    PANORAMICA e Download

    Al link qui sotto, oltre al download diretto, troverete l'intera panoramica di tutte queste estensioni che noi abbiamo trovato più utili ed interessanti, in ordine alfabetico.

    Vai a: Estensioni/Download.


    "Pacchetti"

    Mentre, a quest'altro, un comodo "pacchetto" da scaricare con tutte le estensioni qui viste, già suddivise fra "essenziali" e superflue, delle versioni: 1.13, 1.14, 1.15 e 1.16, del software:

    per chi vuole installarsi, invece, solo quelle "di base" (quindi, antispam e formattazione), ecco un "pacchetto" ancora più "concentrato":


    Ovviamente, per attivare questi "pacchetti", fate riferimento al file LocalSettings.php che vi abbiamo preparato appositamente per ognuno di essi:

    Per approfondire, vedi il Local Settings.


    Link esterni

    Al seguente link, un autore esplora come noi, le estensioni più utili per il software Mediawiki:

    Vai a: estensioni più utili, rigacci.org.





    Download Estensioni


    Dopo aver spiegato a cosa servono e come farle funzionare, forniamo qui di seguito i link alle corrispettive pagine delle istruzioni su Mediawiki (Manuali, in inglese) e anche al loro download diretto, sempre dal sito ufficiale. Solo per quelle estensioni "migliorate" per questo progetto diamo, ovviamente, il download alternativo dal nostro. (La maggior parte delle "migliorie" che abbiamo fatto riguardano soprattutto la "traduzione" all'italiano; in misura minore, abbiamo toccato anche la grafica).


    Dove vedete scritto "Code", significa che il sito ufficiale di MediaWiki non fornisce un download diretto dei file, già pronti e zippati, dell'Estensione, ma soltanto il Codice (Php) da copiare e incollare, per crearli da voi; noi abbiamo cercato allora, quando l'estensione non era troppo pesante, di fornirvene ugualmente uno alternativo, sempre dal nostro server, di modo che vi fosse poi più facile copiarlo direttamente via Ftp.


    Elenchiamo qui di seguito le Estensioni che riteniamo più importanti di MediaWiki, in ordine alfabetico, suddividendole tra: quelle che al scaricarle sono valide per tutte le versioni del software, e quelle che, invece, sono diverse per ciascuna.


    Nota: La suddivisione qui fatta tra IMPORTANTI e MINORI, non corrisponde a quella fra "essenziali" e "superflue" fatta all'inizio; se volete installarvi un wiki solo con le cose "basiche", cioè, fate riferimento a quella, non a questa.

    I criteri che abbiamo usato qui, sono: - la praticità nell'essere installata; - la facilità d'utilizzo; - la "leggerezza" - l'importanza agli scopi propri di un wiki.


    Estensioni Mediawiki (le più utili)

    Valide per tutte le versioni del software

    IMPORTANTI


    MINORI


    DIFETTOSE

    Queste Estensioni, ai nostri test sono risultate difettose; tuttavia, dato il grado di utilità le segnaliamo, di modo che qualcuno possa testarle ulteriormente e, magari, migliorarle.


    per la Chat

    Nei Manuali ufficiali di Mediawiki queste Chat, in teoria, sono segnalate migliori che quelle che vi abbiamo segnalato noi; tuttavia, al lato pratico, a noi non hanno funzionato, oppure è difficile settarle. Ve le diamo comunque qui di seguito.


    Valide per specifiche Versioni

    Nota: Molte delle estensioni segnalate valide dalla v.1.14 in poi, in realtà lo sono anche per le immediate precedenti. Come, InputBox per esempio, che l'abbiamo testata e va benissimo anche sulla 1.13

    "IMPORTANTI"


    "MINORI"


    "DIFETTOSE"


    Create appositamente dall' Utente:Aura Ambar

    Servizio esterno Pdf online

    Altro link ad un servizio Pdf esterno online (Joliprint)

    Invece d'installare un'estensione (che non è altro che copiare un file Php, nell'omonima catella),
    potete agire direttamente sul file Monobook.php (all'interno della Cartella 'Skins', dove avrete installato il vostro software mediawiki)

    Per approfondire, vedi Barra Laterale: Pdfonline.

    Per esempio per il servizio con Joliprint, inserite il pezzo di codice che trovate qui di seguito, nella sottosezione:

    Vai a: Estensioni: Joliprint Code.
      • Scarica - (esempi di Monobook modificato)
    Vai a: Gli Stili: esempi di Monobook modificato.


    Download "pacchetto"

    Dal nostro Server, potete scaricare tutte queste estensioni insieme, unite, per comodità, in un comodo "pacchetto". All'interno, troverete la stessa suddivisione che abbiamo fatto qui.


    Abbiamo messo solo quelle, delle versioni: 1.13, 1.14, 1.15 e 1.16 del software.


    Una volta scaricato il pacchetto e descompresso, in pratica, non fate altro che copiare le cartelle delle estensioni che v'interesano sul vostro, dentro la cartella "Estensions", e, dopodichè, vi copiate il nostro Local Settings, ed il gioco è fatto! Avrete cioè, già il vostro wiki bello che funzionante e completo di tutte le estensioni più importanti!! Nel nostro LocalSettings che vi diamo, infatti, solo quelle più utili si trovano attive. Mentre le altre, potrete decidere di attivarle in un secondo tempo; oppure cancellarle dal file, se non avete copiato alcune delle cartelle, perché non v'interessavano.

    In questo modo, avrete subito il vostro wiki operativo! L'abbiamo pensata così per facilitare le cose a chi è alle prime armi, e non vuole rinunciare comunque a questo fantastico strumento.


    Versioni singole

    Di seguito anche il download delle estensioni, delle varie versioni separate:



    (in questo, non c'è la suddivisione fra "valide per tutte" e "specifiche")



    Joliprint Code


    AGGIORNAMENTO

    Il servizio Joliprint, è stato dismesso nel Gennaio 2013; l'estensione qui trattata, non è più valida. Utilizzare il codice seguente solo come esempio.


    Nel file Monobook.php (cartella 'Skins', del vostro wiki -via Ftp-), cercate questa stringa: function searchBox() {

    e al finale, dopo il </div> ma prima del <?php, incollate il seguente pezzo di codice:

            <!-- BEGIN joliprint Code -->
    	<script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    	<script type='text/javascript'>$joliprint().set("label","Pdf Joliprint").set("labelposition","after").set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-icon-small.png").write();</script>
    	<!-- END joliprint Code -->

    oppure,

    	<!-- BEGIN joliprint Code -->
    	<script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    	<script type='text/javascript'>$joliprint().set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-button-big.png").write();</script>
    	<!-- END joliprint Code -->

    La posizione può variare, anzi è preferibile perchè su alcuni server come altervista, può non apparire. Usate allora, quest'altra:

    cercate la stringa: function toolbox() { e, appena dopo il simbolo

    ?>

    ma poco prima del

    <div class="portlet" id="p-tb">
    		<h5><?php $this->msg('toolbox') ?></h5>
    		<div class="pBody">
    			<ul>	
    <?php

    incollate il vostro codice.


    Oppure ancora, vicino a quest'altra:

    function languageBox() {

    appena prima, o appena dopo (sempre stando attenti a non metterlo in mezzo a una funzione php: <?php ... ?>).



    Vedere gli esempi che vi abbiamo fatto, per maggiori dettagli:

    Vai a: Esempi di Monobook modificato.
      • download - (esempi di Monobook modificato)
    Per approfondire, vedi Barra Laterale: Pdfonline.
    Per approfondire, vedi Gli Stili.



    Esempi di Monobook modificato


    ESEMPIO 1

    ====
    Codice HTML JOLYPRINT inserito dentro il file Monobook.php
    nella Cartella Skins del vostro Wiki:
    ESEMPIO 1
    ====


    <?php
    /**
     * MonoBook nouveau
     *
     * Translated from gwicke's previous TAL template version to remove
     * dependency on PHPTAL.
     *
     * @todo document
     * @file
     * @ingroup Skins
     */
     
    if( !defined( 'MEDIAWIKI' ) )
    	die( -1 );
     
    /**
     * Inherit main code from SkinTemplate, set the CSS and template filter.
     * @todo document
     * @ingroup Skins
     */
    class SkinMonoBook extends SkinTemplate {
    	/** Using monobook. */
    	function initPage( OutputPage $out ) {
    		parent::initPage( $out );
    		$this->skinname  = 'monobook';
    		$this->stylename = 'monobook';
    		$this->template  = 'MonoBookTemplate';
     
    	}
     
    	function setupSkinUserCss( OutputPage $out ) {
    		global $wgHandheldStyle;
     
    		parent::setupSkinUserCss( $out );
     
    		// Append to the default screen common & print styles...
    		$out->addStyle( 'monobook/main.css', 'screen' );
    		if( $wgHandheldStyle ) {
    			// Currently in testing... try 'chick/main.css'
    			$out->addStyle( $wgHandheldStyle, 'handheld' );
    		}
     
    		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
    		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
    		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
    		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
     
    		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
    	}
    }
     
    /**
     * @todo document
     * @ingroup Skins
     */
    class MonoBookTemplate extends QuickTemplate {
    	var $skin;
    	/**
    	 * Template filter callback for MonoBook skin.
    	 * Takes an associative array of data set from a SkinTemplate-based
    	 * class, and a wrapper for MediaWiki's localization database, and
    	 * outputs a formatted page.
    	 *
    	 * @access private
    	 */
    	function execute() {
    		global $wgRequest;
    		$this->skin = $skin = $this->data['skin'];
    		$action = $wgRequest->getText( 'action' );
     
    		// Suppress warnings to prevent notices about missing indexes in $this->data
    		wfSuppressWarnings();
     
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
    	foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
    		?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
    	} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
    	<head>
    		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
    		<?php $this->html('headlinks') ?>
    		<title><?php $this->text('pagetitle') ?></title>
    		<?php $this->html('csslinks') ?>
     
    		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
    		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
     
    		<?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
     
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
    		<!-- Head Scripts -->
    <?php $this->html('headscripts') ?>
    <?php	if($this->data['jsvarurl']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
    <?php	} ?>
    <?php	if($this->data['pagecss']) { ?>
    		<style type="text/css"><?php $this->html('pagecss') ?></style>
    <?php	}
    		if($this->data['usercss']) { ?>
    		<style type="text/css"><?php $this->html('usercss') ?></style>
    <?php	}
    		if($this->data['userjs']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
    <?php	}
    		if($this->data['userjsprev']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
    <?php	}
    		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
     
    	</head>
    <body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
    <?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
     class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
    	<div id="globalWrapper">
    		<div id="column-content">
    	<div id="content">
    		<a name="top" id="top"></a>
    		<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
    		<h1 id="firstHeading" class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
    		<div id="bodyContent">
    			<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
    			<div id="contentSub"><?php $this->html('subtitle') ?></div>
    			<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
    			<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php } ?>
    			<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
    			<!-- start content -->
    			<?php $this->html('bodytext') ?>
    			<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
    			<!-- end content -->
    			<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
    			<div class="visualClear"></div>
    		</div>
    	</div>
    		</div>
    		<div id="column-one">
    	<div id="p-cactions" class="portlet">
    		<h5><?php $this->msg('views') ?></h5>
    		<div class="pBody">
    			<ul>
    	<?php		foreach($this->data['content_actions'] as $key => $tab) {
    					echo '
    				 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
    					if( $tab['class'] ) {
    						echo ' class="'.htmlspecialchars($tab['class']).'"';
    					}
    					echo'><a href="'.htmlspecialchars($tab['href']).'"';
    					# We don't want to give the watch tab an accesskey if the
    					# page is being edited, because that conflicts with the
    					# accesskey on the watch checkbox.  We also don't want to
    					# give the edit tab an accesskey, because that's fairly su-
    					# perfluous and conflicts with an accesskey (Ctrl-E) often
    					# used for editing in Safari.
    				 	if( in_array( $action, array( 'edit', 'submit' ) )
    				 	&& in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
    				 		echo $skin->tooltip( "ca-$key" );
    				 	} else {
    				 		echo $skin->tooltipAndAccesskey( "ca-$key" );
    				 	}
    				 	echo '>'.htmlspecialchars($tab['text']).'</a></li>';
    				} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-personal">
    		<h5><?php $this->msg('personaltools') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php 			foreach($this->data['personal_urls'] as $key => $item) { ?>
    				<li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
    					if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
    				echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
    				if(!empty($item['class'])) { ?> class="<?php
    				echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
    				echo htmlspecialchars($item['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
    <?php
    		$sidebar = $this->data['sidebar'];
    		if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
    		foreach ($sidebar as $boxName => $cont) {
    			if ( $boxName == 'SEARCH' ) {
    				$this->searchBox();
    			} elseif ( $boxName == 'TOOLBOX' ) {
    				$this->toolbox();
    			} elseif ( $boxName == 'LANGUAGES' ) {
    				$this->languageBox();
    			} else {
    				$this->customBox( $boxName, $cont );
    			}
    		}
    ?>
    		</div><!-- end of the left (by default at least) column -->
    			<div class="visualClear"></div>
    			<div id="footer">
    <?php
    		if($this->data['poweredbyico']) { ?>
    				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
    <?php 	}
    		if($this->data['copyrightico']) { ?>
    				<div id="f-copyrightico"><?php $this->html('copyrightico') ?></div>
    <?php	}
     
    		// Generate additional footer links
    		$footerlinks = array(
    			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
    			'privacy', 'about', 'disclaimer', 'tagline',
    		);
    		$validFooterLinks = array();
    		foreach( $footerlinks as $aLink ) {
    			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    				$validFooterLinks[] = $aLink;
    			}
    		}
    		if ( count( $validFooterLinks ) > 0 ) {
    ?>			<ul id="f-list">
    <?php
    			foreach( $validFooterLinks as $aLink ) {
    				if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    ?>					<li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
    <?php 			}
    			}
    ?>
    			</ul>
    <?php	}
    ?>
    		</div>
    </div>
    <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
    <?php $this->html('reporttime') ?>
    <?php if ( $this->data['debug'] ): ?>
    <!-- Debug output:
    <?php $this->text( 'debug' ); ?>
     
    -->
    <?php endif; ?>
    </body></html>
    <?php
    	wfRestoreWarnings();
    	} // end of execute() method
     
    	/*************************************************************************************************/
    	function searchBox() {
    ?>
    	<div id="p-search" class="portlet">
    		<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
    		<div id="searchBody" class="pBody">
    			<form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
    				<input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
    					if( isset( $this->data['search'] ) ) {
    						?> value="<?php $this->text('search') ?>"<?php } ?> />
    				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
    				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
    			</div></form>
    		</div>
    	</div>
     
     
    <!-- BEGIN joliprint Code -->
     
    <script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    <script type='text/javascript'>$joliprint().set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-button-big.png").write();</script>
     
    <!-- END joliprint Code -->
     
     
    <?php
    	}
     
    	/*************************************************************************************************/
    	function toolbox() {
    ?>
    	<div class="portlet" id="p-tb">
    		<h5><?php $this->msg('toolbox') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php
    		if($this->data['notspecialpage']) { ?>
    				<li id="t-whatlinkshere"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
    <?php
    			if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
    				<li id="t-recentchangeslinked"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
    <?php 		}
    		}
    		if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
    			<li id="t-trackbacklink"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
    <?php 	}
    		if($this->data['feeds']) { ?>
    			<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
    					?><span id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>"><a href="<?php
    					echo htmlspecialchars($feed['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
    					<?php } ?></li><?php
    		}
     
    		foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
     
    			if($this->data['nav_urls'][$special]) {
    				?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
    <?php		}
    		}
     
    		if(!empty($this->data['nav_urls']['print']['href'])) { ?>
    				<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
    		}
     
    		if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
    				<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
    		} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
    				<li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
    		}
     
    		wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
    		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
    ?>
    			</ul>
    		</div>
    	</div>
    <?php
    	}
     
    	/*************************************************************************************************/
    	function languageBox() {
    		if( $this->data['language_urls'] ) {
    ?>
    	<div id="p-lang" class="portlet">
    		<h5><?php $this->msg('jumpto') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php		foreach($this->data['language_urls'] as $langlink) { ?>
    				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
    				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
    <?php		} ?>
    			</ul>
    		</div>
    	</div>
    <?php
    		}
    	}
     
    	/*************************************************************************************************/
    	function customBox( $bar, $cont ) {
    ?>
    	<div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
    		<h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
    		<div class='pBody'>
    <?php   if ( is_array( $cont ) ) { ?>
    			<ul>
    <?php 			foreach($cont as $key => $val) { ?>
    				<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
    					if ( $val['active'] ) { ?> class="active" <?php }
    				?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    <?php   } else {
    			# allow raw HTML block to be defined by extensions
    			print $cont;
    		}
    ?>
    		</div>
    	</div>
    <?php
    	}
     
    } // end of class


    ESEMPIO 2

    ====
    Codice HTML JOLYPRINT inserito dentro il file Monobook.php
    (variante grafica, rispetto al primo bottone dato)
    con in più, lo script dei bottoncini User MarkS
    ESEMPIO 2
    ====


    <?php
    /**
     * MonoBook nouveau
     *
     * Translated from gwicke's previous TAL template version to remove
     * dependency on PHPTAL.
     *
     * @todo document
     * @file
     * @ingroup Skins
     */
     
    if( !defined( 'MEDIAWIKI' ) )
    	die( -1 );
     
    /**
     * Inherit main code from SkinTemplate, set the CSS and template filter.
     * @todo document
     * @ingroup Skins
     */
    class SkinMonoBook extends SkinTemplate {
    	/** Using monobook. */
    	function initPage( OutputPage $out ) {
    		parent::initPage( $out );
    		$this->skinname  = 'monobook';
    		$this->stylename = 'monobook';
    		$this->template  = 'MonoBookTemplate';
     
    	}
     
    	function setupSkinUserCss( OutputPage $out ) {
    		global $wgHandheldStyle;
     
    		parent::setupSkinUserCss( $out );
     
    		// Append to the default screen common & print styles...
    		$out->addStyle( 'monobook/main.css', 'screen' );
    		if( $wgHandheldStyle ) {
    			// Currently in testing... try 'chick/main.css'
    			$out->addStyle( $wgHandheldStyle, 'handheld' );
    		}
     
    		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
    		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
    		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
    		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
     
    		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
    	}
    }
     
    /**
     * @todo document
     * @ingroup Skins
     */
    class MonoBookTemplate extends QuickTemplate {
    	var $skin;
    	/**
    	 * Template filter callback for MonoBook skin.
    	 * Takes an associative array of data set from a SkinTemplate-based
    	 * class, and a wrapper for MediaWiki's localization database, and
    	 * outputs a formatted page.
    	 *
    	 * @access private
    	 */
    	function execute() {
    		global $wgRequest;
    		$this->skin = $skin = $this->data['skin'];
    		$action = $wgRequest->getText( 'action' );
     
    		// Suppress warnings to prevent notices about missing indexes in $this->data
    		wfSuppressWarnings();
     
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
    	foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
    		?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
    	} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
    	<head>
    		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
    		<?php $this->html('headlinks') ?>
    		<title><?php $this->text('pagetitle') ?></title>
    		<?php $this->html('csslinks') ?>
     
    		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
    		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
     
    		<?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
     
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
    		<!-- Head Scripts -->
    <?php $this->html('headscripts') ?>
    <?php	if($this->data['jsvarurl']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
    <?php	} ?>
    <?php	if($this->data['pagecss']) { ?>
    		<style type="text/css"><?php $this->html('pagecss') ?></style>
    <?php	}
    		if($this->data['usercss']) { ?>
    		<style type="text/css"><?php $this->html('usercss') ?></style>
    <?php	}
    		if($this->data['userjs']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
    <?php	}
    		if($this->data['userjsprev']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
    <?php	}
    		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
     
    <script type="text/javascript" src="/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>		
     
    	</head>
    <body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
    <?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
     class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
    	<div id="globalWrapper">
    		<div id="column-content">
    	<div id="content">
    		<a name="top" id="top"></a>
    		<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
    		<h1 id="firstHeading" class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
    		<div id="bodyContent">
    			<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
    			<div id="contentSub"><?php $this->html('subtitle') ?></div>
    			<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
    			<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php } ?>
    			<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
    			<!-- start content -->
    			<?php $this->html('bodytext') ?>
    			<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
    			<!-- end content -->
    			<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
    			<div class="visualClear"></div>
    		</div>
    	</div>
    		</div>
    		<div id="column-one">
    	<div id="p-cactions" class="portlet">
    		<h5><?php $this->msg('views') ?></h5>
    		<div class="pBody">
    			<ul>
    	<?php		foreach($this->data['content_actions'] as $key => $tab) {
    					echo '
    				 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
    					if( $tab['class'] ) {
    						echo ' class="'.htmlspecialchars($tab['class']).'"';
    					}
    					echo'><a href="'.htmlspecialchars($tab['href']).'"';
    					# We don't want to give the watch tab an accesskey if the
    					# page is being edited, because that conflicts with the
    					# accesskey on the watch checkbox.  We also don't want to
    					# give the edit tab an accesskey, because that's fairly su-
    					# perfluous and conflicts with an accesskey (Ctrl-E) often
    					# used for editing in Safari.
    				 	if( in_array( $action, array( 'edit', 'submit' ) )
    				 	&& in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
    				 		echo $skin->tooltip( "ca-$key" );
    				 	} else {
    				 		echo $skin->tooltipAndAccesskey( "ca-$key" );
    				 	}
    				 	echo '>'.htmlspecialchars($tab['text']).'</a></li>';
    				} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-personal">
    		<h5><?php $this->msg('personaltools') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php 			foreach($this->data['personal_urls'] as $key => $item) { ?>
    				<li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
    					if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
    				echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
    				if(!empty($item['class'])) { ?> class="<?php
    				echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
    				echo htmlspecialchars($item['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
    <?php
    		$sidebar = $this->data['sidebar'];
    		if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
    		foreach ($sidebar as $boxName => $cont) {
    			if ( $boxName == 'SEARCH' ) {
    				$this->searchBox();
    			} elseif ( $boxName == 'TOOLBOX' ) {
    				$this->toolbox();
    			} elseif ( $boxName == 'LANGUAGES' ) {
    				$this->languageBox();
    			} else {
    				$this->customBox( $boxName, $cont );
    			}
    		}
    ?>
    		</div><!-- end of the left (by default at least) column -->
    			<div class="visualClear"></div>
    			<div id="footer">
    <?php
    		if($this->data['poweredbyico']) { ?>
    				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
    <?php 	}
    		if($this->data['copyrightico']) { ?>
    				<div id="f-copyrightico"><?php $this->html('copyrightico') ?></div>
    <?php	}
     
    		// Generate additional footer links
    		$footerlinks = array(
    			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
    			'privacy', 'about', 'disclaimer', 'tagline',
    		);
    		$validFooterLinks = array();
    		foreach( $footerlinks as $aLink ) {
    			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    				$validFooterLinks[] = $aLink;
    			}
    		}
    		if ( count( $validFooterLinks ) > 0 ) {
    ?>			<ul id="f-list">
    <?php
    			foreach( $validFooterLinks as $aLink ) {
    				if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    ?>					<li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
    <?php 			}
    			}
    ?>
    			</ul>
    <?php	}
    ?>
    		</div>
    </div>
    <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
    <?php $this->html('reporttime') ?>
    <?php if ( $this->data['debug'] ): ?>
    <!-- Debug output:
    <?php $this->text( 'debug' ); ?>
     
    -->
    <?php endif; ?>
    </body></html>
    <?php
    	wfRestoreWarnings();
    	} // end of execute() method
     
    	/*************************************************************************************************/
    	function searchBox() {
    ?>
    	<div id="p-search" class="portlet">
    		<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
    		<div id="searchBody" class="pBody">
    			<form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
    				<input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
    					if( isset( $this->data['search'] ) ) {
    						?> value="<?php $this->text('search') ?>"<?php } ?> />
    				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
    				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
    			</div></form>
    		</div>
    	</div>
     
    <!-- BEGIN joliprint Code -->
     
    <script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    <script type='text/javascript'>$joliprint().set("label","Pdf Joliprint").set("labelposition","after").set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-icon-small.png").write();</script>
     
    <!-- END joliprint Code -->
     
    <?php
    	}
     
    	/*************************************************************************************************/
    	function toolbox() {
    ?>
    	<div class="portlet" id="p-tb">
    		<h5><?php $this->msg('toolbox') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php
    		if($this->data['notspecialpage']) { ?>
    				<li id="t-whatlinkshere"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
    <?php
    			if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
    				<li id="t-recentchangeslinked"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
    <?php 		}
    		}
    		if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
    			<li id="t-trackbacklink"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
    <?php 	}
    		if($this->data['feeds']) { ?>
    			<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
    					?><span id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>"><a href="<?php
    					echo htmlspecialchars($feed['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
    					<?php } ?></li><?php
    		}
     
    		foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
     
    			if($this->data['nav_urls'][$special]) {
    				?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
    <?php		}
    		}
     
    		if(!empty($this->data['nav_urls']['print']['href'])) { ?>
    				<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
    		}
     
    		if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
    				<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
    		} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
    				<li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
    		}
     
    		wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
    		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
    ?>
    			</ul>
    		</div>
    	</div>
    <?php
    	}
     
    	/*************************************************************************************************/
    	function languageBox() {
    		if( $this->data['language_urls'] ) {
    ?>
    	<div id="p-lang" class="portlet">
    		<h5><?php $this->msg('jumpto') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php		foreach($this->data['language_urls'] as $langlink) { ?>
    				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
    				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
    <?php		} ?>
    			</ul>
    		</div>
    	</div>
    <?php
    		}
    	}
     
    	/*************************************************************************************************/
    	function customBox( $bar, $cont ) {
    ?>
    	<div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
    		<h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
    		<div class='pBody'>
    <?php   if ( is_array( $cont ) ) { ?>
    			<ul>
    <?php 			foreach($cont as $key => $val) { ?>
    				<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
    					if ( $val['active'] ) { ?> class="active" <?php }
    				?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    <?php   } else {
    			# allow raw HTML block to be defined by extensions
    			print $cont;
    		}
    ?>
    		</div>
    	</div>
    <?php
    	}
     
    } // end of class


    ESEMPIO 3

    ====
    Codice HTML Web2pdfconvert
    più, Codice HTML JOLYPRINT inseriti dentro il file Monobook.php
    nella Cartella Skins del vostro Wiki:
    più, script dei bottoncini User Marks
    più, Box di Ricerca spostato in alto.
    ESEMPIO 3
    ====


    <?php
    /**
     * MonoBook nouveau
     *
     * Translated from gwicke's previous TAL template version to remove
     * dependency on PHPTAL.
     *
     * @todo document
     * @file
     * @ingroup Skins
     */
     
    if( !defined( 'MEDIAWIKI' ) )
    	die( -1 );
     
    /**
     * Inherit main code from SkinTemplate, set the CSS and template filter.
     * @todo document
     * @ingroup Skins
     */
    class SkinMonoBook extends SkinTemplate {
    	/** Using monobook. */
    	function initPage( OutputPage $out ) {
    		parent::initPage( $out );
    		$this->skinname  = 'monobook';
    		$this->stylename = 'monobook';
    		$this->template  = 'MonoBookTemplate';
     
    	}
     
    	function setupSkinUserCss( OutputPage $out ) {
    		global $wgHandheldStyle;
     
    		parent::setupSkinUserCss( $out );
     
    		// Append to the default screen common & print styles...
    		$out->addStyle( 'monobook/main.css', 'screen' );
    		if( $wgHandheldStyle ) {
    			// Currently in testing... try 'chick/main.css'
    			$out->addStyle( $wgHandheldStyle, 'handheld' );
    		}
     
    		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
    		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
    		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
    		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
     
    		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
    	}
    }
     
    /**
     * @todo document
     * @ingroup Skins
     */
    class MonoBookTemplate extends QuickTemplate {
    	var $skin;
    	/**
    	 * Template filter callback for MonoBook skin.
    	 * Takes an associative array of data set from a SkinTemplate-based
    	 * class, and a wrapper for MediaWiki's localization database, and
    	 * outputs a formatted page.
    	 *
    	 * @access private
    	 */
    	function execute() {
    		global $wgRequest;
    		$this->skin = $skin = $this->data['skin'];
    		$action = $wgRequest->getText( 'action' );
     
    		// Suppress warnings to prevent notices about missing indexes in $this->data
    		wfSuppressWarnings();
     
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
    	foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
    		?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
    	} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
    	<head>
    		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
    		<?php $this->html('headlinks') ?>
    		<title><?php $this->text('pagetitle') ?></title>
    		<?php $this->html('csslinks') ?>
     
    		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
    		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
     
    		<?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
     
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
    		<!-- Head Scripts -->
    <?php $this->html('headscripts') ?>
    <?php	if($this->data['jsvarurl']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
    <?php	} ?>
    <?php	if($this->data['pagecss']) { ?>
    		<style type="text/css"><?php $this->html('pagecss') ?></style>
    <?php	}
    		if($this->data['usercss']) { ?>
    		<style type="text/css"><?php $this->html('usercss') ?></style>
    <?php	}
    		if($this->data['userjs']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
    <?php	}
    		if($this->data['userjsprev']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
    <?php	}
    		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
     
    <script type="text/javascript" src="/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>		
     
    	</head>
    <body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
    <?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
     class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
    	<div id="globalWrapper">
    		<div id="column-content">
    	<div id="content">
    		<a name="top" id="top"></a>
    		<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
    		<h1 id="firstHeading" class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
    		<div id="bodyContent">
    			<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
    			<div id="contentSub"><?php $this->html('subtitle') ?></div>
    			<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
    			<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php } ?>
    			<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
    			<!-- start content -->
    			<?php $this->html('bodytext') ?>
    			<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
    			<!-- end content -->
    			<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
    			<div class="visualClear"></div>
    		</div>
    	</div>
    		</div>
    		<div id="column-one">
    	<div id="p-cactions" class="portlet">
    		<h5><?php $this->msg('views') ?></h5>
    		<div class="pBody">
    			<ul>
    	<?php		foreach($this->data['content_actions'] as $key => $tab) {
    					echo '
    				 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
    					if( $tab['class'] ) {
    						echo ' class="'.htmlspecialchars($tab['class']).'"';
    					}
    					echo'><a href="'.htmlspecialchars($tab['href']).'"';
    					# We don't want to give the watch tab an accesskey if the
    					# page is being edited, because that conflicts with the
    					# accesskey on the watch checkbox.  We also don't want to
    					# give the edit tab an accesskey, because that's fairly su-
    					# perfluous and conflicts with an accesskey (Ctrl-E) often
    					# used for editing in Safari.
    				 	if( in_array( $action, array( 'edit', 'submit' ) )
    				 	&& in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
    				 		echo $skin->tooltip( "ca-$key" );
    				 	} else {
    				 		echo $skin->tooltipAndAccesskey( "ca-$key" );
    				 	}
    				 	echo '>'.htmlspecialchars($tab['text']).'</a></li>';
    				} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-personal">
    		<h5><?php $this->msg('personaltools') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php 			foreach($this->data['personal_urls'] as $key => $item) { ?>
    				<li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
    					if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
    				echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
    				if(!empty($item['class'])) { ?> class="<?php
    				echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
    				echo htmlspecialchars($item['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
     
    <!--Inizio Codice BOX-RICERCA spostato più in ALTO-->
     
    <div id="p-search" class="portlet">
                    <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
                    <div id="searchBody" class="pBody">
                            <form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
                                    <input id="searchInput" name="search" type="text"<?php echo $skin->tooltipAndAccesskey('search');
                                            if( isset( $this->data['search'] ) ) {
                                                    ?> value="<?php $this->text('search') ?>"<?php } ?> />
                                    <input type='submit' name="go" class="searchButton" id="searchGoButton"        value="<?php $this->msg('searcharticle') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-go' ); ?> /> 
                                    <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
                            </div></form>
                    </div>
            </div>
     
    <!--FINE Codice BOX-RICERCA spostato in ALTO-->
     
    <?php
    		$sidebar = $this->data['sidebar'];
    		//if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
    		foreach ($sidebar as $boxName => $cont) {
    			if ( $boxName == 'SEARCH' ) {
    				$this->searchBox();
    			} elseif ( $boxName == 'TOOLBOX' ) {
    				$this->toolbox();
    			} elseif ( $boxName == 'LANGUAGES' ) {
    				$this->languageBox();			
    			} else {
    				$this->customBox( $boxName, $cont );
    			}
    		}
     
    ?>
    		</div><!-- end of the left (by default at least) column -->
    			<div class="visualClear"></div>
    			<div id="footer">
     
    <?php
    		if($this->data['poweredbyico']) { ?>
    				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
    <?php 	}
    		if($this->data['copyrightico']) { ?>
    				<div id="f-copyrightico"><?php $this->html('copyrightico') ?></div>
    <?php	}
     
    		// Generate additional footer links
    		$footerlinks = array(
    			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
    			'privacy', 'about', 'disclaimer', 'tagline',
    		);
    		$validFooterLinks = array();
    		foreach( $footerlinks as $aLink ) {
    			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    				$validFooterLinks[] = $aLink;
    			}
    		}
    		if ( count( $validFooterLinks ) > 0 ) {
    ?>			<ul id="f-list">
    <?php
    			foreach( $validFooterLinks as $aLink ) {
    				if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    ?>					<li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
    <?php 			}
    			}
    ?>
    			</ul>
    <?php	}
    ?>
    		</div>
    </div>
    <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
    <?php $this->html('reporttime') ?>
    <?php if ( $this->data['debug'] ): ?>
    <!-- Debug output:
    <?php $this->text( 'debug' ); ?>
     
    -->
    <?php endif; ?>
    </body></html>
    <?php
    	wfRestoreWarnings();
    	} // end of execute() method
     
    	/*************************************************************************************************/
    	function searchBox() {
    ?>
    	<div id="p-search" class="portlet">
    		<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
    		<div id="searchBody" class="pBody">
    			<form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
    				<input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
    					if( isset( $this->data['search'] ) ) {
    						?> value="<?php $this->text('search') ?>"<?php } ?> />
    				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
    				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
    			</div></form>
    		</div>
    	</div>
    <?php
    	}
     
    	/*************************************************************************************************/
    	function toolbox() {
    ?>
     
    <!-- BEGIN joliprint Code -->
     
    <script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    <script type='text/javascript'>$joliprint().set("label","Pdf Joliprint").set("labelposition","after").set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-icon-small.png").write();</script>
     
    <!-- END joliprint Code -->	
     
    	<div class="portlet" id="p-tb">
    		<h5><?php $this->msg('toolbox') ?></h5>
    		<div class="pBody">
    			<ul>	
    <?php
    		if($this->data['notspecialpage']) { ?>
    				<li id="t-whatlinkshere"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
    <?php
    			if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
    				<li id="t-recentchangeslinked"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
    <?php 		}
    		}
    		if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
    			<li id="t-trackbacklink"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
    <?php 	}
    		if($this->data['feeds']) { ?>
    			<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
    					?><span id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>"><a href="<?php
    					echo htmlspecialchars($feed['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
    					<?php } ?></li><?php
    		}
     
    		foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
     
    			if($this->data['nav_urls'][$special]) {
    				?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
    <?php		}
    		}
     
    		if(!empty($this->data['nav_urls']['print']['href'])) { ?>
    				<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
    		}
     
    		if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
    				<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
    		} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
    				<li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
    		}
     
    		wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
    		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
    ?>
    			</ul>
    		</div>
    	</div>
    	</div>
     
           <!-- BEGIN pdf Code -->	
    	    <div class="generated-sidebar portlet" id="p-Scarica_in_PDF">
    		<h5>Scarica in PDF</h5>
    		<div class="pBody">
                  <a href="http://www.web2pdfconvert.com/convert" target="_blank">
                 <img src="http://www.fotoclubinc.com/Images/Buttons/download_as_pdf_button.png">Salva in PDF</a>		</div>
    	<!-- END pdf Code -->
     
    <?php
    	}
     
    	/*************************************************************************************************/
    	function languageBox() {
    		if( $this->data['language_urls'] ) {
    ?>
     
    	<div id="p-lang" class="portlet">
    		<h5><?php $this->msg('jumpto') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php		foreach($this->data['language_urls'] as $langlink) { ?>
    				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
    				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
    <?php		} ?>
    			</ul>
    		</div>
    	</div>
    <?php
    		}
    	}
     
    	/*************************************************************************************************/
    	function customBox( $bar, $cont ) {
    ?>
    	<div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
    		<h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
    		<div class='pBody'>
    <?php   if ( is_array( $cont ) ) { ?>
    			<ul>
    <?php 			foreach($cont as $key => $val) { ?>
    				<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
    					if ( $val['active'] ) { ?> class="active" <?php }
    				?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    <?php   } else {
    			# allow raw HTML block to be defined by extensions
    			print $cont;
    		}
    ?>
    		</div>
    	</div>
    <?php
    	}
     
    } // end of class


    ESEMPIO 4

    ====
    Codice HTML Web2pdfconvert
    più, Codice HTML JOLYPRINT inseriti dentro il file Monobook.php
    nella Cartella Skins del vostro Wiki:
    più, script dei bottoncini User Marks
    più, Box di Ricerca spostato in alto;
    più, Mappa visitatori.
    ESEMPIO 4
    ====


    <?php
     
    /**
     * MonoBook nouveau
     *
     * Translated from gwicke's previous TAL template version to remove
     * dependency on PHPTAL.
     *
     * @todo document
     * @file
     * @ingroup Skins
     */
     
    if( !defined( 'MEDIAWIKI' ) )
    	die( -1 );
     
    /**
     * Inherit main code from SkinTemplate, set the CSS and template filter.
     * @todo document
     * @ingroup Skins
     */
    class SkinMonoBook extends SkinTemplate {
    	/** Using monobook. */
    	function initPage( OutputPage $out ) {
    		parent::initPage( $out );
    		$this->skinname  = 'monobook';
    		$this->stylename = 'monobook';
    		$this->template  = 'MonoBookTemplate';
     
    	}
     
    	function setupSkinUserCss( OutputPage $out ) {
    		global $wgHandheldStyle;
     
    		parent::setupSkinUserCss( $out );
     
    		// Append to the default screen common & print styles...
    		$out->addStyle( 'monobook/main.css', 'screen' );
    		if( $wgHandheldStyle ) {
    			// Currently in testing... try 'chick/main.css'
    			$out->addStyle( $wgHandheldStyle, 'handheld' );
    		}
     
    		$out->addStyle( 'monobook/IE50Fixes.css', 'screen', 'lt IE 5.5000' );
    		$out->addStyle( 'monobook/IE55Fixes.css', 'screen', 'IE 5.5000' );
    		$out->addStyle( 'monobook/IE60Fixes.css', 'screen', 'IE 6' );
    		$out->addStyle( 'monobook/IE70Fixes.css', 'screen', 'IE 7' );
     
    		$out->addStyle( 'monobook/rtl.css', 'screen', '', 'rtl' );
    	}
    }
     
    /**
     * @todo document
     * @ingroup Skins
     */
    class MonoBookTemplate extends QuickTemplate {
    	var $skin;
    	/**
    	 * Template filter callback for MonoBook skin.
    	 * Takes an associative array of data set from a SkinTemplate-based
    	 * class, and a wrapper for MediaWiki's localization database, and
    	 * outputs a formatted page.
    	 *
    	 * @access private
    	 */
    	function execute() {
    		global $wgRequest;
    		$this->skin = $skin = $this->data['skin'];
    		$action = $wgRequest->getText( 'action' );
     
    		// Suppress warnings to prevent notices about missing indexes in $this->data
    		wfSuppressWarnings();
     
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
    	foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
    		?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
    	} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
    	<head>
    		<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
    		<?php $this->html('headlinks') ?>
    		<title><?php $this->text('pagetitle') ?></title>
    		<?php $this->html('csslinks') ?>
     
    		<!--[if lt IE 7]><script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/IEFixes.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"></script>
    		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
     
    		<?php print Skin::makeGlobalVariablesScript( $this->data ); ?>
     
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath' ) ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
    		<!-- Head Scripts -->
    <?php $this->html('headscripts') ?>
    <?php	if($this->data['jsvarurl']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
    <?php	} ?>
    <?php	if($this->data['pagecss']) { ?>
    		<style type="text/css"><?php $this->html('pagecss') ?></style>
    <?php	}
    		if($this->data['usercss']) { ?>
    		<style type="text/css"><?php $this->html('usercss') ?></style>
    <?php	}
    		if($this->data['userjs']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
    <?php	}
    		if($this->data['userjsprev']) { ?>
    		<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
    <?php	}
    		if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
     
    <script type="text/javascript" src="/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>
     
    	</head>
    <body<?php if($this->data['body_ondblclick']) { ?> ondblclick="<?php $this->text('body_ondblclick') ?>"<?php } ?>
    <?php if($this->data['body_onload']) { ?> onload="<?php $this->text('body_onload') ?>"<?php } ?>
     class="mediawiki <?php $this->text('dir') ?> <?php $this->text('pageclass') ?> <?php $this->text('skinnameclass') ?>">
    	<div id="globalWrapper">
    		<div id="column-content">
    	<div id="content">
    		<a name="top" id="top"></a>
    		<?php if($this->data['sitenotice']) { ?><div id="siteNotice"><?php $this->html('sitenotice') ?></div><?php } ?>
    		<h1 id="firstHeading" class="firstHeading"><?php $this->data['displaytitle']!=""?$this->html('title'):$this->text('title') ?></h1>
    		<div id="bodyContent">
    			<h3 id="siteSub"><?php $this->msg('tagline') ?></h3>
    			<div id="contentSub"><?php $this->html('subtitle') ?></div>
    			<?php if($this->data['undelete']) { ?><div id="contentSub2"><?php     $this->html('undelete') ?></div><?php } ?>
    			<?php if($this->data['newtalk'] ) { ?><div class="usermessage"><?php $this->html('newtalk')  ?></div><?php } ?>
    			<?php if($this->data['showjumplinks']) { ?><div id="jump-to-nav"><?php $this->msg('jumpto') ?> <a href="#column-one"><?php $this->msg('jumptonavigation') ?></a>, <a href="#searchInput"><?php $this->msg('jumptosearch') ?></a></div><?php } ?>
    			<!-- start content -->
    			<?php $this->html('bodytext') ?>
    			<?php if($this->data['catlinks']) { $this->html('catlinks'); } ?>
    			<!-- end content -->
    			<?php if($this->data['dataAfterContent']) { $this->html ('dataAfterContent'); } ?>
    			<div class="visualClear"></div>
    		</div>
    	</div>
    		</div>
    		<div id="column-one">
    	<div id="p-cactions" class="portlet">
    		<h5><?php $this->msg('views') ?></h5>
    		<div class="pBody">
    			<ul>
    	<?php		foreach($this->data['content_actions'] as $key => $tab) {
    					echo '
    				 <li id="' . Sanitizer::escapeId( "ca-$key" ) . '"';
    					if( $tab['class'] ) {
    						echo ' class="'.htmlspecialchars($tab['class']).'"';
    					}
    					echo'><a href="'.htmlspecialchars($tab['href']).'"';
    					# We don't want to give the watch tab an accesskey if the
    					# page is being edited, because that conflicts with the
    					# accesskey on the watch checkbox.  We also don't want to
    					# give the edit tab an accesskey, because that's fairly su-
    					# perfluous and conflicts with an accesskey (Ctrl-E) often
    					# used for editing in Safari.
    				 	if( in_array( $action, array( 'edit', 'submit' ) )
    				 	&& in_array( $key, array( 'edit', 'watch', 'unwatch' ))) {
    				 		echo $skin->tooltip( "ca-$key" );
    				 	} else {
    				 		echo $skin->tooltipAndAccesskey( "ca-$key" );
    				 	}
    				 	echo '>'.htmlspecialchars($tab['text']).'</a></li>';
    				} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-personal">
    		<h5><?php $this->msg('personaltools') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php 			foreach($this->data['personal_urls'] as $key => $item) { ?>
    				<li id="<?php echo Sanitizer::escapeId( "pt-$key" ) ?>"<?php
    					if ($item['active']) { ?> class="active"<?php } ?>><a href="<?php
    				echo htmlspecialchars($item['href']) ?>"<?php echo $skin->tooltipAndAccesskey('pt-'.$key) ?><?php
    				if(!empty($item['class'])) { ?> class="<?php
    				echo htmlspecialchars($item['class']) ?>"<?php } ?>><?php
    				echo htmlspecialchars($item['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
     
    <!--Inizio Codice BOX-RICERCA spostato più in ALTO-->
    <div id="p-search" class="portlet">
                    <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
                    <div id="searchBody" class="pBody">
                            <form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
                                    <input id="searchInput" name="search" type="text"<?php echo $skin->tooltipAndAccesskey('search');
                                            if( isset( $this->data['search'] ) ) {
                                                    ?> value="<?php $this->text('search') ?>"<?php } ?> />
                                    <input type='submit' name="go" class="searchButton" id="searchGoButton"        value="<?php $this->msg('searcharticle') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
                                    <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
                            </div></form>
                    </div>
            </div>
    <!--FINE Codice BOX-RICERCA spostato in ALTO-->
     
    <?php
    		$sidebar = $this->data['sidebar'];
    		//if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;
    		foreach ($sidebar as $boxName => $cont) {
    			if ( $boxName == 'SEARCH' ) {
    				$this->searchBox();
    			} elseif ( $boxName == 'TOOLBOX' ) {
    				$this->toolbox();
    			} elseif ( $boxName == 'LANGUAGES' ) {
    				$this->languageBox();
    			} else {
    				$this->customBox( $boxName, $cont );
    			}
    		}
    ?>
    		</div><!-- end of the left (by default at least) column -->
    			<div class="visualClear"></div>
    			<div id="footer">
    <?php
    		if($this->data['poweredbyico']) { ?>
    				<div id="f-poweredbyico"><?php $this->html('poweredbyico') ?></div>
    <?php 	}
    		if($this->data['copyrightico']) { ?>
    				<div id="f-copyrightico"><?php $this->html('copyrightico') ?></div>
    <?php	}
     
    		// Generate additional footer links
    		$footerlinks = array(
    			'lastmod', 'viewcount', 'numberofwatchingusers', 'credits', 'copyright',
    			'privacy', 'about', 'disclaimer', 'tagline',
    		);
    		$validFooterLinks = array();
    		foreach( $footerlinks as $aLink ) {
    			if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    				$validFooterLinks[] = $aLink;
    			}
    		}
    		if ( count( $validFooterLinks ) > 0 ) {
    ?>			<ul id="f-list">
    <?php
    			foreach( $validFooterLinks as $aLink ) {
    				if( isset( $this->data[$aLink] ) && $this->data[$aLink] ) {
    ?>					<li id="<?php echo$aLink?>"><?php $this->html($aLink) ?></li>
    <?php 			}
    			}
    ?>
    			</ul>
    <?php	}
    ?>
    		</div>
    </div>
    	  <!-- BEGIN feedjit-MAP Code -->
    <script src="http://feedjit.com/map/?bc=DCE0C5&amp;tc=303030&amp;brd1=CED6A3&amp;lnk=666666&amp;hc=BABD93&amp;dot=ff1111" type="text/javascript"></script>
        <!-- END feedjit-MAP Code -->		
        <!-- BEGIN feedjit-visitors Code -->
    <script src="http://feedjit.com/serve/?bc=D4ED71&amp;tc=000000&amp;brd1=012B6B&amp;lnk=135D9E&amp;hc=FFFFFF&amp;srefs=1&amp;wne=2&amp;ww=160" type="text/javascript"></script>	
        <!-- END feedjit-visitors Code -->    
    <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
    <?php $this->html('reporttime') ?>
    <?php if ( $this->data['debug'] ): ?>
    <!-- Debug output:
    <?php $this->text( 'debug' ); ?>
     
    -->
    <?php endif; ?>
    </body></html>
    <?php
    	wfRestoreWarnings();
    	} // end of execute() method
     
    	/*************************************************************************************************/
    	function searchBox() {
    ?>
    	<div id="p-search" class="portlet">
    		<h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
    		<div id="searchBody" class="pBody">
    			<form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
    				<input id="searchInput" name="search" type="text"<?php echo $this->skin->tooltipAndAccesskey('search');
    					if( isset( $this->data['search'] ) ) {
    						?> value="<?php $this->text('search') ?>"<?php } ?> />
    				<input type='submit' name="go" class="searchButton" id="searchGoButton"	value="<?php $this->msg('searcharticle') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
    				<input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $this->skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
    			</div></form>
    		</div>
    	</div>
    <?php
    	}
     
    	/*************************************************************************************************/
    	function toolbox() {
    ?>
    	<div class="portlet" id="p-tb">
    		<h5><?php $this->msg('toolbox') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php
    		if($this->data['notspecialpage']) { ?>
    				<li id="t-whatlinkshere"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['whatlinkshere']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-whatlinkshere') ?>><?php $this->msg('whatlinkshere') ?></a></li>
    <?php
    			if( $this->data['nav_urls']['recentchangeslinked'] ) { ?>
    				<li id="t-recentchangeslinked"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['recentchangeslinked']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-recentchangeslinked') ?>><?php $this->msg('recentchangeslinked') ?></a></li>
    <?php 		}
    		}
    		if(isset($this->data['nav_urls']['trackbacklink'])) { ?>
    			<li id="t-trackbacklink"><a href="<?php
    				echo htmlspecialchars($this->data['nav_urls']['trackbacklink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-trackbacklink') ?>><?php $this->msg('trackbacklink') ?></a></li>
    <?php 	}
    		if($this->data['feeds']) { ?>
    			<li id="feedlinks"><?php foreach($this->data['feeds'] as $key => $feed) {
    					?><span id="<?php echo Sanitizer::escapeId( "feed-$key" ) ?>"><a href="<?php
    					echo htmlspecialchars($feed['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey('feed-'.$key) ?>><?php echo htmlspecialchars($feed['text'])?></a>&nbsp;</span>
    					<?php } ?></li><?php
    		}
     
    		foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
     
    			if($this->data['nav_urls'][$special]) {
    				?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-'.$special) ?>><?php $this->msg($special) ?></a></li>
    <?php		}
    		}
     
    		if(!empty($this->data['nav_urls']['print']['href'])) { ?>
    				<li id="t-print"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['print']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-print') ?>><?php $this->msg('printableversion') ?></a></li><?php
    		}
     
    		if(!empty($this->data['nav_urls']['permalink']['href'])) { ?>
    				<li id="t-permalink"><a href="<?php echo htmlspecialchars($this->data['nav_urls']['permalink']['href'])
    				?>"<?php echo $this->skin->tooltipAndAccesskey('t-permalink') ?>><?php $this->msg('permalink') ?></a></li><?php
    		} elseif ($this->data['nav_urls']['permalink']['href'] === '') { ?>
    				<li id="t-ispermalink"<?php echo $this->skin->tooltip('t-ispermalink') ?>><?php $this->msg('permalink') ?></li><?php
    		}
     
    		wfRunHooks( 'MonoBookTemplateToolboxEnd', array( &$this ) );
    		wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this ) );
    ?>
    			</ul>
    		</div>
    	</div>
     
    <!-- BEGIN joliprint Code -->
    <script charset='ISO-8859-1' src='http://api.joliprint.com/joliprint/js/joliprint.js' type='text/javascript'></script>
    <script type='text/javascript'>$joliprint().set("label","Pdf Joliprint").set("labelposition","after").set("buttonUrl", "http://api.joliprint.com/res/joliprint/img/buttons/default/joliprint-icon-small.png").write();</script>
    <!-- END joliprint Code -->
     
      <!-- BEGIN pdf Code -->	
    			<div class="generated-sidebar portlet" id="p-Scarica_in_PDF">
    		<h5>to PDF</h5>
    		<div class="pBody">
    <a href="http://www.web2pdfconvert.com/convert" target="_blank">
    <img src="http://meta.anarchopedia.org/images/2/23/ButonPDF25.png">Salva in PDF</a>		</div>
    	<!-- END pdf Code -->	
     
    <?php
    	}
     
    	/*************************************************************************************************/
    	function languageBox() {
    		if( $this->data['language_urls'] ) {
    ?>
    	<div id="p-lang" class="portlet">
    		<h5><?php $this->msg('jumpto') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php		foreach($this->data['language_urls'] as $langlink) { ?>
    				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
    				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
    <?php		} ?>
    			</ul>
    		</div>
    	</div>
    <?php
    		}
    	}
     
    	/*************************************************************************************************/
    	function customBox( $bar, $cont ) {
    ?>
    	<div class='generated-sidebar portlet' id='<?php echo Sanitizer::escapeId( "p-$bar" ) ?>'<?php echo $this->skin->tooltip('p-'.$bar) ?>>
    		<h5><?php $out = wfMsg( $bar ); if (wfEmptyMsg($bar, $out)) echo $bar; else echo $out; ?></h5>
    		<div class='pBody'>
    <?php   if ( is_array( $cont ) ) { ?>
    			<ul>
    <?php 			foreach($cont as $key => $val) { ?>
    				<li id="<?php echo Sanitizer::escapeId($val['id']) ?>"<?php
    					if ( $val['active'] ) { ?> class="active" <?php }
    				?>><a href="<?php echo htmlspecialchars($val['href']) ?>"<?php echo $this->skin->tooltipAndAccesskey($val['id']) ?>><?php echo htmlspecialchars($val['text']) ?></a></li>
    <?php			} ?>
    			</ul>
    <?php   } else {
    			# allow raw HTML block to be defined by extensions
    			print $cont;
    		}
    ?>
    		</div>
    	</div>
     
    <?php
    	}
     
    } // end of class


    Download










    Estensioni (istruzioni)


    I Manuali online in inglese delle estensioni Mediawiki, li abbiamo già riportati nel capitolo del Download; in quanto corrispondono appunto alle pagine da dove potete effettuarlo. In questo, vogliamo tradurre all'italiano quelli più importanti, almeno di quelle che vi abbiamo consigliato noi, qui; e cercare di facilitare l'installazione e la comprensione di quelle (poche in verità) che su Mediawiki non vengono spiegate per niente, oppure, in maniera fortemente incompleta.

    Manuali in italiano delle Estensioni Mediawiki

    Vai a: Manuali: Elenco.


    Estensioni per cui rendere scrivibile delle Cartelle, sul Server

    Alcune Esensioni al lato pratico non funzioneranno, se prima non concedete i permessi "777" ad alcune sottocartelle sul vostro server, dove avrete installato il vostro software MediaWiki. Vediamo quali:

    • Estensione Widget;


    Estensioni per cui creare delle Tabelle

    In questa sezione raggrupperemo le Estensioni che necessitano anche della creazione di Tabelle nel Database, per poter funzionare.

    Vai a: Manuali: Tabelle.


    Tabelle per gli Interlink

    Siccome gli Interlink, non necessitano per forza di un'Estensione, per poter essere attivati, affrontiamo queste Tabelle separatamente.

    Vai a: Manuali: Tabelle interlink.



    Tabelle per le Estensioni


    Tra quelle che vi abbiamo posto qui, nel nostro "pacchetto",

    le seguenti Estensioni richiedono, oltre all'attivazione modificando il file LocalSettings,

    anche dell'aggiunta ulteriore di una o più Tabelle sul Database MySQL,

    per essere completamente attivate.


    Vediamo quali.


    IMPORTANTI

    AjaxShowEditors

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul Manage MySQL dal pannello di comandi del vostro sito, poi, selezionate il wiki che avete installato schiacciando sul nome che compare a sinistra; dopo, cliccate su SQL (tra "Struttura" e "Cerca") che vi darà, tra le opzioni, la possibilità d'inserire il testo specificato qui di seguito; e con questo, avrete creato la nuova tabella)

    CREATE TABLE /*$wgDBprefix*/editings (
      `editings_page` int(8) NOT NULL,
      `editings_user` varchar(255) NOT NULL,
      `editings_started` char(14) NOT NULL,
      `editings_touched` char(14) NOT NULL,
      PRIMARY KEY  (`editings_page`,`editings_user`),
      KEY `editings_page` (`editings_page`),
      KEY `editings_page_started` (`editings_page`,`editings_user`,`editings_started`)
    ) TYPE=MEMORY;


    WhoisOnline

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    CREATE TABLE `online` (
    	`userid` int(5) NOT NULL default '0',
    	`username` varchar(255) NOT NULL default '',
    	`timestamp` char(14) NOT NULL default '',
    	PRIMARY KEY USING HASH (`userid`, `username`),
    	INDEX USING BTREE (`timestamp`)
    ) TYPE=MEMORY;


    MultiLanguageManager

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    CREATE TABLE page_language (
          page_id int(8) NOT NULL,
          lang varchar(3) NOT NULL,
          PRIMARY KEY  (page_id)
    ) ENGINE=InnoDB;  
    CREATE TABLE page_translation (
         `source` int(8) NOT NULL,
          translate int(8) NOT NULL,
          UNIQUE KEY source_2 (`source`,translate),
          KEY `source` (`source`),
          KEY translate (translate)
    ) ENGINE=InnoDB;

    Se usate un prefisso per le tabelle aggiungetelo prima, e assicuratevi che il tipo di tabella (in questo caso InnoDB) sia supportato dal vostro database.

    E ora ecco il codice-esempio con dentro l'eventuale prefisso, qui: wiki_ (dovete sostituirlo ovviamente, con il vostro)

    CREATE TABLE wiki_page_language (
      page_id int(8) NOT NULL,
      lang varchar(3) NOT NULL,
      PRIMARY KEY  (page_id)
    ) ENGINE=InnoDB;  
    CREATE TABLE wiki_page_translation (
      `source` int(8) NOT NULL,
      translate int(8) NOT NULL,
      UNIQUE KEY source_2 (`source`,translate),
      KEY `source` (`source`),
      KEY translate (translate)
    ) ENGINE=InnoDB;


    MINORI

    CentralNotice

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul Manage MySQL dal pannello di comandi del vostro sito, poi, selezionate il wiki che avete installato schiacciando sul nome che compare a sinistra; dopo, cliccate su SQL (tra "Struttura" e "Cerca") che vi darà, tra le opzioni, la possibilità d'inserire il testo specificato qui di seguito; e con questo, avrete creato la nuova tabella)

    Vedi

    CREATE TABLE IF NOT EXISTS /*$wgDBprefix*/cn_notices (
     	`not_id` int NOT NULL PRIMARY KEY auto_increment,
      	`not_name` varchar(255) NOT NULL,
      	`not_start` char(14) NOT NULL,
     	`not_end` char(14) NOT NULL,
      	`not_enabled` bool NOT NULL default '0',
      	`not_preferred` bool NOT NULL default '0',
      	`not_locked` bool NOT NULL default '0',
     	`not_language` varchar(32) NOT NULL,
      	`not_project` varchar(255) NOT NULL
    ) /*$wgDBTableOptions*/;
     
    CREATE TABLE IF NOT EXISTS /*$wgDBprefix*/cn_assignments (
     	`asn_id` int NOT NULL PRIMARY KEY auto_increment,
      	`not_id` int NOT NULL,
      	`tmp_id` int NOT NULL,
     	`tmp_weight` int NOT NULL
    ) /*$wgDBTableOptions*/;
     
    -- FIXME: make tmp_name UNIQUE
    CREATE TABLE IF NOT EXISTS /*$wgDBprefix*/cn_templates (
      	`tmp_id` int NOT NULL PRIMARY KEY auto_increment,
      	`tmp_name` varchar(255) default NULL,
     	`tmp_display_anon` bool NOT NULL DEFAULT 1,
     	`tmp_display_account` bool NOT NULL DEFAULT 1
    ) /*$wgDBTableOptions*/;
     
    CREATE TABLE IF NOT EXISTS /*$wgDBprefix*/cn_notice_languages (
     	`nl_notice_id` int unsigned NOT NULL,
     	`nl_language` varchar(32) NOT NULL
    ) /*$wgDBTableOptions*/;
    CREATE UNIQUE INDEX /*i*/nl_notice_id_language ON /*$wgDBprefix*/cn_notice_languages (nl_notice_id, nl_language);
     
    CREATE TABLE IF NOT EXISTS /*$wgDBprefix*/cn_notice_projects (
     	`np_notice_id` int unsigned NOT NULL,
      	`np_project` varchar(32) NOT NULL
     	) /*$wgDBTableOptions*/;
    CREATE UNIQUE INDEX /*i*/np_notice_id_project ON /*$wgDBprefix*/cn_notice_projects (np_notice_id, np_project);


    SpamRegex

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    Vedi

    CREATE TABLE `spam_regex` (
            `spam_id` INT(5) NOT NULL AUTO_INCREMENT,
            `spam_text` VARCHAR(255) NOT NULL,
            `spam_timestamp` CHAR(14) NOT NULL,
            `spam_user` VARCHAR(255) NOT NULL,
            `spam_textbox` INT(1) NOT NULL DEFAULT 1,
            `spam_summary` INT(1) NOT NULL DEFAULT 0,
            PRIMARY KEY  (`spam_id`),
            UNIQUE KEY `spam_text` (`spam_text`),
            KEY `spam_timestamp` (`spam_timestamp`),
            KEY `spam_user` (`spam_user`)
    );


    Nota

    Nei Manuali in inglese, (ossia sulle pagine online di Mediawiki.org) a volte vengono queste tabelle, a volte no. Quando non sono riportate, è perché si trovano già dentro il file zippato che scaricate; quando lo aprite, quindi, fate bene attenzione a guardarci dentro: se ci sono dei file che terminao in .sql, quasi sicuramente li dovete aprire perché dentro vi troverete queste Tabelle da aggiungere.



    Tabelle per gli interlink

    Per approfondire, vedi Manuali: Tabelle.

    Come abbiamo già detto, dentro la cartella "/maintenance/" del vostro wiki, trovate dei file con estensione .sql con all'interno le Tabelle pronte per creare sul Database i collegamenti "interlink" ai progetti wikimedia, e quelli "interlanguage" ai diversi progetti di wikipedia e wikizionario.

    Per comodità, li riportiamo qui, nel caso non riusciate a trovarli.


    Prefissi Mediawiki

    Di seguito i codici dei file .sql con all'interno le Tabelle, che potrete modificare ovviamente secondo i vostri criteri personali, verso progetti di wikimedia.

    INTERWIKI

    Questo, per gli interwiki (collegamenti all'interno del testo, che si formano quando le parole vengono racchiuse all'interno di parentesi quadre: [[]]).


    File "Interwiki.sql" per Progetti Wikimedia

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    -- Based more or less on the public interwiki map from MeatballWiki
    -- Default interwiki prefixes...
     
    REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
    ('acronym','http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=$1',0),
    ('advogato','http://www.advogato.org/$1',0),
    ('annotationwiki','http://www.seedwiki.com/page.cfm?wikiid=368&doc=$1',0),
    ('arxiv','http://www.arxiv.org/abs/$1',0),
    ('c2find','http://c2.com/cgi/wiki?FindPage&value=$1',0),
    ('cache','http://www.google.com/search?q=cache:$1',0),
    ('corpknowpedia','http://corpknowpedia.org/wiki/index.php/$1',0),
    ('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1',0),
    ('disinfopedia','http://www.disinfopedia.org/wiki.phtml?title=$1',0),
    ('docbook','http://wiki.docbook.org/topic/$1',0),
    ('doi','http://dx.doi.org/$1',0),
    ('drumcorpswiki','http://www.drumcorpswiki.com/index.php/$1',0),
    ('dwjwiki','http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1',0),
    ('emacswiki','http://www.emacswiki.org/cgi-bin/wiki.pl?$1',0),
    ('elibre','http://enciclopedia.us.es/index.php/$1',0),
    ('foldoc','http://foldoc.org/?$1',0),
    ('foxwiki','http://fox.wikis.com/wc.dll?Wiki~$1',0),
    ('freebsdman','http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1',0),
    ('gej','http://www.esperanto.de/cgi-bin/aktivikio/wiki.pl?$1',0),
    ('gentoo-wiki','http://gentoo-wiki.com/$1',0),
    ('google','http://www.google.com/search?q=$1',0),
    ('googlegroups','http://groups.google.com/groups?q=$1',0),
    ('hammondwiki','http://www.dairiki.org/HammondWiki/$1',0),
    ('hewikisource','http://he.wikisource.org/wiki/$1',1),
    ('hrwiki','http://www.hrwiki.org/index.php/$1',0),
    ('imdb','http://us.imdb.com/Title?$1',0),
    ('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1',0),
    ('jspwiki','http://www.jspwiki.org/wiki/$1',0),
    ('keiki','http://kei.ki/en/$1',0),
    ('kmwiki','http://kmwiki.wikispaces.com/$1',0),
    ('linuxwiki','http://linuxwiki.de/$1',0),
    ('lojban','http://www.lojban.org/tiki/tiki-index.php?page=$1',0),
    ('lqwiki','http://wiki.linuxquestions.org/wiki/$1',0),
    ('lugkr','http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1',0),
    ('mathsongswiki','http://SeedWiki.com/page.cfm?wikiid=237&doc=$1',0),
    ('moinmoin','http://purl.net/wiki/moin/$1',0),
    ('mozillawiki','http://wiki.mozilla.org/index.php/$1',0),
    ('oeis','http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=$1',0),
    ('openfacts','http://openfacts.berlios.de/index.phtml?title=$1',0),
    ('openwiki','http://openwiki.com/?$1',0),
    ('patwiki','http://gauss.ffii.org/$1',0), # 2008-02-27: lots of spambots
    ('pmeg','http://www.bertilow.com/pmeg/$1.php',0),
    ('ppr','http://c2.com/cgi/wiki?$1',0),
    ('pythoninfo','http://wiki.python.org/moin/$1',0),
    ('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt',0),
    ('s23wiki','http://is-root.de/wiki/index.php/$1',0),
    ('seattlewiki','http://seattle.wikia.com/wiki/$1',0),
    ('seattlewireless','http://seattlewireless.net/?$1',0),
    ('senseislibrary','http://senseis.xmp.net/?$1',0),
    ('slashdot','http://slashdot.org/article.pl?sid=$1',0), # 2008-02-27: update me
    ('sourceforge','http://sourceforge.net/$1',0),
    ('squeak','http://wiki.squeak.org/squeak/$1',0),
    ('susning','http://www.susning.nu/$1',0),
    ('svgwiki','http://wiki.svg.org/$1',0),
    ('tavi','http://tavi.sourceforge.net/$1',0),
    ('tejo','http://www.tejo.org/vikio/$1',0),
    ('tmbw','http://www.tmbw.net/wiki/$1',0),
    ('tmnet','http://www.technomanifestos.net/?$1',0),
    ('tmwiki','http://www.EasyTopicMaps.com/?page=$1',0),
    ('theopedia','http://www.theopedia.com/$1',0),
    ('twiki','http://twiki.org/cgi-bin/view/$1',0),
    ('uea','http://www.tejo.org/uea/$1',0),
    ('unreal','http://wiki.beyondunreal.com/wiki/$1',0),
    ('usemod','http://www.usemod.com/cgi-bin/wiki.pl?$1',0),
    ('vinismo','http://vinismo.com/en/$1',0),
    ('webseitzwiki','http://webseitz.fluxent.com/wiki/$1',0),
    ('why','http://clublet.com/c/c/why?$1',0),
    ('wikinfo','http://www.wikinfo.org/index.php/$1',0),
    ('wikif1','http://www.wikif1.org/$1',0),
    ('wlug','http://www.wlug.org.nz/$1',0),
    ('zwiki','http://zwiki.org/$1',0),
    ('zzz wiki','http://wiki.zzz.ee/index.php/$1',0),

    File "Interwiki.sql" per Progetti Wikimedia più utili

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    -- Based more or less on the public interwiki map from MeatballWiki
    -- Default interwiki prefixes...
     
    REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
    ('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1',0),
    ('mediazilla','http://bugzilla.wikipedia.org/$1',1),
    ('mediawikiwiki','http://www.mediawiki.org/wiki/$1',0),
    ('memoryalpha','http://www.memory-alpha.org/en/index.php/$1',0),
    ('metawiki','http://sunir.org/apps/meta.pl?$1',0),
    ('metawikipedia','http://meta.wikimedia.org/wiki/$1',0),
    ('wiki','http://c2.com/cgi/wiki?$1',0),
    ('wikia','http://www.wikia.com/wiki/$1',0),
    ('wikibooks','http://it.wikibooks.org/wiki/$1',1),
    ('wb','http://it.wikibooks.org/wiki/$1',1),
    ('wikicities','http://www.wikicities.com/index.php/$1',0),
    ('wikihow','http://www.wikihow.com/$1',0),
    ('wikimedia','http://wikimediafoundation.org/wiki/$1',0),
    ('wikiquote','http://it.wikiquote.org/wiki/$1',1),
    ('wikinews','http://it.wikinews.org/wiki/$1',1),
    ('wikisource','http://sources.wikipedia.org/wiki/$1',1),
    ('wikispecies','http://species.wikipedia.org/wiki/$1',1),
    ('wikitravel','http://wikitravel.org/en/$1',0),
    ('wikipedia', 'http://it.wikipedia.org/wiki/$1', 1),
    ('commons','http://commons.wikimedia.org/wiki/$1',0),
    ('comm','http://commons.wikimedia.org/wiki/$1',0),
    ('widg','http://www.mediawikiwidgets.org/$1',1),
    ('wiktionary','http://it.wiktionary.org/wiki/$1',1),
    ('wkz','http://it.wiktionary.org/wiki/$1',1),
    ('wikt','http://it.wiktionary.org/wiki/$1',1),
    ('wikimusica','http://musica.wikimedia.it/wiki/$1',1);

    File "Interwiki.sql" per Altri Progetti wiki

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    -- Based more or less on the public interwiki map from MeatballWiki
    -- Default interwiki prefixes...
     
    REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
    ('scoutpedia','http://it.scoutwiki.org/$1',1),
    ('ufopedia','http://www.ufopedia.it/$1',1),
    ('ufo','http://it.wikiufo.org/index.php?title=$1',1),
    ('ekopedia','http://it.ekopedia.org/$1',1),
    ('eko','http://it.ekopedia.org/$1',1),
    ('wkart','http://www.wikiartpedia.org/index.php?title=$1',1),
    ('wikiart','http://www.wikiartpedia.org/index.php?title=$1',1),
    ('anarch','http://ita.anarchopedia.org/$1',1),
    ('ana','http://ita.anarchopedia.org/$1',1),
    ('oldf','http://wiki.oldfield.es/$1',1),
    ('how','http://www.wikihow.com/$1',1),
    ('howit','http://it.wikihow.com/$1',1),
    ('cath','http://it.cathopedia.org/wiki/$1',1),
    ('kath','http://www.kathpedia.com/index.php?title=$1',1),
    ('cat','http://it.cathopedia.org/wiki/$1',1),
    ('orthodoxwiki','http://orthodoxwiki.org/$1',1),
    ('esopedia','http://www.esopedia.it/index.php?title=$1',1),
    ('eso','http://www.esopedia.it/index.php?title=$1',1),
    ('wikidoc','http://www.wikidoc.org/index.php/$1',1),
    ('mednat','http://www.medicinanaturale.altervista.org/php5/index.php?title=$1',1),
    ('grillip','http://grillipedia.a.wiki-site.com/index.php/$1',1),
    ('wikivoyage','http://www.wikivoyage.org/it/$1',1);


    INTERLANGUAGE

    Vedi, Barra Laterale: Come mettere i Collegamenti interlingua e ad altri wiki.

    Quest'altro invece, per gli interwiki interlanguages (collegamenti sulla Barra Laterale sinistra, che si formano quando le parole vengono racchiuse all'interno di parentesi quadre: [[]], più un prefisso seguito da due punti; esempio: [[it:|]]) ai due progetti internazionali di wikipedia e wikizionario, tradotti in varie lingue.

    Ricordiamo che non potete usare entrambe i file che vi diamo, perché entrano in conflitto all'avere ovviamente gli stessi prefissi di linguaggi nelle tabelle; o usate quelle del wikizionario, oppure quelle di wikipedia. State attenti a deciderlo prima però, perché poi è più difficile cambiarle e cancellarle in blocco.


    File "Wiktionary-interwiki.sql"

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    -- For convenience, here are the *in-project* interwiki prefixes
    -- for Wiktionary.
     
    REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
    ('w','http://www.wikipedia.org/wiki/$1',1),
    ('m','http://meta.wikipedia.org/wiki/$1',1),
    ('meta','http://meta.wikipedia.org/wiki/$1',1),
    ('sep11','http://sep11.wikipedia.org/wiki/$1',1),
    ('simple','http://simple.wiktionary.org/wiki/$1',1),
    ('aa','http://aa.wiktionary.org/wiki/$1',1),
    ('ab','http://ab.wiktionary.org/wiki/$1',1),
    ('af','http://af.wiktionary.org/wiki/$1',1),
    ('ak','http://ak.wiktionary.org/wiki/$1',1),
    ('als','http://als.wiktionary.org/wiki/$1',1),
    ('am','http://am.wiktionary.org/wiki/$1',1),
    ('an','http://an.wiktionary.org/wiki/$1',1),
    ('ang','http://ang.wiktionary.org/wiki/$1',1),
    ('ar','http://ar.wiktionary.org/wiki/$1',1),
    ('as','http://as.wiktionary.org/wiki/$1',1),
    ('ast','http://ast.wiktionary.org/wiki/$1',1),
    ('av','http://av.wiktionary.org/wiki/$1',1),
    ('ay','http://ay.wiktionary.org/wiki/$1',1),
    ('az','http://az.wiktionary.org/wiki/$1',1),
    ('ba','http://ba.wiktionary.org/wiki/$1',1),
    ('be','http://be.wiktionary.org/wiki/$1',1),
    ('bg','http://bg.wiktionary.org/wiki/$1',1),
    ('bh','http://bh.wiktionary.org/wiki/$1',1),
    ('bi','http://bi.wiktionary.org/wiki/$1',1),
    ('bm','http://bm.wiktionary.org/wiki/$1',1),
    ('bn','http://bn.wiktionary.org/wiki/$1',1),
    ('bo','http://bo.wiktionary.org/wiki/$1',1),
    ('br','http://br.wiktionary.org/wiki/$1',1),
    ('bs','http://bs.wiktionary.org/wiki/$1',1),
    ('ca','http://ca.wiktionary.org/wiki/$1',1),
    ('ch','http://ch.wiktionary.org/wiki/$1',1),
    ('chr','http://chr.wiktionary.org/wiki/$1',1),
    ('co','http://co.wiktionary.org/wiki/$1',1),
    ('cr','http://cr.wiktionary.org/wiki/$1',1),
    ('cs','http://cs.wiktionary.org/wiki/$1',1),
    ('csb','http://csb.wiktionary.org/wiki/$1',1),
    ('cy','http://cy.wiktionary.org/wiki/$1',1),
    ('da','http://da.wiktionary.org/wiki/$1',1),
    ('de','http://de.wiktionary.org/wiki/$1',1),
    ('dk','http://da.wiktionary.org/wiki/$1',1),
    ('dv','http://dv.wiktionary.org/wiki/$1',1),
    ('dz','http://dz.wiktionary.org/wiki/$1',1),
    ('el','http://el.wiktionary.org/wiki/$1',1),
    ('en','http://en.wiktionary.org/wiki/$1',1),
    ('eo','http://eo.wiktionary.org/wiki/$1',1),
    ('es','http://es.wiktionary.org/wiki/$1',1),
    ('et','http://et.wiktionary.org/wiki/$1',1),
    ('eu','http://eu.wiktionary.org/wiki/$1',1),
    ('fa','http://fa.wiktionary.org/wiki/$1',1),
    ('fi','http://fi.wiktionary.org/wiki/$1',1),
    ('fj','http://fj.wiktionary.org/wiki/$1',1),
    ('fo','http://fo.wiktionary.org/wiki/$1',1),
    ('fr','http://fr.wiktionary.org/wiki/$1',1),
    ('fy','http://fy.wiktionary.org/wiki/$1',1),
    ('ga','http://ga.wiktionary.org/wiki/$1',1),
    ('gd','http://gd.wiktionary.org/wiki/$1',1),
    ('gl','http://gl.wiktionary.org/wiki/$1',1),
    ('gn','http://gn.wiktionary.org/wiki/$1',1),
    ('gu','http://gu.wiktionary.org/wiki/$1',1),
    ('gv','http://gv.wiktionary.org/wiki/$1',1),
    ('ha','http://ha.wiktionary.org/wiki/$1',1),
    ('he','http://he.wiktionary.org/wiki/$1',1),
    ('hi','http://hi.wiktionary.org/wiki/$1',1),
    ('hr','http://hr.wiktionary.org/wiki/$1',1),
    ('hsb','http://hsb.wiktionary.org/wiki/$1',1),
    ('hu','http://hu.wiktionary.org/wiki/$1',1),
    ('hy','http://hy.wiktionary.org/wiki/$1',1),
    ('ia','http://ia.wiktionary.org/wiki/$1',1),
    ('id','http://id.wiktionary.org/wiki/$1',1),
    ('ie','http://ie.wiktionary.org/wiki/$1',1),
    ('ik','http://ik.wiktionary.org/wiki/$1',1),
    ('io','http://io.wiktionary.org/wiki/$1',1),
    ('is','http://is.wiktionary.org/wiki/$1',1),
    ('it','http://it.wiktionary.org/wiki/$1',1),
    ('iu','http://iu.wiktionary.org/wiki/$1',1),
    ('ja','http://ja.wiktionary.org/wiki/$1',1),
    ('jbo','http://jbo.wiktionary.org/wiki/$1',1),
    ('jv','http://jv.wiktionary.org/wiki/$1',1),
    ('ka','http://ka.wiktionary.org/wiki/$1',1),
    ('kk','http://kk.wiktionary.org/wiki/$1',1),
    ('kl','http://kl.wiktionary.org/wiki/$1',1),
    ('km','http://km.wiktionary.org/wiki/$1',1),
    ('kn','http://kn.wiktionary.org/wiki/$1',1),
    ('ko','http://ko.wiktionary.org/wiki/$1',1),
    ('ks','http://ks.wiktionary.org/wiki/$1',1),
    ('ku','http://ku.wiktionary.org/wiki/$1',1),
    ('kw','http://kw.wiktionary.org/wiki/$1',1),
    ('ky','http://ky.wiktionary.org/wiki/$1',1),
    ('la','http://la.wiktionary.org/wiki/$1',1),
    ('lb','http://lb.wiktionary.org/wiki/$1',1),
    ('li','http://li.wiktionary.org/wiki/$1',1),
    ('ln','http://ln.wiktionary.org/wiki/$1',1),
    ('lo','http://lo.wiktionary.org/wiki/$1',1),
    ('lt','http://lt.wiktionary.org/wiki/$1',1),
    ('lv','http://lv.wiktionary.org/wiki/$1',1),
    ('mg','http://mg.wiktionary.org/wiki/$1',1),
    ('mh','http://mh.wiktionary.org/wiki/$1',1),
    ('mi','http://mi.wiktionary.org/wiki/$1',1),
    ('mk','http://mk.wiktionary.org/wiki/$1',1),
    ('ml','http://ml.wiktionary.org/wiki/$1',1),
    ('mn','http://mn.wiktionary.org/wiki/$1',1),
    ('mo','http://mo.wiktionary.org/wiki/$1',1),
    ('mr','http://mr.wiktionary.org/wiki/$1',1),
    ('ms','http://ms.wiktionary.org/wiki/$1',1),
    ('mt','http://mt.wiktionary.org/wiki/$1',1),
    ('my','http://my.wiktionary.org/wiki/$1',1),
    ('na','http://na.wiktionary.org/wiki/$1',1),
    ('nah','http://nah.wiktionary.org/wiki/$1',1),
    ('nb', 'http://no.wiktionary.org/wiki/$1',1),
    ('nds','http://nds.wiktionary.org/wiki/$1',1),
    ('ne','http://ne.wiktionary.org/wiki/$1',1),
    ('nl','http://nl.wiktionary.org/wiki/$1',1),
    ('nn','http://nn.wiktionary.org/wiki/$1',1),
    ('no','http://no.wiktionary.org/wiki/$1',1),
    ('oc','http://oc.wiktionary.org/wiki/$1',1),
    ('om','http://om.wiktionary.org/wiki/$1',1),
    ('or','http://or.wiktionary.org/wiki/$1',1),
    ('pa','http://pa.wiktionary.org/wiki/$1',1),
    ('pi','http://pi.wiktionary.org/wiki/$1',1),
    ('pl','http://pl.wiktionary.org/wiki/$1',1),
    ('ps','http://ps.wiktionary.org/wiki/$1',1),
    ('pt','http://pt.wiktionary.org/wiki/$1',1),
    ('qu','http://qu.wiktionary.org/wiki/$1',1),
    ('rm','http://rm.wiktionary.org/wiki/$1',1),
    ('rn','http://rn.wiktionary.org/wiki/$1',1),
    ('ro','http://ro.wiktionary.org/wiki/$1',1),
    ('roa-rup','http://roa-rup.wiktionary.org/wiki/$1',1),
    ('ru','http://ru.wiktionary.org/wiki/$1',1),
    ('rw','http://rw.wiktionary.org/wiki/$1',1),
    ('sa','http://sa.wiktionary.org/wiki/$1',1),
    ('sc','http://sc.wiktionary.org/wiki/$1',1),
    ('scn','http://scn.wiktionary.org/wiki/$1',1),
    ('sd','http://sd.wiktionary.org/wiki/$1',1),
    ('sg','http://sg.wiktionary.org/wiki/$1',1),
    ('sh','http://sh.wiktionary.org/wiki/$1',1),
    ('si','http://si.wiktionary.org/wiki/$1',1),
    ('sk','http://sk.wiktionary.org/wiki/$1',1),
    ('sl','http://sl.wiktionary.org/wiki/$1',1),
    ('sm','http://sm.wiktionary.org/wiki/$1',1),
    ('sn','http://sn.wiktionary.org/wiki/$1',1),
    ('so','http://so.wiktionary.org/wiki/$1',1),
    ('sq','http://sq.wiktionary.org/wiki/$1',1),
    ('sr','http://sr.wiktionary.org/wiki/$1',1),
    ('ss','http://ss.wiktionary.org/wiki/$1',1),
    ('st','http://st.wiktionary.org/wiki/$1',1),
    ('su','http://su.wiktionary.org/wiki/$1',1),
    ('sv','http://sv.wiktionary.org/wiki/$1',1),
    ('sw','http://sw.wiktionary.org/wiki/$1',1),
    ('ta','http://ta.wiktionary.org/wiki/$1',1),
    ('te','http://te.wiktionary.org/wiki/$1',1),
    ('tg','http://tg.wiktionary.org/wiki/$1',1),
    ('th','http://th.wiktionary.org/wiki/$1',1),
    ('ti','http://ti.wiktionary.org/wiki/$1',1),
    ('tk','http://tk.wiktionary.org/wiki/$1',1),
    ('tl','http://tl.wiktionary.org/wiki/$1',1),
    ('tn','http://tn.wiktionary.org/wiki/$1',1),
    ('to','http://to.wiktionary.org/wiki/$1',1),
    ('tokipona','http://tokipona.wiktionary.org/wiki/$1',1),
    ('tpi','http://tpi.wiktionary.org/wiki/$1',1),
    ('tr','http://tr.wiktionary.org/wiki/$1',1),
    ('ts','http://ts.wiktionary.org/wiki/$1',1),
    ('tt','http://tt.wiktionary.org/wiki/$1',1),
    ('tw','http://tw.wiktionary.org/wiki/$1',1),
    ('ug','http://ug.wiktionary.org/wiki/$1',1),
    ('uk','http://uk.wiktionary.org/wiki/$1',1),
    ('ur','http://ur.wiktionary.org/wiki/$1',1),
    ('uz','http://uz.wiktionary.org/wiki/$1',1),
    ('vi','http://vi.wiktionary.org/wiki/$1',1),
    ('vo','http://vo.wiktionary.org/wiki/$1',1),
    ('wa','http://wa.wiktionary.org/wiki/$1',1),
    ('wo','http://wo.wiktionary.org/wiki/$1',1),
    ('xh','http://xh.wiktionary.org/wiki/$1',1),
    ('yi','http://yi.wiktionary.org/wiki/$1',1),
    ('yo','http://yo.wiktionary.org/wiki/$1',1),
    ('za','http://za.wiktionary.org/wiki/$1',1),
    ('zh','http://zh.wiktionary.org/wiki/$1',1),
    ('zh-cn','http://zh.wiktionary.org/wiki/$1',1),
    ('zh-min-nan','http://zh-min-nan.wiktionary.org/wiki/$1',1),
    ('zh-tw','http://zh.wiktionary.org/wiki/$1',1),
    ('zu','http://zu.wiktionary.org/wiki/$1',1);

    File "Wikipedia-interwiki.sql"

    TESTO DA AGGIUNGERE PER CREARE LA TABELLA (andate sul 'Manage MySQL' dal pannello di comandi del vostro sito)

    -- For convenience, here are the *in-project* interwiki prefixes
    -- for Wikipedia.
     
    REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
    -- Non-Wikipedia sites:
    ('q','http://en.wikiquote.org/wiki/$1',1),
    ('b','http://en.wikibooks.org/wiki/$1',1),
    ('s','http://en.wikisource.org/wiki/$1',1),
    ('n','http://en.wikinews.org/wiki/$1',1),
    ('v','http://en.wikiversity.org/wiki/$1',1),
    ('meta','http://meta.wikimedia.org/wiki/$1',1),
    ('m','http://meta.wikimedia.org/wiki/$1',1),
    -- An alphabetical list of Wikipedia sites:
    ('aa','http://aa.wikipedia.org/wiki/$1',1),
    ('ab','http://ab.wikipedia.org/wiki/$1',1),
    ('af','http://af.wikipedia.org/wiki/$1',1),
    ('ak','http://ak.wikipedia.org/wiki/$1',1),
    ('als','http://als.wikipedia.org/wiki/$1',1),
    ('am','http://am.wikipedia.org/wiki/$1',1),
    ('an','http://an.wikipedia.org/wiki/$1',1),
    ('ang','http://ang.wikipedia.org/wiki/$1',1),
    ('ar','http://ar.wikipedia.org/wiki/$1',1),
    ('arc','http://arc.wikipedia.org/wiki/$1',1),
    ('as','http://as.wikipedia.org/wiki/$1',1),
    ('ast','http://ast.wikipedia.org/wiki/$1',1),
    ('av','http://av.wikipedia.org/wiki/$1',1),
    ('ay','http://ay.wikipedia.org/wiki/$1',1),
    ('az','http://az.wikipedia.org/wiki/$1',1),
    ('ba','http://ba.wikipedia.org/wiki/$1',1),
    ('bar','http://bar.wikipedia.org/wiki/$1',1),
    ('bat-smg','http://bat-smg.wikipedia.org/wiki/$1',1),
    ('bcl','http://bcl.wikipedia.org/wiki/$1',1),
    ('be','http://be.wikipedia.org/wiki/$1',1),
    ('be-x-old','http://be-x-old.wikipedia.org/wiki/$1',1),
    ('bg','http://bg.wikipedia.org/wiki/$1',1),
    ('bh','http://bh.wikipedia.org/wiki/$1',1),
    ('bi','http://bi.wikipedia.org/wiki/$1',1),
    ('bm','http://bm.wikipedia.org/wiki/$1',1),
    ('bn','http://bn.wikipedia.org/wiki/$1',1),
    ('bo','http://bo.wikipedia.org/wiki/$1',1),
    ('bpy','http://bpy.wikipedia.org/wiki/$1',1),
    ('br','http://br.wikipedia.org/wiki/$1',1),
    ('bs','http://bs.wikipedia.org/wiki/$1',1),
    ('bug','http://bug.wikipedia.org/wiki/$1',1),
    ('bxr','http://bxr.wikipedia.org/wiki/$1',1),
    ('ca','http://ca.wikipedia.org/wiki/$1',1),
    ('cbk-zam','http://cbk-zam.wikipedia.org/wiki/$1',1),
    ('cdo','http://cdo.wikipedia.org/wiki/$1',1),
    ('ce','http://ce.wikipedia.org/wiki/$1',1),
    ('ceb','http://ceb.wikipedia.org/wiki/$1',1),
    ('ch','http://ch.wikipedia.org/wiki/$1',1),
    ('cho','http://cho.wikipedia.org/wiki/$1',1),
    ('chr','http://chr.wikipedia.org/wiki/$1',1),
    ('chy','http://chy.wikipedia.org/wiki/$1',1),
    ('co','http://co.wikipedia.org/wiki/$1',1),
    ('cr','http://cr.wikipedia.org/wiki/$1',1),
    ('crh','http://crh.wikipedia.org/wiki/$1',1),
    ('cs','http://cs.wikipedia.org/wiki/$1',1),
    ('csb','http://csb.wikipedia.org/wiki/$1',1),
    ('cu','http://cu.wikipedia.org/wiki/$1',1),
    ('cv','http://cv.wikipedia.org/wiki/$1',1),
    ('cy','http://cy.wikipedia.org/wiki/$1',1),
    ('da','http://da.wikipedia.org/wiki/$1',1),
    ('de','http://de.wikipedia.org/wiki/$1',1),
    ('diq','http://diq.wikipedia.org/wiki/$1',1),
    ('dk','http://da.wikipedia.org/wiki/$1',1),
    ('dsb','http://dsb.wikipedia.org/wiki/$1',1),
    ('dv','http://dv.wikipedia.org/wiki/$1',1),
    ('dz','http://dz.wikipedia.org/wiki/$1',1),
    ('ee','http://ee.wikipedia.org/wiki/$1',1),
    ('el','http://el.wikipedia.org/wiki/$1',1),
    ('en','http://en.wikipedia.org/wiki/$1',1),
    ('eo','http://eo.wikipedia.org/wiki/$1',1),
    ('es','http://es.wikipedia.org/wiki/$1',1),
    ('et','http://et.wikipedia.org/wiki/$1',1),
    ('eu','http://eu.wikipedia.org/wiki/$1',1),
    ('ext','http://ext.wikipedia.org/wiki/$1',1),
    ('fa','http://fa.wikipedia.org/wiki/$1',1),
    ('ff','http://ff.wikipedia.org/wiki/$1',1),
    ('fi','http://fi.wikipedia.org/wiki/$1',1),
    ('fiu-vro','http://fiu-vro.wikipedia.org/wiki/$1',1),
    ('fj','http://fj.wikipedia.org/wiki/$1',1),
    ('fo','http://fo.wikipedia.org/wiki/$1',1),
    ('fr','http://fr.wikipedia.org/wiki/$1',1),
    ('frp','http://frp.wikipedia.org/wiki/$1',1),
    ('fur','http://fur.wikipedia.org/wiki/$1',1),
    ('fy','http://fy.wikipedia.org/wiki/$1',1),
    ('ga','http://ga.wikipedia.org/wiki/$1',1),
    ('gan','http://gan.wikipedia.org/wiki/$1',1),
    ('gd','http://gd.wikipedia.org/wiki/$1',1),
    ('gl','http://gl.wikipedia.org/wiki/$1',1),
    ('glk','http://glk.wikipedia.org/wiki/$1',1),
    ('gn','http://gn.wikipedia.org/wiki/$1',1),
    ('got','http://got.wikipedia.org/wiki/$1',1),
    ('gu','http://gu.wikipedia.org/wiki/$1',1),
    ('gv','http://gv.wikipedia.org/wiki/$1',1),
    ('ha','http://ha.wikipedia.org/wiki/$1',1),
    ('hak','http://hak.wikipedia.org/wiki/$1',1),
    ('haw','http://haw.wikipedia.org/wiki/$1',1),
    ('he','http://he.wikipedia.org/wiki/$1',1),
    ('hi','http://hi.wikipedia.org/wiki/$1',1),
    ('hif','http://hif.wikipedia.org/wiki/$1',1),
    ('ho','http://ho.wikipedia.org/wiki/$1',1),
    ('hr','http://hr.wikipedia.org/wiki/$1',1),
    ('hsb','http://hsb.wikipedia.org/wiki/$1',1),
    ('ht','http://ht.wikipedia.org/wiki/$1',1),
    ('hu','http://hu.wikipedia.org/wiki/$1',1),
    ('hy','http://hy.wikipedia.org/wiki/$1',1),
    ('hz','http://hz.wikipedia.org/wiki/$1',1),
    ('ia','http://ia.wikipedia.org/wiki/$1',1),
    ('id','http://id.wikipedia.org/wiki/$1',1),
    ('ie','http://ie.wikipedia.org/wiki/$1',1),
    ('ig','http://ig.wikipedia.org/wiki/$1',1),
    ('ii','http://ii.wikipedia.org/wiki/$1',1),
    ('ik','http://ik.wikipedia.org/wiki/$1',1),
    ('ilo','http://ilo.wikipedia.org/wiki/$1',1),
    ('io','http://io.wikipedia.org/wiki/$1',1),
    ('is','http://is.wikipedia.org/wiki/$1',1),
    ('it','http://it.wikipedia.org/wiki/$1',1),
    ('iu','http://iu.wikipedia.org/wiki/$1',1),
    ('ja','http://ja.wikipedia.org/wiki/$1',1),
    ('jbo','http://jbo.wikipedia.org/wiki/$1',1),
    ('jv','http://jv.wikipedia.org/wiki/$1',1),
    ('ka','http://ka.wikipedia.org/wiki/$1',1),
    ('kab','http://kab.wikipedia.org/wiki/$1',1),
    ('kg','http://kg.wikipedia.org/wiki/$1',1),
    ('ki','http://ki.wikipedia.org/wiki/$1',1),
    ('kj','http://kj.wikipedia.org/wiki/$1',1),
    ('kk','http://kk.wikipedia.org/wiki/$1',1),
    ('kl','http://kl.wikipedia.org/wiki/$1',1),
    ('km','http://km.wikipedia.org/wiki/$1',1),
    ('kn','http://kn.wikipedia.org/wiki/$1',1),
    ('ko','http://ko.wikipedia.org/wiki/$1',1),
    ('kr','http://kr.wikipedia.org/wiki/$1',1),
    ('ks','http://ks.wikipedia.org/wiki/$1',1),
    ('ksh','http://ksh.wikipedia.org/wiki/$1',1),
    ('ku','http://ku.wikipedia.org/wiki/$1',1),
    ('kv','http://kv.wikipedia.org/wiki/$1',1),
    ('kw','http://kw.wikipedia.org/wiki/$1',1),
    ('ky','http://ky.wikipedia.org/wiki/$1',1),
    ('la','http://la.wikipedia.org/wiki/$1',1),
    ('lad','http://lad.wikipedia.org/wiki/$1',1),
    ('lb','http://lb.wikipedia.org/wiki/$1',1),
    ('lbe','http://lbe.wikipedia.org/wiki/$1',1),
    ('lg','http://lg.wikipedia.org/wiki/$1',1),
    ('li','http://li.wikipedia.org/wiki/$1',1),
    ('lij','http://lij.wikipedia.org/wiki/$1',1),
    ('lmo','http://lmo.wikipedia.org/wiki/$1',1),
    ('ln','http://ln.wikipedia.org/wiki/$1',1),
    ('lo','http://lo.wikipedia.org/wiki/$1',1),
    ('lt','http://lt.wikipedia.org/wiki/$1',1),
    ('lv','http://lv.wikipedia.org/wiki/$1',1),
    ('map-bms','http://map-bms.wikipedia.org/wiki/$1',1),
    ('mdf','http://mdf.wikipedia.org/wiki/$1',1),
    ('mg','http://mg.wikipedia.org/wiki/$1',1),
    ('mh','http://mh.wikipedia.org/wiki/$1',1),
    ('mi','http://mi.wikipedia.org/wiki/$1',1),
    ('minnan','http://zh-min-nan.wikipedia.org/wiki/$1',1),
    ('mk','http://mk.wikipedia.org/wiki/$1',1),
    ('ml','http://ml.wikipedia.org/wiki/$1',1),
    ('mn','http://mn.wikipedia.org/wiki/$1',1),
    ('mo','http://mo.wikipedia.org/wiki/$1',1),
    ('mr','http://mr.wikipedia.org/wiki/$1',1),
    ('ms','http://ms.wikipedia.org/wiki/$1',1),
    ('mt','http://mt.wikipedia.org/wiki/$1',1),
    ('mus','http://mus.wikipedia.org/wiki/$1',1),
    ('my','http://my.wikipedia.org/wiki/$1',1),
    ('myv','http://myv.wikipedia.org/wiki/$1',1),
    ('mzn','http://mzn.wikipedia.org/wiki/$1',1),
    ('na','http://na.wikipedia.org/wiki/$1',1),
    ('nah','http://nah.wikipedia.org/wiki/$1',1),
    ('nan','http://zh-min-nan.wikipedia.org/wiki/$1',1),
    ('nap','http://nap.wikipedia.org/wiki/$1',1),
    ('nb','http://nb.wikipedia.org/wiki/$1',1),
    ('nds','http://nds.wikipedia.org/wiki/$1',1),
    ('nds-nl','http://nds-nl.wikipedia.org/wiki/$1',1),
    ('ne','http://ne.wikipedia.org/wiki/$1',1),
    ('ng','http://ng.wikipedia.org/wiki/$1',1),
    ('nl','http://nl.wikipedia.org/wiki/$1',1),
    ('nn','http://nn.wikipedia.org/wiki/$1',1),
    ('no','http://no.wikipedia.org/wiki/$1',1),
    ('nov','http://nov.wikipedia.org/wiki/$1',1),
    ('nrm','http://nrm.wikipedia.org/wiki/$1',1),
    ('nv','http://nv.wikipedia.org/wiki/$1',1),
    ('ny','http://ny.wikipedia.org/wiki/$1',1),
    ('oc','http://oc.wikipedia.org/wiki/$1',1),
    ('om','http://om.wikipedia.org/wiki/$1',1),
    ('or','http://or.wikipedia.org/wiki/$1',1),
    ('os','http://os.wikipedia.org/wiki/$1',1),
    ('pa','http://pa.wikipedia.org/wiki/$1',1),
    ('pag','http://pag.wikipedia.org/wiki/$1',1),
    ('pam','http://pam.wikipedia.org/wiki/$1',1),
    ('pap','http://pap.wikipedia.org/wiki/$1',1),
    ('pdc','http://pdc.wikipedia.org/wiki/$1',1),
    ('pi','http://pi.wikipedia.org/wiki/$1',1),
    ('pih','http://pih.wikipedia.org/wiki/$1',1),
    ('pl','http://pl.wikipedia.org/wiki/$1',1),
    ('pms','http://pms.wikipedia.org/wiki/$1',1),
    ('ps','http://ps.wikipedia.org/wiki/$1',1),
    ('pt','http://pt.wikipedia.org/wiki/$1',1),
    ('qu','http://qu.wikipedia.org/wiki/$1',1),
    ('rm','http://rm.wikipedia.org/wiki/$1',1),
    ('rmy','http://rmy.wikipedia.org/wiki/$1',1),
    ('rn','http://rn.wikipedia.org/wiki/$1',1),
    ('ro','http://ro.wikipedia.org/wiki/$1',1),
    ('roa-rup','http://roa-rup.wikipedia.org/wiki/$1',1),
    ('roa-tara','http://roa-tara.wikipedia.org/wiki/$1',1),
    ('ru','http://ru.wikipedia.org/wiki/$1',1),
    ('rw','http://rw.wikipedia.org/wiki/$1',1),
    ('sa','http://sa.wikipedia.org/wiki/$1',1),
    ('sah','http://sah.wikipedia.org/wiki/$1',1),
    ('sc','http://sc.wikipedia.org/wiki/$1',1),
    ('scn','http://scn.wikipedia.org/wiki/$1',1),
    ('sco','http://sco.wikipedia.org/wiki/$1',1),
    ('sd','http://sd.wikipedia.org/wiki/$1',1),
    ('se','http://se.wikipedia.org/wiki/$1',1),
    ('sep11','http://sep11.wikipedia.org/wiki/$1',1),
    ('sg','http://sg.wikipedia.org/wiki/$1',1),
    ('sh','http://sh.wikipedia.org/wiki/$1',1),
    ('si','http://si.wikipedia.org/wiki/$1',1),
    ('simple','http://simple.wikipedia.org/wiki/$1',1),
    ('sk','http://sk.wikipedia.org/wiki/$1',1),
    ('sl','http://sl.wikipedia.org/wiki/$1',1),
    ('sm','http://sm.wikipedia.org/wiki/$1',1),
    ('sn','http://sn.wikipedia.org/wiki/$1',1),
    ('so','http://so.wikipedia.org/wiki/$1',1),
    ('sq','http://sq.wikipedia.org/wiki/$1',1),
    ('sr','http://sr.wikipedia.org/wiki/$1',1),
    ('srn','http://srn.wikipedia.org/wiki/$1',1),
    ('ss','http://ss.wikipedia.org/wiki/$1',1),
    ('st','http://st.wikipedia.org/wiki/$1',1),
    ('stq','http://stq.wikipedia.org/wiki/$1',1),
    ('su','http://su.wikipedia.org/wiki/$1',1),
    ('sv','http://sv.wikipedia.org/wiki/$1',1),
    ('sw','http://sw.wikipedia.org/wiki/$1',1),
    ('szl','http://szl.wikipedia.org/wiki/$1',1),
    ('ta','http://ta.wikipedia.org/wiki/$1',1),
    ('te','http://te.wikipedia.org/wiki/$1',1),
    ('tet','http://tet.wikipedia.org/wiki/$1',1),
    ('tg','http://tg.wikipedia.org/wiki/$1',1),
    ('th','http://th.wikipedia.org/wiki/$1',1),
    ('ti','http://ti.wikipedia.org/wiki/$1',1),
    ('tk','http://tk.wikipedia.org/wiki/$1',1),
    ('tl','http://tl.wikipedia.org/wiki/$1',1),
    ('tlh','http://tlh.wikipedia.org/wiki/$1',1),
    ('tn','http://tn.wikipedia.org/wiki/$1',1),
    ('to','http://to.wikipedia.org/wiki/$1',1),
    ('tokipona','http://tokipona.wikipedia.org/wiki/$1',1),
    ('tpi','http://tpi.wikipedia.org/wiki/$1',1),
    ('tr','http://tr.wikipedia.org/wiki/$1',1),
    ('ts','http://ts.wikipedia.org/wiki/$1',1),
    ('tt','http://tt.wikipedia.org/wiki/$1',1),
    ('tum','http://tum.wikipedia.org/wiki/$1',1),
    ('tw','http://tw.wikipedia.org/wiki/$1',1),
    ('ty','http://ty.wikipedia.org/wiki/$1',1),
    ('udm','http://udm.wikipedia.org/wiki/$1',1),
    ('ug','http://ug.wikipedia.org/wiki/$1',1),
    ('uk','http://uk.wikipedia.org/wiki/$1',1),
    ('ur','http://ur.wikipedia.org/wiki/$1',1),
    ('uz','http://uz.wikipedia.org/wiki/$1',1),
    ('ve','http://ve.wikipedia.org/wiki/$1',1),
    ('vec','http://vec.wikipedia.org/wiki/$1',1),
    ('vi','http://vi.wikipedia.org/wiki/$1',1),
    ('vls','http://vls.wikipedia.org/wiki/$1',1),
    ('vo','http://vo.wikipedia.org/wiki/$1',1),
    ('w','http://en.wikipedia.org/wiki/$1',1),
    ('wa','http://wa.wikipedia.org/wiki/$1',1),
    ('war','http://war.wikipedia.org/wiki/$1',1),
    ('wo','http://wo.wikipedia.org/wiki/$1',1),
    ('wuu','http://wuu.wikipedia.org/wiki/$1',1),
    ('xal','http://xal.wikipedia.org/wiki/$1',1),
    ('xh','http://xh.wikipedia.org/wiki/$1',1),
    ('yi','http://yi.wikipedia.org/wiki/$1',1),
    ('yo','http://yo.wikipedia.org/wiki/$1',1),
    ('yue','http://zh-yue.wikipedia.org/wiki/$1',1),
    ('za','http://za.wikipedia.org/wiki/$1',1),
    ('zea','http://zea.wikipedia.org/wiki/$1',1),
    ('zh','http://zh.wikipedia.org/wiki/$1',1),
    ('zh-cfr','http://zh-min-nan.wikipedia.org/wiki/$1',1),
    ('zh-classical','http://zh-classical.wikipedia.org/wiki/$1',1),
    ('zh-cn','http://zh.wikipedia.org/wiki/$1',1),
    ('zh-min-nan','http://zh-min-nan.wikipedia.org/wiki/$1',1),
    ('zh-tw','http://zh.wikipedia.org/wiki/$1',1),
    ('zh-yue','http://zh-yue.wikipedia.org/wiki/$1',1),
    ('zu','http://zu.wikipedia.org/wiki/$1',1);



    Elenco dei manuali

    Manuali online in italiano delle Estensioni Mediawiki, trattate in questo Manuale.


    ELENCO

    Cerchiamo qui di seguito di fornire una traduzione all'italiano dei manuali online in inglese delle estensioni, presenti su Mediawiki.


    Vai a: Estensione PdfHandler.
    Vai a: Estensione MultiLanguageManager.
    Vai a: Estensione AbuseFilter.
    Vai a: Estensione ConfirmEdit.
    Vai a: Estensione ConfirmAccount.
    Vai a: Estensione Mimetex.
    Vai a: Estensione SyntaxHighlight GeSHi.
    Vai a: Estensione Widgets.
    Vai a: Estensione Collection.
    Vai a: Estensione ImageMap.
    Vai a: Estensione GoogleSiteSearch.
    Vai a: Estensione AWC's MediaWiki Forum.
    Vai a: Estensione WarnNoCategories.





    Estensione Collection

    box che appare sulla Barra laterale

    L'estensione Collection permette di salvare i testi del wiki in formato PDF (e anche in altri formati: odt per Openoffice, xhtml, ecc...).

    Per farlo, utilizza un programma esterno scritto in linguaggio Python e sviluppato da



    Utilizzare il servizio online (dal loro Server)

    Le istruzioni consigliano, per siti wiki con traffico limitato, di utlilizzare il loro servizio online

    impostandone il link in Collection.php, il file principale dell'Estensione;

    di cui riportiamo qui il pezzo di codice:

    Code

    /** URL of mw-serve render server */
    $wgCollectionMWServeURL = 'http://tools.pediapress.com/mw-serve/';


    Invece per siti wiki con grande volume di traffico, viene consigliato di installare su un proprio server "privato" il software generante i Pdf (in genere, questo tipo di server si "affittano" e hanno un prezzo variabile di 30 o più euro mensili).


    Intorno alla metà di agosto 2011, però, il loro servizio ufficiale ha smesso di funzionare alcuni giorni (forse per manutenzione), ragion per cui vi consigliamo, se scegliete d'installarvi questa Estensione utilizzando questa modalità, di far affidamento anche sulle altre per Pdf ugualmente valide, che vi abbiamo segnalato nei capitoli precedenti, perché esse non vi daranno invece alcun tipo di problema, essendo installate e lavorando completamente sul vostro spazio hosting.


    Installazione del software su di un proprio Server

    A radice di ciò abbiamo quindi deciso di installare su un nostro server in proprio, seguendo le istruzioni riportate a questi link:

    in particolare, è necessario instalare i programmi mwlib e mwlib.rl:


    Sul server usato da noi girava ubuntu 10.04 con Php "retrocesso" alla versione 5.2.10 (in quanto la versione 5.3, di default su questa distribuzione, crea problemi come abbiamo già spiegato nell'Introduzione, a diversi applicativi, compreso mediawiki)

    Dopo l'installazione, lanciamo in esecuzione il programma mw-serve, che, di default, risponde alle richieste da internet sulla porta 8899


    Codice

    Si può allora procedere a modificare il codice nel file Collection.php, in questo modo:

    /** URL of mw-serve render server */
    $wgCollectionMWServeURL = 'http://ROOT-DEL-PROPRIO-SERVER:8899';


    La prova è stata fatta sull' estensione Collection installata su tre siti wiki

    ospitati da tre diversi provider:


    Bug

    Solo quello su tucows.com funzionava però regolarmente; mentre gli altri due, sembrava non inviassero neppure le richieste al server.

    Immaginiamo si sia trattato di un problema di sicurezza: alcuni provider non gradiscono infatti che i siti da loro ospitati possano collegarsi a server esterni che rispondono a porte "fuori standard", come la 8899 appunto (invece della classica porta 80).


    Uso del Server in modalità CGI

    Per ovviare al problema, abbiamo seguito le istruzioni riportate qui:


    dove è citato l' uso del server in modalità CGI (usata dai server web apache per far girare programmi all'interno dello spazio web), utilizzando un "fantomatico" script mwlib.cgi.

    Fantomatico perché, pur essendo citato, non viene fornito alcun link per scaricarlo!


    Script "mwlib.cgi"

    Per fortuna, cercando troviamo lo script a quest'indirizzo:


    Lo abbiamo dunque attivato sul nostro server

    e a quel punto, dopo aver modificato nuovamente il file Collection.php, tutte le estensioni installate nei diversi wiki hanno funzionato senza ulteriori problemi.


    Eccovi lo Script (ricordate, che dovrete essere esperti un minimo in codice di programmazione, per poterlo modificare e riempirlo con i dati personali del vostro server):

    Vai a: Script mwlib.cgi.




    Script mwlib.cgi

    #! /usr/bin/env python
     
    """This is the "CGI equivalent" of mw-serve. Adjust the configuration
    variables
    below and install this script as CGI script for your web server.
    """
     
    # Configuration:
     
    # Name of logfile or None if log output should go to stderr.
    #LOGFILE = None
    LOGFILE = '/var/log/mwlib.cgi.log'
     
    # Cache directory. Must be writeable.
    CACHE_DIR = '/var/cache/mw-serve/'
     
    # (Path to) mw-render executable.
    MWRENDER = 'mw-render'
     
    # Logfile for mw-render.
    MWRENDER_LOGFILE = '/var/log/mw-render.log'
    #MWRENDER_LOGFILE = None
    # (Path to) mw-zip executable.
    MWZIP = 'mw-zip'
     
    # Logfile for mw-zip.
    MWZIP_LOGFILE = '/var/log/mw-zip.log'
    #MWZIP_LOGFILE = None
    # (Path to) mw-post executable.
    MWPOST = 'mw-post'
     
    # Logfile for mw-post.
    MWPOST_LOGFILE = '/var/log/mw-post.log'
    #MWPOST_LOGFILE = None
    # Queue directory for mw-watch or None if no queue should be used
    QUEUE_DIR = None
    #QUEUE_DIR = '/var/cache/mw-watch/q'
     
    #==============================================================================
     
    import os
    import sys
     
    from flup.server.cgi import WSGIServer
     
    from mwlib import serve, utils
     
    if os.name == 'nt':
        import msvcrt
        if hasattr(sys.stdout, 'fileno') and sys.stdout.fileno() >= 0:
            msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
     
    if LOGFILE is not None:
        utils.start_logging(LOGFILE, stderr_only=True)
     
    WSGIServer(serve.Application(
        cache_dir=CACHE_DIR,
        mwrender_cmd=MWRENDER,
        mwrender_logfile=MWRENDER_LOGFILE,
        mwzip_cmd=MWZIP,
        mwzip_logfile=MWZIP_LOGFILE,
        mwpost_cmd=MWPOST,
        mwpost_logfile=MWPOST_LOGFILE,
        queue_dir=QUEUE_DIR,
    )).run()




    Estensione Mimetex


    Oltre ad attivare l'estensione in LocalSettings.php

    dovete anche cambiare il file EditPage.php

    che trovate nella directory: /includes/ dove avete installato il vostro wiki.


    Questo, consente di cambiare il bottone del vostro testo editor [26], col nuovo Tag;

    ossia, da Math a <tex> e </tex> tags.


    Si tratta di appiccicare appena prima di

    (cp EditPage.php EditPage.php~)


    questo nuovo pezzo di codice:

    array(  'image' =>'button_math.png',
            'open'  =>   "<tex>",
            'close' =>   "</tex>",
            'sample'=>   wfMsg('math_sample'),
            'tip'   =>   wfMsg('math_tip'),
            'key'   =>   'C'

    Se usate Mediawiki v.1.14, potete sostituire anche il file EditPage.php, con il nostro:


    La "Variabile"


    Sul Local Settings lasciatela pure attiva se prevedete di utilizzare l'Ext "Mimetex", ma non usate più il parametro <match>. Attivandola, vi apparirà infatti anche un messaggio di errore ogniqualvolta s'inseriscono delle formule matematiche nelle pagine del vostro wiki, per ricordarvi appunto che non avete il necessario software installato. Quindi, attivatela solo se lo avete, ed utilizzate il parametro <tex> al posto di quello vecchio di <match>.


    (Per vedere se funziona, inserite poi una Formula matematica, tipo questa: <tex>2^3</tex> in una qualsiasi pagina del vostro wiki.)


    Per approfondire, vedi Local Settings: Abilitare supporto Math.




    Estensione ImageMap





    Estensione GoogleSiteSearch





    Estensione AWC's MediaWiki Forum



    Cambi al Load forum.php

    Nella nostra versione che vi forniamo zippata, abbiamo semplicemente fatto dei cambi nel file load forum.php, che trovate in \awc\forums\includes\load\, nella cartella delle Estensioni dove avete installato il vostro wiki. In realtà, vi troverete il file php originale e assieme ad esso, il nostro, rinominato in: Load forum.php2. Se volete usarlo, rinominatelo per sostituirlo all'altro.

    Questo che vi forniamo, toglie dalle pagine la dicitura:

     AWC's: 2.6.0 MediaWiki - Stand Alone Forum Extension
              Forum theme style by: AWC

    per farlo, abbiamo disabilitato semplicemente queste linee:

            // Read the top please... http://google.com/search?q=Special:AWCforum will bring up your site sooner or later...
            #$wgOut->addHTML('<br /><hr>
                #<center>
                    #<a href="http://wiki.anotherwebcom.com" target="_blank" title="PHP, Visual Basic  scripts and programs">AWC\'s</a>:
                     #<b>'.$awcs_forum_config->cf_forumversion.'</b> MediaWiki - '.$awc_info.'<br />'.$css_ver_info.'</center>');

    cosa che potete fare anche voi, manualmente.

    Noi l'abbiamo tolto perchè il link di reindirizzamento sulle lettere AWC risulta errato e non abbiamo trovato il modo di correggerlo, preferendo dare le informazioni relative nella pagina omonima del nostro wiki, sul quale abbiamo installato il forum. Ma la scelta di toglierlo, può anche essere fatta semplicemente per motivi estetici.

    (per riattivare, cancellate il simbolo # davanti)







    il LocalSettings

    Il file LocalSettings.php, è quello che vi consente d'impostare i permessi, le estensioni, e altri criteri del vostro wiki; deve trovarsi nella root principale, dove avrete installato il vostro wiki (all'inizio si trova sotto la cartella 'config'; però, appena dopo l'installazione, vi viene detto subito di spostarlo in quella principale e suggerito di cancellare la cartella.)

    Per approfondire, vedi Manuale MediaWiki/Estensioni/rigacci.


    Le "Variabili" di settaggio

    Una lista completa di tutte le sue "variabili" di settaggio, la trovate su Mediawiki, a quest'indirizzo:


    In cui è opportuno, dare uno sguardo particolare alla sezione "permessi Utenti":

    E a quella di "Jobs" (riferito, al lavoro del "server")


    Ciascuna di queste "variabili" è un comando che permette di "settare", ossia, configurare, una specifica funzione del votro wiki.

    Non è necessario chiaro usarle tutte (se non le modificate e/o create nel LocalSettings, rimangono comunque settate nei loro valori di "default" nel file DefaultSettings.php, sotto /includes/);

    Alcune potrebbero funzionare al meglio tuttavia, soltanto dopo aver installato specifiche estensioni. Vediamo prima queste, quindi.


    Nota: Tutti i parametri, per essere disattivati, possono essere semplicemente fatti seguire dal simbolo #, anzichè cambire il loro valore da true a false, e viceversa: per attivare qualcosa, cancellate semplicemente questo simbolo posto all'inizio. Questo vale anche per le stringhe delle estensioni, come vedremo.

    Se vedete due o più simbolini, nelle nostre descrizioni e sul nostro file che vi diamo da scaricare, significa: che ne sconsigliamo caldamente l'utilizzo ai non esperti.

    Configurare le Estensioni

    Per approfondire, vedi Estensioni: Manuali.

    Una volta copiate le cartelle delle estensioni (e/o i singoli file php)

    nella cartella omonima del vostro wiki, non vi resta che attivarle

    andando a modificare il file LocalSettings.php

    Questi che vi forniamo qui di seguito noi, sono i parametri che dovrete aggiungere per le estensioni che vi abbiamo fornito in questo nostro Manuale, e che consideriamo le più importanti ed utili. Vi alleghiamo al fondo anche un modello di file "LocalSettings.php" della versione 1.14 del software. (Se volete usarlo, rinominatelo pulito).

    Attivarle dal nostro file

    Per approfondire, vedi Manuali: elenco.

    Attivarle dal nostro file infatti (vedi codice sotto) vi sarà così più semplice, che star lì a cercarle, in quanto abbiamo già scelto tutte quelle basiche.

    Non dovrete far altro, cioè, che togliere il simbolino # all'inizio di quelle che v'interessano e rimetterlo, poi, quando vorrete di nuovo renderle inattive. Ovviamente, dovrete aver prima caricato via Ftp anche le relative cartelle, come già spiegato nel capitolo precedente.

    Nota: alcune ve le forniamo già attive, quelle più importanti ed utili; se volete disattivarle, poneteci semplicemente il simbolino # davanti.

    Code1:

    ====
    PARAMETRI DA AGGIUNGERE E/O SPECIFICARE nel LocalSetting:
    ====

    Ecco il codice da aggiungere (clicca sul link):

    Vai a: Code1-Estensioni.


    L'installazione

    L'installazione di un'estensione, di solito, consiste unicamente di due passaggi:

    1. Si copia via Ftp la cartella e/o il file .php dell'estensione dell'estensione stessa, nell'omonima sul vostro server (la cartella si chiama 'Estensions', e viene a trovarsi nella root dove avrete installato il vostro wiki)
    2. Si attiva poi l'Estensione sul file LocalSettings, apponendovi al fondo una stringa:
      • require_once("$IP/extensions/NomeDell'Estensione/NomeDell'Estensione.php"); oppure:
      • require_once("$IP/extensions/NomeDell'Estensione.php");
        a seconda se avete trasferito file o cartella. L'importante è non sbagliare: dovrete infatti qui mettere l'esatto percorso del file .php principale
    3. Un passaggio extra, vi è solo quando dovete creare da voi i file .php perchè non forniti nel download; dovrete allora copiarvi il codice sorgente e salvarlo in un file di testo che rinominerete col nome esatto dell'estensione, terminandolo in .php anzichè .txt


    Configurare permessi ed altri parametri del wiki

    In questa sezione affrontiamo solo i parametri di base, quelli giusto per avere subito il vostro wiki operativo, cioè. (Una lista esaustiva, in inglese, la trovate ai link che abbiamo già dato sopra al paragrafo Variabili di settaggio).

    Attivarli dal nostro file

    Potete fare copia incolla dal file che vi diamo.

    In questa parte, ricordatevi ovviamente che dovete cambiare i dati di esempio con quelli personali vostri (come il nome del Database, ecc).

    Magari, fate copia incolla soltanto delle sezioni che v'interessano.

    Code2:

    =====
    PARAMETRI DA AGGIUNGERE E/O SPECIFICARE nel LocalSetting:
    =====

    Vai a: Code2-Settaggi.
    Vedi, aggiungere un diverso Contenitore di immagini esterno.


    Permessi

    Se volete che il vostro wiki non sia aperto a tutti -ovvero che gli IP anonimi non possano editare e possano farlo solo quelli registrati (loggati)- dovete aggiungere al vostro file LocalSettings.php, questa variabile:

    • $wgGroupPermissions['*']['edit'] = false

    assieme a questa, per richiede la conferma dell'indirizzo e.mail per poter editare.

    • $wgEmailConfirmToEdit = true;


    Se lo volete ancora più chiuso e fare in modo che solo voi (o comunque i 'sysop') possiate creare Account per le persone che potranno scrivere, aggiungetevi quest'altra:

    • $wgGroupPermissions['*']['createaccount'] = false;


    Infine quest'ultima, se non volete gli IP anonimi riescano a leggere il vostro wiki, ma soltanto i loggati.

    • $wgGroupPermissions['*']['read'] = false;

    Potete specificare le pagine che gli anonimi possono visualizzare, qui

    • $wgWhitelistRead = array("Pagina principale", 'Speciale:UltimeModifiche' );

    (mettete il nome della vostra pagina, al posto di quello di "Pagina principale").

    Aggiunta di namespaces
    • $wgExtraNamespaces = array(100 => "Associazione", 101 => "Discussioni_associazione");


    Upload e immagini

    Vai a: Problema creazione delle immagini thumbnail.

    L'Upload di immagini o altri tipi di file, viene attivato quando:

    • La cartella 'images' è resa "scrivibile" (codice permessi "777");
    • La stringa $wgEnableUploads è abilitata sul LocalSettings.php, ossia messa su true;

    Vanno poi specificati i parametri, per i tipi di file che si vuole permettere di far caricare.

    Dimensioni max e min

    Ogni provider, ha in realtà già un suo limite massimo di upload, per i caricamenti, il valore del quale può (non sempre) venir cambiato, tramite il file php.ini, solo se il vostro fornitore di servizi lo permette, appunto.

    La prossima stringa, quindi, sarà valida solo per modificare l'upload (espresso in MB), in difetto, cioè MINORE di tale limite impostovi.

    $wgMaxUploadSize = array(
        '*' => 1024 * 1024 * 100, // 100 MB
        'url' => 1024 * 1024 * 50, // 50 MB
    );

    Cambiate solo l'ultimo valore, a seconda delle vostre esigenze (quello dei due numeri posti in fondo, prima della virgola).

    Togliete la seconda linea, se non attivate la stringa $wgAllowCopyUploads che serve per abilitare l'upload da url esterno, descritta più in basso.

    Tipi di File

    La prossima serie di variabili, permettere l'Upload dei File con le estensioni indicate (cancellate quelle che non v'interessano, o disattivatele ponendo il simbolo # all'inizio);

    $wgAllowTitlesInSVG = true;
    $wgFileExtensions[] = 'svg';
    $wgFileExtensions[] = 'bmp';
    $wgFileExtensions[] = 'ogg';
    $wgFileExtensions[] = 'flv';
    $wgFileExtensions[] = 'swf';
    $wgFileExtensions[] = 'mp3';
    $wgFileExtensions[] = 'pdf';
    $wgFileExtensions[] = 'doc';

    Nell'Upload, vi apparirà:

    Dimensione massima del file: 64 MB //varia a seconda del vostro provider//
     
    Tipi di file consigliati: png, gif, jpg, jpeg, ogg.
     
    Tipi di file non consentiti: html, htm, js, js
    • Specificate (sempre nel LocalSettings.php) i tipi di file che sono permessi uploadare; con le variabili appena date sopra, oppure, con questa stringa (non tutt'e due):
    $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'pdf' );

    al cui interno metterete appunto, i tipi di file (come da esempio).

    Potete anche aggiungere semplicemente quest'altra:

    $wgStrictFileExtensions = false;

    che permette ai principali tipi di file di essere uploadati, senza bisogno di specificare quali.

    Nell'Upload, vi apparirà:

    Dimensione massima del file: 64 MB //varia a seconda del vostro provider//
     
    Tipi di file consigliati: png, gif, jpg, jpeg, ogg.
     
    Tipi di file non consentiti: html, htm, js, jsb, mhtml, mht, php, phtml, php3, php4, php5, phps, shtml, jhtml, pl, py, cgi, exe, scr, dll, msi, vbs, bat, com, pif, cmd, vxd, cpl.

    Se la variabile $wgStrictFileExtensions viene, invece, impostata a true, MediaWiki vieta il caricamento di file le cui estensioni differiscono da quelle elencate. Impostata a false, consente l'upload anche di altri file come abbiamo visto, però mostra un avviso all'utente se carica un file con un'altra estensione.

    Viceversa, è possibile vietare il caricamento di alcuni tipi di file specifici, elencando le rispettive estensioni nella variabile $wgFileBlacklist e/o i rispettivi tipi MIME nella variabile $wgMimeTypeBlacklist; ad esempio:

    • $wgFileBlacklist = array('html', 'php', 'exe');
    • $wgMimeTypeBlacklist = array('text/html', 'text/javascript');
    • Attivare infine la seguente variabile, se si vuole che nell'Upload appaiano i Campi: "Fonte", e "Dettagli sul Copyright".
    $wgUseCopyrightUpload = true;
    • Di default l'Upload è permesso solo agli Utenti loggati; per cambiare questa situazione, fate riferimento ai seguenti permessi che ora andiamo a spiegare (da aggiungere sempre nel file LocalSettings.php).

    Permessi per l'Upload

    • Attivando questo parametro, si fa visualizzare sulla barra laterale l'opzione upload anche ai non-loggati
    $wgEnableUploads = true;
    • Se volete che anche gli utenti anonimi (non loggati) possano uploadare files:
    $wgGroupPermissions['*']['upload'] = true;
    • La seguente stringa, chiude il permesso di Upload agli Utenti (semplici ip anonimi, o anche loggati):
          $wgGroupPermissions['user']['upload'] = false;
    • Quest'altra, crea invece un gruppo speciale, chiamato "uploadaccess", e permette solo ai membri di questo gruppo l'upload:
          $wgGroupPermissions['uploadaccess']['upload'] = true;
    • La prossima, permette l'Upload solo agli Utenti "autoconfirmed" (cioè, "autoconfermati" tramite mail):
          $wgGroupPermissions['autoconfirmed']['upload'] = true;

    Upload diretto da URL

    • Potete permettere agli Utenti l'Upload diretto da un URL con la seguente stringa, da settare però questa volta nel file DefaultSettings.php (a noi, non ha funzionato solo sul LocalSettings), che trovate dentro la cartella/includes/. La stringa esiste già, ma di default è settata su: false. Voi mettetela su true, come da esempio:
    $wgAllowCopyUploads = true

    Aggiungete poi il permesso adeguato sul LocalSettings, visto che di default, appare ai soli amministratori. Per esempio questo, se si vuole che sia aperto a tutti, (anche agli anonimi):

    $wgGroupPermissions['*']['upload_by_url'] = true;
    $wgAllowCopyUploads = true;

    così, appena sopra la variabile.

    Oppure, per i soli Utenti auto-confermatisi via mail, sarà così:

    $wgGroupPermissions['autoconfirmed']['upload_by_url'] = true;
    $wgAllowCopyUploads = true;

    (Potete scaricare da qui il nostro file DefaultSettings.php, zippato, della v.1.14 del software; ma state attenti a conservarne sempre una copia dell'Originale perchè, questo file, è quello più importante di tutti, per il wiki! Per usarlo, rinominatelo al posto del vostro.)

    • Quest'altra, vi consente invece di fare in modo che negli articoli, ad un link corrispondente ad un'immagine esterna, venga visualizzata l'immagine di provenienza sul vostro wiki sebbene essa non sia stata caricata sul vostro server. Ma questa, va settata sul LocalSettings:
    $wgAllowExternalImages = true;

    Collegamento "Carica su Commons"

    Per mettere il collegamento sulla Barra Laterale sinistra all'Upload su Commons o ad altri contenitori d'immagini esterni, e per permettere la visualizzazione delle stesse sul proprio wiki, si agisce sia sul LocalSettings.php che su Mediawiki:Monobook.js.

    Vai a: Barra Laterale: Collegamento "Carica su Commons".
    Per approfondire, vedi Gli Stili.

    Link di riferimento

    su Wikimedia
    Dimensione massima di Upload


    Abilitare supporto Math

    Per abilitare il supporto math su MediaWiki, si seguono i seguenti passaggi:

    sul LocalSettings

    1) Editare il LocalSettings.php e cambiare la linea

    $wgUseTeX = false;

    a

    $wgUseTeX = true;

    2) Poi, aggiungere le seguenti linee:

    $wgUploadPath = "images";
    $wgUploadDirectory = "images";
    $wgMathPath = "{$wgUploadPath}/math";
    $wgMathDirectory = "{$wgUploadDirectory}/math";
    $wgTmpDirectory = "{$wgUploadDirectory}/tmp";

    Cartelle

    3) Assicurarsi che esistano, se no crearle, le seguenti cartelle:

    • /images/math
    • /images/tmp

    nella root dove avete installato il vostro wiki, e dare loro i permessi 755.

    4) Infine, fare il download del texvc binary dal seguente link:

    e metterlo nella cartella /math, assicurandosi che abbia i permessi 755.

    Assistenza hosting

    5) E' possibile che si debba anche contattare l'assistenza del proprio servizio di hosting, per abilitare totalmente il servizio. SiteGround provides sembra essere uno dei migliori servizi hosting per MediaWiki, e tali richieste sono evase con facilità.

    In alternativa, potete usare l'Estensione Mimetex che vi abbiamo proporzionato in questo nostro Manuale: non richiede alcun tipo di richieste al vostro provider.

    Per approfondire, vedi Estensione Mimetex.


    Link di riferimento


    Problema Generazione delle miniature

    Abbiamo già accennato, in altra parte di questo nostro manuale, che se avete problemi con la generazione delle miniature delle vostre immagini (thumbs) caricate, ciò probabilmente si deve al vostro provider, e, nello specifico, al malfunzionamento di ImageMagik; e che, quindi, ciò si risolva nel 90% dei casi, disattivandolo, semplicemente. (Questo perchè, di solito, quasi tutti i provider hanno anche altri "programmi di riserva" che entrano in funzione, una volta disattivato questo, che svolgono lo stesso lavoro sulle thumbnails).

    Disattivate quindi, sul LocalSettings.php, la stringa seguente, così:

    $wgUseImageMagick = false;
    $wgImageMagickConvertCommand = "/usr/bin/convert";

    Se volete riattivarla, basta ricambiarne poi il valore da false, a true.


    Problema Generazione delle miniature Pdf

    Per vedere le anteprima dei pdf caricati nelle vostre pagine wiki, si utilizza questa Estensione:

    Per approfondire, vedi Estensione PdfHandler.
    require_once("$IP/extensions/PdfHandler/PdfHandler.php");
    $wgPdfHandlerDpi = 600;
    $wgPdfCreateThumbnailsInJobQueue = true;

    e, l'aggiunta di questo codice, risolverebbe il bug del problema della generazione delle miniature pdf

    // https://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/mediawiki#problema_thumbnail_pdf
    // Maximum amount of virtual memory available to shell processes under Linux, in KB.
    $wgMaxShellMemory = '262144';
    // Maximum file size created by shell processes under Linux, in KB.
    $wgMaxShellFileSize = '409600';

    Se si vuole agire sul LocalSettings.php; mentre, nella documentazione ufficiale, forse viene consigliato d'intervenire direttamente dentro i file dell'estensione stessa.

    Ecco i link:


    Per rigenerare la miniatura, è sufficiente poi richiamare la pagina del File: aggiungendo il parametro ?action=purge.


    Settare/Aggiornare l'ora del vostro wiki

    Se utilizzate le "parole chiavi" (magik words) per far visualizzare nella Home del vostro wiki, la data e l'ora correnti, può darsi che, su alcuni server, rimanga fissa continuando a visualizzare quella presente nella "cache" d'archivio, piuttosto che quella della pagina attuale, presente. Per aggiornarla, potete semplicemente entrare su "Modifica" e salvare un'altra volta la pagina. Oppure, date un'occhiata all'utilizzo di altre "Magik Words" specifiche, più adatte a voi, a questo link (sostituire in pratica CURRENT con la parola LOCAL fa in modo che, l'ora e la data, vengano presi dal sito del vostro provider):


    Esempi di LocalSettings con traduzione italiana

    Vi forniamo qui di seguito degli Esempi di LocalSettings completi (che sarebbero cioè, i due pezzettini uniti assieme che abbiamo visto in questo capitolo separatamente) zippati, tradotti all'italiano e già pronti per essere utilizzati; due dei quali, sono abbinati ai "pacchetti" delle estensioni che vi abbiamo fornito noi nel nostro download. Ricordate che stiamo fornendovi di base quello relativo alla versione 1.14 del software. E che, comunque, nel caso aveste un'altra versione, il "pezzo relativo alle estensioni" (il primo affrontato qui) è uguale per tutti, per cui potrete fare semplicemente copia incolla direttamente nel vostro solo di quello (saltando cioè il relativo ai "settaggi" delle variabili), se non vi sentite sicuri.

    Vai a: Local Settings: Esempi.

    Link


    Programma per aprirlo e modificarlo

    Vi consigliamo di aprirlo con "Notepad2" un "eseguibile" che non necessita d'installazione, leggerissimo, e che ha il pregio di evidenziarvi in colori diversi le strutture ed anche il numero delle righe, molto utili in caso di messaggi di errore, per andare a localizzare subito il pezzo di codice da correggere.


    Per modificare i file .php, tuttavia, è consigliabile invece un Editor professionale; come UltraEdit, o PSPad editor.

    Infatti, alcune estensioni potrebbero poi non funzionare se li salvate con altri editor, perchè il codice si corrompe, e può dare incompatibilità con la versione di Php installato sul server (anche se non con tutte; dipende dalle impostazioni).



    Codici da inserire

    <?php
     
    # Questo file è stato generato automaticamente dal programma di installazione di MediaWiki.
    # Se si apportano delle modifiche manuali, si prega di tenerne traccia in caso aveste la necessità di
    # ricrearle più tardi.
    #
    # Vedere 'includes/DefaultSettings.php' per tutte le impostazioni configurabili
    # nei loro valori di default, ma non dimenticate di non apportare modifiche in quel file, non lì. Fatelo solo qui nel 'LocalSettings.php'
    #
    # Ulteriori informazioni sulla documentazione per le impostazioni di configurazione, possono essere trovate all'indirizzo:
    # http://www.mediawiki.org/wiki/Manual:Configuration_settings
     
    # Se si personalizza il layout del file, impostare $IP nella directory che contiene
    # gli altri file di MediaWiki. Sarà usato come base per individuare i file.
     
    if( defined( 'MW_INSTALL_PATH' ) ) {
    	$IP = MW_INSTALL_PATH;
    } else {
    	$IP = dirname( __FILE__ );
    }
     
    $path = array( $IP, "$IP/includes", "$IP/languages" );
    set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
     
     
    ///ASSICURATEVI CHE TUTTO CIO CHE "SETTATE", RIMANGA AL DI SOTTO DI QUESTA STRINGA!!!///  
    require_once( "$IP/includes/DefaultSettings.php" );
     
     
    # Se la Memoria PHP del server che vi ospita, ha un limite molto basso, alcune operazioni possono fallire. 
    # Aumentatela da qui, portandola da 20 a 30, max 60 (o 120), settando al fondo della linea:
    ini_set( 'memory_limit', '60M' );
     
    if ( $wgCommandLineMode ) {
    	if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
    		die( "This script must be run from the command line\n" );
    	}
    }
    ## Rimuovete il commento qui di seguito per disabilitare l'output compression 
    /// (ossia, il back-up scaricabile in zip del wiki; se non l'avete disattivate pure, perchè di default è attivo e vi spreca risorse)
    #$wgDisableOutputCompression = true;
     
    $wgSitename         = "NOME-DEL-VOSTRO-WIKI"; /// Potete cambiare il Nome del vostro wiki da qui (ciò influisce, nel NAMESPACE delle pagine Linee Guida) 
    #$wgLogo = '/...'; /// SCEGLIERE UN'IMMAGINE PER IL LOGO E METTERE QUI LA ROOT AL POSTO DEI TRE PUNTINI (http://..ecc.)
     
    ## La path del percorso URL per la directory contenente il wiki;
    $wgScriptPath       = ""; // se avete installato sotto la root principale come vi abbiamo consigliato noi, lasciatela vuota
    $wgScriptExtension  = ".php";
    ## le impostazioni predefinite per tutti i percorsi URL runtime (paths) sono basate su questo
    ## Per ulteriori informazioni sulla personalizzazione dell'URL del proprio dominio wiki consultare:
    ## Http://www.mediawiki.org/wiki/Manual:Short_URL
     
    ## UPO significa: che è un'opzione di preferenze dell'utente
     
    $wgEnableEmail      = true; # Abilita le Email
    $wgEnableUserEmail  = true; # UPO
     
    $wgEmergencyContact = "ESEMPIO@Email.com"; # Mail per il contatto di uso interno
    $wgPasswordSender = "ESEMPIO@Email.com"; # Mail per ricevere di nuovo la Password 
     
    $wgEnotifUserTalk = true; # UPO
    $wgEnotifWatchlist = false; # UPO
    $wgEmailAuthentication = true; # Abilita l'autenticazione tramite Email
     
    ## Database settaggi
    $wgDBtype           = "mysql"; # Nome del Tipo di Database
    $wgDBserver         = "localhost"; # Directory del Database (METTETE LA VOSTRA)
    $wgDBname           = "METTETE IL VOSTRO"; # Nome del Database
    $wgDBuser           = "METTETE IL VOSTRO"; # Nome Utente-Login del Database
    $wgDBpassword       = "METTETE LA VOSTRA"; # Password dell'Utente-Login del Database
     
     
    # MySQL specifici settaggi
    $wgDBprefix         = ""; // Solo se avete creato un prefisso per le Tabelle (del Database), specificatelo qui
     
    # MySQL opzioni di tabella da utilizzare durante l'installazione o l'aggiornamento
    $wgDBTableOptions   = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
     
    # Sperimentale charset supportO per MySQL 4.1/5.0.
    $wgDBmysql5 = true;
     
    ## Memoria condivisa settaggi
    $wgMainCacheType = CACHE_NONE;
    $wgMemCachedServers = array();
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
    ## Per abilitare uploads di immagini e files, assicuratevi che la cartella 'images' directory
    ## sia scrivibile (writable) sul Server, prima di settare il seguente parametro su "true":
    $wgEnableUploads = true; //attivando questo parametro, si visualizza sulla barra laterale l'opzione upload anche ai non-loggati
    $wgGroupPermissions['*']['upload'] = true; //Lasciate Disattiva questa variabile, se volete che solo gli utenti registrati (loggati) possano uploadare files
    #$wgUseCopyrightUpload = true; //Attivare questa variabile, se non si vuole che nell'Upload appaiano i Campi: "Fonte", e "Dettagli sul Copyright".
     
    ///questa seconda serie, serve a far visualizzare le immagini da meta.commons e altri progetti wiki; 
    //su alcuni server può dare problemi, casomai non attivatela.
    ///(se il nome dell'immagine è presente uguale sui diversi progetti specificati, sarà visualizzata la prima,
    ///ossia, il sistema darà la precedenza al primo progetto specificato della lista)
    #$wgForeignFileRepos[] = array(
       #'class'                   => 'ForeignAPIRepo',
       #'name'                    => 'shared',
       #'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
       #'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       #'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       #'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    #);
    #$wgForeignFileRepos[] = array(
       #'class'            => 'ForeignAPIRepo',
       #'name'             => 'shared',
       #'apibase'          => 'http://base.ekopedia.org/w/api.php',
       #'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       #'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       #'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    #);
    #$wgForeignFileRepos[] = array(
       #'class'            => 'ForeignAPIRepo',
       #'name'             => 'shared',
       #'apibase'          => 'http://naturpedia.org/api.php',
       #'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       #'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       #'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    #);
    ///Non attivatene troppe se non vi servono, altrimenti, potreste rallentare la wiki.
    //Si possono comunque anche aggiungere "altri siti" diversi da commons.
    //Per esempio, per le immagini da it.wiki, attivate:
    ##$wgForeignFileRepos[] = array(
       ##'class'            => 'ForeignAPIRepo',
       ##'name'             => 'sharedwp',
       ##'apibase'          => 'http://it.wikipedia.org/w/api.php',
       ##'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       ##'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       ##'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    ##);
    ##$wgForeignFileRepos[] = array(
       ##'class'            => 'ForeignAPIRepo',
       ##'name'             => 'sharedwp',
       ##'apibase'          => 'http://meta.anarchopedia.org/api.php',
       ##'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       ##'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       ##'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    ##);
     
    ///Questa serie di stringhe, permette l'Upload dei File con le estensioni indicate (di default, permette solo jpg, jpeg e png)
    //(cancellate quelle che non v'interessano, o disattivatele ponendo il simbolo # all'inizio); 
    //NON METTETELA ALL'INIZIO, perchè potrebbe entrare in conflitto con altri settaggi (soprattutto dalla vers 1.17)
    $wgAllowTitlesInSVG = true;
    $wgFileExtensions[] = 'svg';
    $wgFileExtensions[] = 'bmp';
    $wgFileExtensions[] = 'ogg';
    $wgFileExtensions[] = 'flv';
    $wgFileExtensions[] = 'swf';
    $wgFileExtensions[] = 'mp3';
    $wgFileExtensions[] = 'pdf';
    $wgFileExtensions[] = 'doc';
     
    //Upload diretto da un URL con la seguente stringa, da settare anche nel file DefaultSettings.php, dentro la cartella /includes/.
    //Aggiungete poi il permesso adeguato, visto che di default appare ai soli amministratori. 
    //questo, se si vuole che sia aperto a tutti, (anche agli anonimi):
    #$wgGroupPermissions['*']['upload_by_url'] = true;
    #$wgAllowCopyUploads = true;
    //Oppure, per i soli Utenti auto-confermatisi via mail, sarà così:
    $wgGroupPermissions['autoconfirmed']['upload_by_url'] = true;
    $wgAllowCopyUploads = true;
    //Non mettete entrambi, vanno in conflitto.
     
    $wgAllowExternalImages = true; /// vi consente di fare in modo che negli articoli, 
    //ad un link corrispondente ad un'immagine esterna, 
    //venga visualizzata l'immagine di provenienza sul vostro wiki, 
    //sebbene essa non sia caricata sul vostro server.
     
    //AllowUserJs, permette gli script x i bottoncini 'UserMarkS: 
    //mettetela su 'true' se lo volete permettere, su 'false' se non li volete permettere 
    //(per attivare i Bottoni, bisogna agire però anche sul Monobook con uno script 
    //e creare un "Utente User:MarkS" - Dettagli nel Manuale online).
    $wgAllowUserJS = true;
     
    ///UseAjax vi potrebbe servire per numerose estensioni; vi consiglio di attivarlo anch'esso.
    $wgUseAjax = true;
     
    ///ShowEXIF, che serve a far visualizzare i DATI EXIF delle immagini, 
    //vi consigliamo di lasciarlo su 'false' se attivate la visualizzazione da Commons, perchè altrimenti 
    //queste le visualizza male. Se invece visualizzate solo quelle caricate sul vostro server, settatelo pure su true.
    $wgShowEXIF  = false;
    ///FINE RIGA del COPIA-INCOLLA.
     
    ## $wgUseImageMagick = true;
    ///DISATTIVIAMO Image Magik perchè può dare problemi sulla generazione delle miniature thumbnail
    $wgUseImageMagick = false;
    $wgImageMagickConvertCommand = "/usr/bin/convert";
     
    ## Se si utilizza ImageMagick (o qualsiasi altro comando di shell) su un
    ## Server Linux, questo dovrà essere impostato sul nome di un
    ## UTF-8 locale disponibile
    $wgShellLocale = "en_US.utf8";
     
    ## Se si desidera utilizzare il caricamento delle immagini in modalità sicura,
    ## creare le cartelle directory: images/archive, images/thumb e
    ## images/temp, rendendole tutte "scrivibili" (777). Dopo, attivate
    ## questo parametro a 'true', se non è già attivato:
    #$wgHashedUploadDirectory = true;
     
    ## Se avete il software di supporto appropriato installato
    ## è possibile attivare la linea di equazioni LaTeX:
    ///lasciatela pure attivata se prevedete di utilizzare la nostra alternativa, l'Ext "Mimetex". Ma non usate più il parametro <match>
    //Attivandola, vi appare infatti anche il messaggio di errore ogniqualvolta s'inseriscono formule matematiche nelle pagine del wiki
    //per ricordare appunto che non avete il necessario software installato. Quindi, attivatela solo se lo avete, ed utilizzate il parametro <tex>. (Per vedere se funziona, inserite questa Formula matematica: <tex>2^3</tex> in una qualsiasi pagina del vostro wiki.)
    #$wgUseTeX = true; 
     
    $wgLocalInterwiki   = strtolower( $wgSitename );
     
    //Anche i seguenti parametri attivateli solo se avete il software di supporto LaTeX ufficiale, installato (maggiori informazioni sul manuale online)
    ##$wgUploadPath = "images";
    ##$wgUploadDirectory = "images";
    ##$wgMathPath = "{$wgUploadPath}/math";
    ##$wgMathDirectory = "{$wgUploadDirectory}/math";
    ##$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
     
    $wgLanguageCode = "it";
     
    $wgSecretKey = "GENERATA-AUTOMATICAMENTE-AL-MOMENTO-DELL'INSTALLAZIONE";
     
    ## Skin di default: è possibile cambiare la skin di default. Utilizzare il nome simbolico interno 
    ## i nomi, cioè: 'standard', 'nostalgia', 'cologneblue', 'monobook', ecc. che trovate all'interno della cartella Skin
    $wgDefaultSkin = 'monobook';
    #$wgDefaultSkin = 'modern'; //SE ATTIVATE QUESTA, DISATTIVATE L'ALTRA
     
    ## Per collegare i metadati delle licenze alle pagine, e la visualizzazione 
    ## dell'appropriata nota di copyright e relativa icona. 
    ## Sono supportati fino ad ora: GNU Free Documentation e Creative Commons.
    #$wgEnableCreativeCommonsRdf = true; 
     
    ///////////////////////////////////////
    ////////////*CREDITI*/////////////////
    /////Esempio di CREATIVE-COMMONS.////
    ////////////////////////////////////
    #$wgRightsText = "Attribution-ShareAlike 3.0 Unported"; //Non attivate questa contemporaneamente; o una, o un'altra.
    #$wgRightsIcon = "http://i.creativecommons.org/l/by-sa/3.0/88x31.png"; //Qui si specifica l'Url dell'icona, oppure la root se l'avete caricata sul vostro server.
    //////////////////////////////////
    /////Esempio di GNU-GFDL.////////
    ////////////////////////////////
    $wgRightsText = "GNU Free Documentation License 1.2"; # Setta il Testo (Copyright o Copyleft)
    $wgRightsIcon = "${wgScriptPath}/skins/common/images/gnu-fdl.png"; # Setta la cartella sul vostro server dell'immagine icona, di Copyright o Copyleft
    //////////////////////////////////
    /////Esempio di PUBLIC-DOMAIN.///
    ////////////////////////////////
    #$wgRightsText = "Pubblico Dominio";
    #$wgRightsIcon = "${wgScriptPath}/skins/common/images/public-domain.png"; //Attivate o questa, o le altre (non assieme). Disattivatele se non volete specificare nessuna icona di Copyright o Copyleft.
     
    /////CODICE HTML/////.
    ///Utilizzate il seguente parametro, se invece d'indicare una cartella o un URL sopra 
    //per l'immagine-icona (Copyright o Copyleft), preferite specificarlo in HTML, come da esempio:
    #$wgCopyrightIcon = "<img src='http://www.anisintheworld.org/images/Simbolo_Copyright.gif' alt='whatever' />";
     
    #$wgRightsPage = "Text of the GNU Free Documentation License"; # Setta la pagina del vostro wiki che descrive la vostra licenza/copyright o copyleft
    $wgRightsUrl = "http://www.gnu.org/copyleft/fdl.html"; # Setta l'Url che apparirà sull'icona; se non specificate il parametro sopra, prevarrà questo anche sul testo.
     
    ### $wgRightsCode = "gfdl"; ///Non ancora usata (cancellatela pure)
     
    $wgDiff3 = "/usr/bin/diff3";
    # Quando si apportano modifiche a questo file di configurazione, questo renderà
    # sicuro che le pagine nella cache vengano cancellate.
    $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
     
    #$wgMaxCredits = 3; ///Attivare questo valore se si vuole che a fondo pagina appaiano i nomi dei contribuenti degli articoli. 
    //(specificare il numero. Se invece si vuole visualizzarli tutti, mettere a: -1)
    #$wgShowCreditsIfMax = true; ///Attivare questo valore, se si vuole che appaia un link che visualizzi i contribuenti oltre il numero specificato da noi.
     
    #$wgGroupPermissions['*']['minoredit'] = true; ///Permette anche agli IP anonimi di segnare modifiche come minori
     
    $wgRCLinkLimits = array( 50, 100, 250, 500, 5000 ); ///Specifica il num. max di 'cambi recenti' in Ultime Modifiche
    $wgRCLinkDays = array( 1, 3, 7, 14, 30, 300 ); ///Specifica il num. max di giorni, in Ultime Modifiche
     
    ##$wgAllowCategorizedRecentChanges   = false; /// vi permetterebbe di poter visualizzare, in 'ultime modifiche', 
    //solo quei cambi effettuati in determinate Categorie (scelte da voi). Ma sembra difettosa, quindi la diamo disattivata.
     
    ///SETTAGGI PER IL MOTORE DI RICERCA interno del wiki///
    #$wgUseOldSearchUI = false; //Attivare, se si vuole la schermata di Ricerca senza opzioni dei Namespaces
    #$wgAdvancedSearchHighlighting = true; //Impostato su 'true', serve per avere più bello il testo evidenziato nei risultati di ricerca. Disattivatelo se avete poi problemi di lentezza.
    #$wgEnableMWSuggest = true; //su 'true', Abilita i suggerimenti durante la digitazione nella caselle di ricerca
    #$wgGoToEdit = true; //con questo il pulsante 'Vai', va direttamente alla schermata di 'modificare' se l'articolo non esiste
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate questa funzione se volete che gli IP anonimi non possano editare, ma solo quelli registrati (loggati) possano farlo
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['edit'] = false;
    #$wgEmailConfirmToEdit = true; ///questa, per richiede la conferma del proprio indirizzo e.mail per poter editare.
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate quest'altra, per fare in modo che solo voi (i 'sysop') possiate creare Account per le persone che potranno scrivere
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['createaccount'] = false;
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    //infine quest'ultima, se non volete gli IP anonimi riescano a leggere il vostro wiki, ma soltanto i loggati.
    #$wgGroupPermissions['*']['read'] = false;
    #$wgWhitelistRead = array("Pagina principale", 'Speciale:UltimeModifiche' ); //Potete specificare qui le pagine che gli anonimi possono visualizzare
    ///////////////////////////////////////////////////////////////////////////  
     
    //////////////////////////////////////////////////////////////////////////
    ///Da qui in poi, sotto, ci sono invece le estensioni vere e proprie. ///
    ////////////////////////////////////////////////////////////////////////


    ASSICURATEVI CHE TUTTO CIO CHE "SETTATE", RIMANGA AL DI SOTTO DI QUESTA STRINGA:

    • require_once( "$IP/includes/DefaultSettings.php" );


    recita l'inizio del LocalSttings.php;

    ma, in generale, le estensioni andrebbero messe al fondo, dopo le stringhe e le variabili; dopo tutto.


    Ecco il codice, da aggiungere:

    ///////////////////////////////////////////////////////////////////////////
    ///ESTENSIONI INSTALLATE//////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////
     
    /////////////////////////////
    ////Per le CATEGORIE:///////
    ///////////////////////////
     
    require_once("{$IP}/extensions/CategoryTree/CategoryTree.php"); ///Ramifica le Categorie.
    require_once("$IP/extensions/managecategories/managecategories.php"); ///Visualizza un comodo menu a tendina per le Categorie. (Versione migliorata e meglio tradotta all'italiano, per questo progetto)
    require_once("$IP/extensions/MultiCategorySearch/MultiCategorySearch.php"); ///Crea una nuova pagina speciale per la ricerca di voci in più categorie. (Versione tradotta all'italiano, per questo progetto)
    include("$IP/extensions/CategoryWatch/CategoryWatch.php"); ///Permette di mettere sotto 'osservazione' anche le pagine delle Categorie.
    #require_once( "$IP/extensions/GoToCategory/GoToCategory.php" ); ///Permette d'includere nel motore di ricerca anche le categorie. Si verrà così reindirizzati all'omonima categoria quando questa è digitata; altrimenti, alla voce, se esiste.
    #require_once( "$IP/extensions/RandomInCategory/SpecialRandomincategory.php" ); ///Permette, tramite una pag speciale, che sia scelta a caso una pagina dentro di una determinata Categoria.
    ##require_once( "$IP/extensions/RandomInCategory/RandomInCategory.php" ); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.
     
    ///Queste due successive sono incompatibili assieme. Attivate, o una o l'altra.
    #require_once("$IP/extensions/articletocategory.php"); //Se volete attivare questa, disattivate questa successiva di articletocategory. ///Per attivarla, cancellate semplicemente il simbolo # all'inizio.
    require_once("$IP/extensions/ArticleToCategory2/ArticleToCategory2.php"); //(Versione migliorata per questo progetto).
    $wgarticletocategory2ConfigAddcat=true;
    #$wgarticletocategory2ConfigBlacklist=true; ///questo parametro "BlackList", meglio lasciarlo disattivato, se non sapete quello che fate.
     
     
    ///Questa successiva visualizza un messaggio, ricordando, a chi salva una voce senza categoria, che deve metterla.
    //Purtroppo, è un po' difettosa (rallenta la wiki), per cui.. la diamo disattivata.
    #require_once("$IP/extensions/WarnNoCategories/WarnNoCategories.php");
    //$wgWarnNoCategoriesOnNamespace[NS_MAIN] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_CATEGORY] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_CATEGORY_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_HELP] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_HELP_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_PROJECT] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_PROJECT_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER_TALK] = true;
    ##$wgGroupPermissions['sysop']['WarnNoCategories'] = false;
     
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///Le seguenti servono per abilitare certi Comandi essenziali o cmq utili, nella creazione di pagine e TEMPLATE.////
     
    require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
    $wgPFEnableStringFunctions = true;
    #require_once ("$IP/extensions/StringFunctions/StringFunctions.php");
    //P.S: Parser Function va settato bene perchè funzioni al meglio.
    require_once("{$IP}/extensions/ExpandTemplates/ExpandTemplates.php");
    require_once("$IP/extensions/ConditionalTemplate.php");
    require_once("{$IP}/extensions/Description/Description.php");
     
    require_once("{$IP}/extensions/Cite/Cite.php"); //per la formattazione delle note a pie' di pagina. 
    require_once("{$IP}/extensions/Poem/Poem.php"); //serve per formattare testi poetici.
    require_once("{$IP}/extensions/CharInsert/CharInsert.php"); //serve per l'Edittools//
    require_once("{$IP}/extensions/InputBox/InputBox.php"); //serve per creare box di ricerca.
    require_once("{$IP}/extensions/CreateBox/CreateBox.php"); //una Versione Migliorata di Input Box. Vi consigliamo di tenere entrambe. "CreateBox", è infatti più specifica per aiutare a 'creare' gli articoli, piuttosto che 'cercarli'. (Traduzione italiana migliorata per questo progetto)
     
    #require_once("$IP/extensions/bookmark.php"); //per segnalare sui Social Forum gli articoli. (Versione migliorata per questo progetto)
    ##require_once $IP . "/extensions/customtitle.php" ; ///per la modifica dei titoli delle pagine. Può essere superflua: si può creare infatti, lo stesso effetto, con un semplice Template.
    ##require_once("$IP/extensions/AllowAnchorTags/AllowAnchorTags.php"); //crea un Tag alternativo per linkare. Può essere superflua, se non usate molto i link.
    ///Questa che segue, necessita anche della creazione di una Tabella sul Database. La diamo quindi disattivata.
    ##require_once("{$IP}/extensions/CentralNotice/CentralNotice.php"); //consente di mettere un Avviso che appaia in tutte le pagine, che duri un certo lapso di tempo.
     
    require_once("$IP/extensions/SimpleCalendar.php"); ///Permette la visualizzazione di un piccolo calendario. Funziona tramite Tag, da apporre alle voci.
    require_once( "{$IP}/extensions/Contributors/Contributors.php" ); ///Visulizza una nuova voce, sulla barra laterale sinistra, per visualizzare i contribuenti e gli autori degli articoli.
    require_once( "{$IP}/extensions/NewestPages/NewestPages.php" ); //Crea una Pagina Speciale nuova, per poter visualizzare le pagine create recentemente: per Namespace e per Utente.
    require_once( "$IP/extensions/ContactPage/ContactPage.php" ); ///Crea un Modulo di Contatto, una Pagina Speciale nuova per chi vuole scrivere all'amministratore. Il vantaggio, è che non siete cosi' obbligati a mettere una mail pubblica.
    $wgContactUser = 'WikiSysop'; //Qui potete cambiare il nome dell'Aministratore Sysop che riceverà i messaggi
    $wgContactSender = $wgPasswordSender;
    $wgContactSenderName = 'Modulo di Contatto ' . $wgSitename;
    #require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); //per visualizzare i codici di programmazione sulle pagine del wiki, in maniera colorata
    #require_once("$IP/extensions/SidebarDonateBox.php"); ///Serve per aggiungere sulla barra laterale il box Donate di Paypal.
    #$egSidebarDonateBoxContent = 'code Paypal'; //s'immette qui, il codice html paypal.
    require_once("$IP/extensions/Pdfbutton/Pdfbutton.php"); ///Serve per aggiungere sulla barra laterale, un box per il Pdf-button.
    $egSidebarDonateBoxContent = '<a href="http://www.web2pdfconvert.com/convert" target="_blank">
    <img src="http://meta.anarchopedia.org/images/b/bb/ButonPDF20.png"/>Salva in PDF</a>'; //immettere qui, il codice html del button-pdf.<br>
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////Le successive danno modo di visualizzare VIDEO o altri tipi di file multimediali, o formattazioni specifiche di IMMAGINI.///
     
    #require_once("$IP/extensions/MultiUpload/SpecialMultipleUpload.php"); /// Permette l'Upload di più immagini o file multimediali, contemporaneamente. 
    ##require_once("$IP/extensions/MultiUpload/MultiUpload.php"); //Dalla vers 1.17, attivate questa al posto di quella sopra.
    #$wgMaxUploadFiles = 20; //Specificare qui il numero. Di default, sono cinque.
     
    #require( "$IP/extensions/OggHandler/OggHandler.php" ); //Video formato .ogg
    #require_once("extensions/videoflash.php"); //Specifica per i Video-Flash.
    #require_once("{$IP}/extensions/YouTubeTag.php"); //Specifica, solo per i Video di YouTube.
    #require_once("{$IP}/extensions/EmbedVideo/EmbedVideo.php"); //Per far visualizzare i Video dei maggiori servizi online di Videosharing, negli articoli.
    ##require_once("{$IP}/extensions/ImageMap/ImageMap.php"); //
    require_once("extensions/mimetex/mimetex.php"); //Questa, riesce a far visualizzare senza nessun settaggio extra non solo i simboli matematici, ma anche le immagini nella generazione dei Pdf! Per i simboli matematici, bisogna usare nelle pagine il nuovo TAG generato: 'tex', al posto di 'match'.
    // Potete provare se vi funziona, scrivendo questa Formula matematica: <tex>2^3</tex> <tex>a_2</tex> in una qualsiasi pagina wiki. Dovrebbero apparirvi dei simboli matematici.
    //Questa, la diamo disattivata perchè: necessita di settaggi nelle Tabelle.
    #require_once("$IP/extensions/Widgets/Widgets.php"); //I Widget, si comportano come dei comodi 'Template preconfezionati', specializzati sia per i video che per documenti.
    #$wgGroupPermissions['sysop']['editwidgets'] = true; //Molte cose che fanno le estensioni, possono farlo i Widget; può essere più sicuro però dare permessi qui, piuttosto che dare la chiave del server ftp.
    //La prossima, permetterebbe l'importazione automatica da Flicr delle Licenze con cui sono pubblicate le immagini, ma va settata bene ed e' un po' complicato farlo, altrimenti non funziona.
    ##require_once("{$IP}/extensions/ImportFreeImages/ImportFreeImages.php"); //La diamo quindi disattivata.
    ///Quest'ultima la forniamo disattivata perchè serve per generare geroglifici, e non tutti usano quest'estensione, oltretutto molto pesante.
    ##require_once("{$IP}/extensions/wikihiero/wikihiero.php");
    //puoi provare se funziona, digitando x es: <hiero>A1</hiero> dovrebbe apparirti un Geroglifico.
     
    ////////////////////////////////////////////////
    ///per i PDF e i PdfBook e altri documenti/////
    //////////////////////////////////////////////
     
    ///Per creare PDF, dalle Pagine wiki: (alcune parole delle funzioni in italiano, sono state modificate per questo progetto)
    #require_once("$IP/extensions/Collection/Collection.php"); /// Va settata bene per le immagini, altrimenti stampa solo il testo delle voci. (Aggiunge link sulla barra laterale)
    ///La prima è sufficiente e completa, sia per generare Pdf singoli che creare Libri. La diamo però disattivata perchè 
    //si appoggia ad un server esterno che non sempre funziona. Potete provare le successive, nel caso.
    //PdfBook, consente di creare libri di tutti gli articoli di una categoria, senza dover star li a scrivere in modo singolo tutte le pagine. Funziona però solo tramite template. (Non aggiunge il link sulla barra laterale sinistra)
    require_once( "$IP/extensions/PdfBook/PdfBook.php" );
    require_once("extensions/PdfExport/PdfExport.php"); ///Questa è molto buona. 
    //Rispetto a "Collection": genera Pdf più velocemente, ma leggermente più pesanti..
    //va settata bene anch'essa per le immagini. (Aggiunge link sulla barra laterale)
    ///##Questa successiva, invece, va installata in locale su di un proprio server, altrimenti non va. 
    //Aggiunge una linguetta in piu nelle pagine invece che sulla Barra laterale, per generare Pdf e anche txt semplice dagli articoli.
    //L'impaginazione viene meglio sotto molto aspetti, se potete permettervela ve la consigliamo.
    #$wgExtraNamespaces[100] = "LaTeX";
    #require_once($IP."/extensions/w2l/wiki2latex.php");
    require_once($IP."/extensions/GoogleDocs.php"); //per visualizzare i Documenti Fogli di lavoro di google Doc, sul vostro wiki. Per altri tipi di documenti, invece, utilizzate i Widget dell'omonima estensione.
     
    #require_once("$IP/extensions/PdfHandler/PdfHandler.php");
    //per vedere in anteprima i pdf caricati nelle pagine del vostro wiki.
     
    ##require_once("$IP/extensions/EmbedPDF.php");
    //Permette visualizzare Pdf nelle voci, ma non è visualizzato da tutti i browser perchè utilizza le ultime versioni di Flash (Adobe).
    ##require_once("$IP/extensions/embed_document.php");
    //Simile a quella sopra, ma consente la visualizzazione solo dei documenti caricati sul wiki;
    //con lo stesso difetto, ma questa ne permette anche di altri tipi (tutti quelli abilitati all'Upload)
    //e anche di ridimensionarne le misure (l'altra invece, non lo permette).
     
    ///////////////////////////////////////
    ////PER LA CANCELLAZIONE E LO SPAM////
    /////////////////////////////////////
     
    #require_once( "$IP/extensions/ProtectSection/ProtectSection.php"); ///Permette agli amministratori, la protezione di sezioni parziali nelle pagine.
    #require_once("$IP/extensions/AuthorProtect/AuthorProtect.php"); ///Permette agli utenti registrati, di bloccare le proprie pagine create dagli 'edit' altrui. Solo gli amministratori, potranno infatti editarle o cambiarle.
    #require_once("$IP/extensions/Renameuser/SpecialRenameuser.php"); //Questa, invece, è per poter rinominare gli Utenti.
    #$wgGroupPermissions['sysop']['renameuser'] = true; //Si può qui specificare chi può avere questo privilegio.
    #require_once( "$IP/extensions/PasswordReset/PasswordReset.php" ); //per poter cambiare la password degli Utenti.
    #$wgGroupPermissions['sysop']['passwordreset']   = true;  //Si può qui specificare chi può avere questo privilegio. 
    #require_once("$IP/extensions/Maintenance/Maintenance.php");
    #$wgGroupPermissions['bureaucrat']['maintenance'] = true; ///Questa, abilita certe altre funzioni extra per il mantenimento del wiki, non essenziali e meno importanti, ma comunque utili. //Di default, solo i burocrati possono accedere a questa prima estensione. Cambiare 'burocrate' a un gruppo diverso per consentire ad un gruppo diverso di accedere
    require_once("$IP/extensions/UserRightsList/UserRightsList.php"); ///Permette visualizzare una comoda lista di tutti gli utenti registrati e cambiare in maniera facile i loro privilegi.
    ///La seguente può darvi noia, se desiderate rimanere anonimi: infatti, il Log, è visibile da tutti (vale anche per gli Amministratori Sysop).
    #require_once("$IP/extensions/UserLoginLog/UserLoginLog.php"); //Consente di vedere l'IP di un Utente loggato (nella pagina: "Special:Log"). (Simile a CheckUser, ma funzionante fin da subito, senza settaggi.)
    #require_once( "$IP/extensions/UserMerge/UserMerge.php" ); ///Permette di cancellare gli Usuari senza pericoli per il DATABASE, tramite l'Unione l'un con l'altro.
    #$wgGroupPermissions['bureaucrat']['usermerge'] = true;
    #optional - default is array( 'sysop' )
    #$wgUserMergeProtectedGroups = array( 'groupname' );
    #require_once("$IP/extensions/EditUser/EditUser.php"); ///Permette agli utenti con i privilegi necessari, di modificare e visualizzare le preferenze personali degli altri utenti. (Versione tradotta all'italiano per questo progetto)
    #$wgGroupPermissions['bureaucrat']['edituser'] = true; //User che possono 'spiare' o modificare, le 'preferenze' degli altri.
    #$wgGroupPermissions['sysop']['edituser-exempt'] = true; //User 'esenti' dall'essere modificati o 'visualizzati'.
    #require_once("$IP/extensions/Nuke/SpecialNuke.php"); ///Consente agli amministratori la cancellazione in massa, delle pagine create da un IP o user, in blocco (verranno cioè cancellate tutte le pagine create da quell'IP o da quell'Utente).
    ##require_once("$IP/extensions/Nuke/Nuke.php"); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.
     
    ////Permette la cancellazione permanente di pagine: aggiunge la linguetta 'Delete Permanently' alle voci 
    //(può essere pericolosa, se non ci si fida 100% dei propri collaboratori, o semplicemente se si e' distratti)
    #require_once("$IP/extensions/DeletePagePermanently/DeletePagePermanently.php");
    #$wgDeletePagePermanentlyNamespaces = array(
            #NS_MAIN => true,
            #NS_IMAGE => true,
            #NS_IMAGE_TALK => true,
            #NS_CATEGORY => true,
            #NS_CATEGORY_TALK => true,
            #NS_MEDIAWIKI => false,
            #NS_MEDIAWIKI_TALK => true,
            #NS_HELP => true,
            #NS_HELP_TALK => true,
            #NS_PROJECT => true,
            #NS_PROJECT_TALK => true,
            #NS_TEMPLATE => true,
            #NS_TEMPLATE_TALK => true,
            #NS_WIDGET => false,
            #NS_WIDGET_TALK => true,
            #NS_USER => true,
            #NS_USER_TALK => true,
            #NS_TALK => true,
    #);
    #$wgGroupPermissions['*']         ['deleteperm'] = false;
    #$wgGroupPermissions['user']      ['deleteperm'] = false;
    #$wgGroupPermissions['bureaucrat']['deleteperm'] = true;
    #$wgGroupPermissions['sysop']     ['deleteperm'] = false;
     
    ///"DeleteOldRevisions": permette la cancellazione solo delle vecchie revisioni delle voci.
    /// Può essere meno pericolosa della prima, perchè qui non appare la 'linguetta' e il risultato è abbastanza identico.
    $wgGroupPermissions['sysop']['DeleteOldRevisions'] = true;
    require_once( $IP.'/extensions/SpecialDeleteOldRevisions2/SpecialDeleteOldRevisions2.php');
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //// L'estensione "Confirm Edit" e il "Captcha", sia esso il "Visual" o il "Classico", vanno settate assieme bene 
    ///prima di attivarle per farle funzionare. Altrimenti non vanno. Le diamo disattivate, quindi.
    #require_once("{$IP}/extensions/ConfirmEdit/ConfirmEdit.php");
     
    #$wgCaptchaTriggers['edit']          = false; // Captacha su ogni singolo edit (potete prima provare su "false", e passarlo nel caso dopo a "true")
    #$wgCaptchaTriggers['create']	    = true; // Captacha sulla creazione delle pagine nuove (idem)
    #$wgCaptchaTriggers['addurl']        = true; // Captacha sugli edits contenenti dei link (URLs)
    #$wgCaptchaTriggers['createaccount'] = true; // Captacha sulla creazione di Utenti nuovi (Special:Userlogin&type=signup)
     
    #$wgGroupPermissions['*'            ]['skipcaptcha'] = false; // SI Captacha agli anonimi
    #$wgGroupPermissions['user'         ]['skipcaptcha'] = true; // NO Captacha agli Utenti semplici
    #$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false; 
    #$wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true; // NO Captacha agli Utenti autoconfermatisi via mail
    #$ceAllowConfirmedEmail = true;
    #$wgGroupPermissions['bot'          ]['skipcaptcha'] = true; // NO Captacha ai bots (gruppo "User Bot", interno al wiki)
    #$wgGroupPermissions['sysop'        ]['skipcaptcha'] = true; // NO Captacha agli amministratori ("Sysop")
     
    /////////////////////////////////////////////////////////////////////////////////////////
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Questo e' il VisualCaptcha, migliore e piu' sicuro di quello standard di Google fornito piu' in basso. 
    /// E' completo, e quindi vi consiglio di attivarlo, prima di farlo xo' andate a modificare anche il 'ConfermEdit.php', 
    /// e sostituite li' il 'Simple Captcha' di Default con il 'Visual Captcha'. 
    /// ( Al posto di: $wgCaptchaClass = 'SimpleCaptcha' , mettete: $wgCaptchaClass = 'VisualMathConfirmCaptcha' )
    /// Al posto sia del reCaptcha che del Captcha normale. (Quindi lasciate disattivati gli altri due in pratica)
    /// Trovate istruzioni più dettagliate, sulla guida in linea di Mediawiki
    #require_once( "$IP/extensions/VisualMathCaptcha/VisualMathCaptcha.setup.php" );
    #$wgAutoloadClasses['VisualMathConfirmCaptcha'] = "$IP/extensions/VisualMathCaptcha/VisualMathConfirmCaptcha.class.php";
    ////i comandi successivi, sono messi solo come modello di settaggio. Non attivateli, se non sapete come impostarli. Funziona lo stesso.
    #$wgVisualMathCaptchaItemMax = 4;  ///cifra massima per i numeri; Di default: 9.
    #$wgVisualMathCaptchaItemNum = 3;  ///numero delle cifre da mostrare; Di default: 2.
    #$wgVisualMathCaptchaOperators = array( '+' );  ///simboli delle operazioni matematiche da usare. Default: ( '+', '-' ) piu e meno.
     
     
         /////////////         ////////////////////
    ####///####Questo, e' invece il Captcha classico. Lo diamo qui disattivato perche va in conflitto. O attivate questo, oppure l'altro.
    ///###Da notare che dovete anche per questo cambiare alcuni valori nel fil ConfirmEdit.php a seconda di quale volete usare.
    #####require_once( "$IP/extensions/recaptcha/ReCaptcha.php" );
    #####$recaptcha_public_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    #####$recaptcha_private_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    ///####Se si decide di attivare il VisualCaptcha, molto migliore, 
    ///###NON ATTIVATE I PARAMETRI CHE SEGUONO, altrimenti entrano in conflitto
    ####$wgCaptchaClass = 'SimpleCaptcha';
    //Attivate o uno, oppure l'altro.
    ####require_once( "$IP/extensions/ConfirmEdit/MathCaptcha.php"); 
    ####$wgCaptchaClass = 'MathCaptcha';
    ////
     
    ////////////////////////
    ///Filtri ANTI SPAM ( possono essere superflue se il Visual Captcha vi funziona ):
    #require_once("{$IP}/extensions/SimpleAntiSpam/SimpleAntiSpam.php");
    #require_once("{$IP}/extensions/SpamBlacklist/SpamBlacklist.php");
     
    #$wgSpamBlacklistFiles = array(
       #"$IP/extensions/SpamBlacklist/spam_blacklist", // spam_blacklist
          //  database      title
       #"DB: isicnv_naturpedia14_1 spam_blacklist",    
    #);
     
    #require_once("{$IP}/extensions/AntiBot/AntiBot.php");
    #require_once("$IP/extensions/SpamRegex/SpamRegex.php"); /// permette filtri di parole, sulla creazione dei contenuti delle pagine: per esempio solo sul titolo, ecc.
    //per questa, va creata anche una Tabella nel Database.
     
    ///-----------------------------------/////
     
    //////////////////////////
    ///Per gli INTERLINK:////
    ////////////////////////
     
    #require_once("$IP/extensions/Interwiki/SpecialInterwiki.php"); 
    ##require_once("$IP/extensions/Interwiki/Interwiki.php"); //Dalla vers 1.17, utilizzare questa al posto di quella sopra
    //Vi sevirà per le tabelle, anche se decidete di non utilizzare gl'interlink.
    $wgGroupPermissions['*']['interwiki'] = false;  //Chiude il permesso agli anonimi
    $wgGroupPermissions['sysop']['interwiki'] = true;  //Da il permesso di cambiare e aggiungere prefissi interwiki, ai Sysop
    $wgForceUIMsgAsContentMsg = array( 'mainpage', 'talk', 'user', 'portal-url' );  //Su quali gruppi di pagine far apparire i ptefissi laterali interlinguage 
    // (di default, sono escluse le pagine di discussioni -Namespace "talk"- e quelle degli Utenti, qui attivate invece.)
     
    //---//-------------///-----//--------///----------//
    ///////////////////////////////////////////////////
    /////Altre Estensioni con Funzioni Minori.////////
    /////////////////////////////////////////////////
     
    ///Per queste prime due estensioni, va creata una Tabella nel Database MySqL, per cui le diamo qui disattivate: 
    ///attivatele solo dopo, aver fatto la o le tabella/e. (Le istruzioni per crearla le trovate nella cartella specifica di quell'estensione, oppure su MediaWiki.org).
    #require_once("{$IP}/extensions/AjaxShowEditors/Load.php"); //permette di visualizzare i contribuenti contemporanei in una stessa una pagina.
    #require_once("{$IP}/extensions/WhosOnline/WhosOnline.php"); //permette di visualizzare chi è online.
     
    /// La prossima, permetterebbe aggiungere campi aggiuntivi a chi si registra, tipo telefono, indirizzo, ecc, ma la Guida online non spiega nulla in dettaglio; 
    //presuppone che chiunque la installi sia un esperto di .php e sappia come modificare il codice. La diamo quindi disattivata, anche se utile.
    #require_once($IP."/extensions/customUserCreateForm/customUserCreateForm.php"); 
    #require_once("$IP/extensions/TransformChanges.php"); ///Cambia l'aspetto Grafico della pag. Speciale:UltimeModifiche; può piacere, come non piacere, per cui la diamo disattivata.
    #require_once("extensions/GoogleSiteSearch/GoogleSiteSearch.php"); ///Cambia il motore di ricerca interno di default, con quello di Google. Per attivarla, dovete anche sostituire in /include/ nel file SpecialSearch.php, un pezzo di codice (vedi Manuale online).
     
    /// cHATs /// Tutte le Versioni, sono state migliorate per questo progetto, adattandone meglio la Traduzione all'italiano.
     
    /// Questa è l'unica che funziona perfettamente, subito. E anche meglio della prossima, in quanto gli anonimi non solo possono entrare, ma anche scegliersi il nickname e il Canale. Versione migliorata per questo progetto.
    require_once("$IP/extensions/freenodeChat/freenodeChat.php");
    #$wgFreenodeChannel = '#NameOfChannel(s)';
    #$wgGroupPermissions['*']['freenode-chat'] = true;
    #$wgFreenodeChatChannel = '#nomeCanaleFreenode'; //qui, si può scegliere d'inserire un nuovo canale; infatti, di default, è impostato su #mediawiki18n dove generalmente si parla inglese.
    ///Quest'altra, crea anch'essa una pagina speciale di Webchat; sembra funzionare tutto, eccetto l'entrata per gli IP anonimi. Forse, perchè studiata per lavorare sull'ultimissima versione di MediaWiki: la 1.16
    #require_once( "extensions/WebChat/WebChat.php" ); 
    #$wgWebChatServer  = '';
    #$wgWebChatChannel = '#freenode'; #qui si può impostare un Canale privato per il proprio wiki, invece di lasciare questo generale di #freenode (o '#mibbit';). (si crea gratis alla pagina di freenode) 
    #$wgWebChatClient = 'freenodeChat'; ///in alternativa, si può usare: 'Mibbit';
    ///La prossima, invece, crea una linguetta Chat su tutti gli Articoli; funziona, ma.. non riusciamo a settarla. Va solo con gli User Burocrati;
    #require_once( "{$IP}/extensions/WikiChat/WikiChat.php" );  // non riusciamo a capire come settarla per tutti gli Utenti.
    #require_once("$IP/extensions/PJIRC/SpecialIRC.php"); ///Questa, è più complicata settarla per via di Java (sia per chi la installa, che per chi la usa). Ma, se ci riuscite, è carina anch'essa.
    #require_once("$IP/extensions/irc/SpecialIrc.php"); ///Idem come sopra, ma sembra un pelino più facile da settare.. e funziona fin da subito; per cui, la diamo attiva. Al contrario delle altre, visualizza comodamente diversi Canali a cui accedere. Chi la usa, però, deve conoscere un minimo di comunicazione IRC per digitare i comandi. Inoltre, chi non usa Java o ha problemi a settarlo, è tagliato fuori. A volte, gli IP anonimi hanno difficoltà a connettersi.
    #require_once( "{$IP}/extensions/DPLforum/DPLforum.php" ); ///Quest'altra, permette invece la visualizzazione delle Talk, come Forum. Va settata bene però.
    #require_once( "$IP/extensions/awc/forums/awc_forum.php" ); //Altra estensione che genera un Forum: forse troppo invasivo, ma molto più completo del primo qui sopra. Va settato bene anch'esso.


    Esempi di LocalSettings


    Ecco degli Esempi di file LocalSettings.php basati sulla versione 1.14 del software, ma la parte delle Estensioni, al fondo, vale per tutte. Anche se decidete di non usarlo, può esservi utile comunque dargli un'occhiata per la traduzione all'italiano che abbiamo fatto delle frasi in inglese che accompagnano tutti i LocalSettings di qualsiasi versione.

    Primo Esempio (Completo)

    In questo nostro primo esempio, vogliamo fornirvi il File LocalSettings completo, con cui potrete attivarvi tutte le estensioni che vi abbiamo zippato in uno dei nostri "pacchetti" il cui link vi ricordiamo al fondo.

    Dal seguente codice, potete fare copia incolla; oppure, se preferite fare il download del file che vi diamo al finale, ricordate, prima di sostituirlo, di conservare sempre una copia dell'originale per poter tornare indietro in caso di malfunzionamenti o errori. E ricordatevi anche, ovviamente, di sostituire i dati personali del wiki con i vostri, sostituendoli a quelli di esempio che vi abbiamo messo noi.


    Code 1

    Vai a: Esempio: Completo.


    Download

    1. Download del file "LocalSettings.php" completo qui trattato:
    2. Download del nostro "pacchetto" di estensioni associato ad esso:



    Secondo Esempio (Minimal)

    Solo le estensioni minime: Antispam e formattazione (testi, tag, template).


    Code 2

    Vai a: Esempio: Minimal.


    Download

    1. Download del file "LocalSettings.php" minimo qui trattato:
    2. Download del nostro "pacchetto" di estensioni associato ad esso:







    i due Esempi di codici LocalSettings

    <?php
     
    # Questo file è stato generato automaticamente dal programma di installazione di MediaWiki.
    # Se si apportano delle modifiche manuali, si prega di tenerne traccia in caso aveste la necessità di
    # ricrearle più tardi.
    #
    # Vedere 'includes/DefaultSettings.php' per tutte le impostazioni configurabili
    # nei loro valori di default, ma non dimenticate di non apportare modifiche in quel file, non lì. Fatelo solo qui nel 'LocalSettings.php'
    #
    # Ulteriori informazioni sulla documentazione per le impostazioni di configurazione, possono essere trovate all'indirizzo:
    # http://www.mediawiki.org/wiki/Manual:Configuration_settings
     
    # Se si personalizza il layout del file, impostare $IP nella directory che contiene
    # gli altri file di MediaWiki. Sarà usato come base per individuare i file.
     
    if( defined( 'MW_INSTALL_PATH' ) ) {
    	$IP = MW_INSTALL_PATH;
    } else {
    	$IP = dirname( __FILE__ );
    }
     
    $path = array( $IP, "$IP/includes", "$IP/languages" );
    set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
     
     
    ///ASSICURATEVI CHE TUTTO CIO CHE "SETTATE", RIMANGA AL DI SOTTO DI QUESTA STRINGA!!!///  
    require_once( "$IP/includes/DefaultSettings.php" );
     
     
    # Se la Memoria PHP del server che vi ospita, ha un limite molto basso, alcune operazioni possono fallire. 
    # Aumentatela da qui, portandola da 20 a 30, max 60 (o 120), settando al fondo della linea:
    ini_set( 'memory_limit', '120M' );
     
    if ( $wgCommandLineMode ) {
    	if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
    		die( "This script must be run from the command line\n" );
    	}
    }
    ## Rimuovete il commento qui di seguito per disabilitare l'output compression 
    /// (ossia, il back-up scaricabile in zip del wiki; se non l'avete disattivate pure, perchè di default è attivo e vi spreca risorse)
    #$wgDisableOutputCompression = true;
     
    $wgSitename         = "NOME-DEL-VOSTRO-WIKI"; /// Potete cambiare il Nome del vostro wiki da qui (ciò influisce, nel NAMESPACE delle pagine Linee Guida)
    #$wgLogo = '/...'; /// SCEGLIERE UN'IMMAGINE PER IL LOGO E METTERE QUI LA ROOT AL POSTO DEI TRE PUNTINI (http://..ecc.)
     
    ## La path del percorso URL per la directory contenente il wiki;
    $wgScriptPath       = ""; // se avete installato sotto la root principale come vi abbiamo consigliato noi, lasciatela vuota
    $wgScriptExtension  = ".php";
    ## le impostazioni predefinite per tutti i percorsi URL runtime (paths) sono basate su questo
    ## Per ulteriori informazioni sulla personalizzazione dell'URL del proprio dominio wiki consultare:
    ## Http://www.mediawiki.org/wiki/Manual:Short_URL
     
    ## UPO significa: che è un'opzione di preferenze dell'utente
     
    $wgEnableEmail      = true; # Abilita le Email
    $wgEnableUserEmail  = true; # UPO
     
    $wgEmergencyContact = "ESEMPIO@Email.com"; # Mail per il contatto di uso interno
    $wgPasswordSender = "ESEMPIO@Email.com"; # Mail per ricevere di nuovo la Password 
     
    $wgEnotifUserTalk = true; # UPO
    $wgEnotifWatchlist = false; # UPO
    $wgEmailAuthentication = true; # Abilita l'autenticazione tramite Email
     
    ## Database settaggi
    $wgDBtype           = "mysql"; # Nome del Tipo di Database
    $wgDBserver         = "localhost"; # Directory del Database (METTETE LA VOSTRA)
    $wgDBname           = "METTETE IL VOSTRO"; # Nome del Database
    $wgDBuser           = "METTETE IL VOSTRO"; # Nome Utente-Login del Database
    $wgDBpassword       = "METTETE LA VOSTRA"; # Password dell'Utente-Login del Database
     
    # MySQL specifici settaggi
    $wgDBprefix         = ""; // Solo se avete creato un prefisso per le Tabelle (del Database), specificatelo qui
     
    # MySQL opzioni di tabella da utilizzare durante l'installazione o l'aggiornamento
    $wgDBTableOptions   = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
     
    # Sperimentale charset supportO per MySQL 4.1/5.0.
    $wgDBmysql5 = true;
     
    ## Memoria condivisa, settaggi
    $wgMainCacheType = CACHE_NONE;
    $wgMemCachedServers = array();
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
     
    ## Per abilitare uploads di immagini e files, assicuratevi che la cartella 'images' directory
    ## sia scrivibile (writable) sul Server, prima di settare il seguente parametro su "true":
    $wgEnableUploads = true; //attivando questo parametro, si visualizza sulla barra laterale l'opzione upload anche ai non-loggati
    $wgGroupPermissions['*']['upload'] = true; //Lasciate Disattiva questa variabile, se volete che solo gli utenti registrati (loggati) possano uploadare files
    //$wgUseCopyrightUpload = true; //Disattivare questa variabile, se non si vuole che nell'Upload appaiano i Campi: "Fonte", e "Dettagli sul Copyright".
    ///questa seconda serie, serve a far visualizzare le immagini da meta.commons e altri progetti wiki; 
    //su alcuni server può dare problemi, casomai disattivatela.
    ///(se il nome dell'immagine è presente uguale sui diversi progetti specificati, sarà visualizzata la prima,
    ///ossia, il sistema darà la precedenza al primo progetto specificato della lista)
    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://naturpedia.org/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://base.ekopedia.org/w/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    $wgForeignFileRepos[] = array(
       'class'                   => 'ForeignAPIRepo',
       'name'                    => 'shared',
       'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    ///Non attivatene troppe se non vi servono, altrimenti, potreste rallentare la wiki.
    //Si possono comunque anche aggiungere "altri siti" diversi da commons.
    //Per esempio, per le immagini da it.wiki e da meta.Anarchopedia, attivate:
    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'sharedwp',
       'apibase'          => 'http://it.wikipedia.org/w/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://meta.anarchopedia.org/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
     
    ///La prossima serie di stringhe, permette l'Upload dei File con le estensioni indicate (di default, permette solo jpg, jpeg e png)
    //(cancellate quelle che non v'interessano, o disattivatele ponendo il simbolo # all'inizio); 
    //NON METTETELA ALL'INIZIO, perchè potrebbe entrare in conflitto con altri settaggi (soprattutto dalla vers 1.17) 
    $wgAllowTitlesInSVG = true;
    $wgFileExtensions[] = 'svg';
    $wgFileExtensions[] = 'bmp';
    $wgFileExtensions[] = 'ogg';
    $wgFileExtensions[] = 'flv';
    $wgFileExtensions[] = 'swf';
    $wgFileExtensions[] = 'mp3';
    $wgFileExtensions[] = 'pdf';
    $wgFileExtensions[] = 'doc';
     
    //Upload diretto da un URL con la seguente stringa, da settare anche nel file DefaultSettings.php, dentro la cartella /includes/.
    //Aggiungete poi il permesso adeguato, visto che di default appare ai soli amministratori. 
    //questo, se si vuole che sia aperto a tutti, (anche agli anonimi):
    $wgGroupPermissions['*']['upload_by_url'] = true;
    $wgAllowCopyUploads = true;
    //Oppure, per i soli Utenti auto-confermatisi via mail, sarà così:
    #$wgGroupPermissions['autoconfirmed']['upload_by_url'] = true;
    #$wgAllowCopyUploads = true;
    //Non mettete entrambi, vanno in conflitto.
     
    $wgAllowExternalImages = true; /// vi consente di fare in modo che negli articoli, 
    //ad un link corrispondente ad un'immagine esterna, 
    //venga visualizzata l'immagine di provenienza sul vostro wiki, 
    //sebbene essa non sia caricata sul vostro server.
     
    //AllowUserJs, permette gli script x i bottoncini 'UserMarkS: 
    //mettetela su 'true' se lo volete permettere, su 'false' se non li volete permettere 
    //(per attivare i Bottoni, bisogna agire però anche sul Monobook con uno script 
    //e creare un "Utente User:MarkS" - Dettagli nel Manuale online).
    $wgAllowUserJS = true;
     
    ///UseAjax vi potrebbe servire per numerose estensioni; vi consiglio di attivarlo anch'esso.
    $wgUseAjax = true;
     
    ///ShowEXIF, che serve a far visualizzare i DATI EXIF delle immagini, 
    //vi consigliamo di lasciarlo su 'false' se attivate la visualizzazione da Commons, perchè altrimenti 
    //queste le visualizza male. Se invece visualizzate solo quelle caricate sul vostro server, settatelo pure su true.
    $wgShowEXIF  = false;
     
    ///FINE RIGA del COPIA-INCOLLA.
     
    ## $wgUseImageMagick = true;
    ///DISATTIVIAMO Image Magik perchè può dare problemi sulla generazione delle miniature thumbnail
    $wgUseImageMagick = false;
    $wgImageMagickConvertCommand = "/usr/bin/convert";
     
    ## Se si utilizza ImageMagick (o qualsiasi altro comando di shell) su un
    ## Server Linux, questo dovrà essere impostato sul nome di un
    ## UTF-8 locale disponibile
    $wgShellLocale = "en_US.utf8";
     
    ## Se si desidera utilizzare il caricamento delle immagini in modalità sicura,
    ## creare le cartelle directory: images/archive, images/thumb e
    ## images/temp, rendendole tutte "scrivibili" (777). Dopo, attivate
    ## questo parametro a 'true', se non è già attivato:
    #$wgHashedUploadDirectory = true;
     
    ## Se avete il software di supporto appropriato installato
    ## è possibile attivare la linea di equazioni LaTeX:
    ///lasciatela pure attivata se prevedete di utilizzare la nostra alternativa, l'Ext "Mimetex", sotto. Ma non usate più il parametro <match>
    //Attivandola, vi appare infatti anche il messaggio di errore ogniqualvolta s'inseriscono formule matematiche nelle pagine del wiki
    //per ricordare appunto che non avete il necessario software installato. Quindi, attivatela solo se lo avete, ed utilizzate il parametro <tex>. (Per vedere se funziona, inserite questa Formula matematica: <tex>2^3</tex> in una qualsiasi pagina del vostro wiki.)
    #$wgUseTeX = true;
    #$wgMathPath = "{$wgScriptPath}/math";
    #$wgMathDirectory = "{$wgScriptPath}/math";
     
    $wgLocalInterwiki   = strtolower( $wgSitename );
     
    //Anche i seguenti parametri attivateli solo se avete il software di supporto LaTeX ufficiale, installato (maggiori informazioni sul manuale online)
    ##$wgUploadPath = "images";
    ##$wgUploadDirectory = "images";
    ##$wgMathPath = "{$wgUploadPath}/math";
    ##$wgMathDirectory = "{$wgUploadDirectory}/math";
    ##$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
     
    $wgLanguageCode = "it";
     
    $wgSecretKey = "GENERATA-AUTOMATICAMENTE-AL-MOMENTO-DELL'INSTALLAZIONE";
     
    ## Skin di default: è possibile cambiare la skin di default. Utilizzare il nome simbolico interno 
    ## i nomi, cioè: 'standard', 'nostalgia', 'cologneblue', 'monobook', ecc. che trovate all'interno della cartella Skin
    $wgDefaultSkin = 'monobook';
    #$wgDefaultSkin = 'modern'; //SE ATTIVATE QUESTA, DISATTIVATE L'ALTRA
     
    ## Per collegare i metadati delle licenze alle pagine, e la visualizzazione 
    ## dell'appropriata nota di copyright e relativa icona. 
    ## Sono supportati fino ad ora: GNU Free Documentation e Creative Commons.
    #$wgEnableCreativeCommonsRdf = true; 
     
    ///////////////////////////////////////
    ////////////*CREDITI*/////////////////
    /////Esempio di CREATIVE-COMMONS.////
    ////////////////////////////////////
    #$wgRightsText = "Attribution-ShareAlike 3.0 Unported"; //Non attivate questa contemporaneamente; o una, o un'altra.
    #$wgRightsIcon = "http://i.creativecommons.org/l/by-sa/3.0/88x31.png"; //Qui si specifica l'Url dell'icona, oppure la root se l'avete caricata sul vostro server.
    //////////////////////////////////
    /////Esempio di GNU-GFDL.////////
    ////////////////////////////////
    $wgRightsText = "GNU Free Documentation License 1.2"; # Setta il Testo (Copyright o Copyleft)
    $wgRightsIcon = "${wgScriptPath}/skins/common/images/gnu-fdl.png"; # Setta la cartella sul vostro server dell'immagine icona, di Copyright o Copyleft
    //////////////////////////////////
    /////Esempio di PUBLIC-DOMAIN.///
    ////////////////////////////////
    #$wgRightsText = "Pubblico Dominio";
    #$wgRightsIcon = "${wgScriptPath}/skins/common/images/public-domain.png"; //Attivate o questa, o le altre (non assieme). Disattivatele se non volete specificare nessuna icona di Copyright o Copyleft.
     
    /////CODICE HTML/////.
    ///Utilizzate il seguente parametro, se invece d'indicare una cartella o un URL sopra 
    //per l'immagine-icona (Copyright o Copyleft), preferite specificarlo in HTML, come da esempio:
    #$wgCopyrightIcon = "<img src='http://www.anisintheworld.org/images/Simbolo_Copyright.gif' alt='whatever' />";
     
    #$wgRightsPage = "Text of the GNU Free Documentation License"; # Setta la pagina del vostro wiki che descrive la vostra licenza/copyright o copyleft
    $wgRightsUrl = "http://www.gnu.org/copyleft/fdl.html"; # Setta l'Url che apparirà sull'icona; se non specificate il parametro sopra, prevarrà questo anche sul testo.
     
    ### $wgRightsCode = "gfdl"; ///Non ancora usata (cancellatela pure)
     
    $wgDiff3 = "/usr/bin/diff3";
    # Quando si apportano modifiche a questo file di configurazione, questo renderà
    # sicuro che le pagine nella cache vengano cancellate.
    $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );
     
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
     
    #$wgMaxCredits = 3; ///Attivare questo valore se si vuole che a fondo pagina appaiano i nomi dei contribuenti degli articoli. 
    //(specificare il numero. Se invece si vuole visualizzarli tutti, mettere a: -1)
    #$wgShowCreditsIfMax = true; ///Attivare questo valore, se si vuole che appaia un link che visualizzi i contribuenti oltre il numero specificato da noi.
     
    #$wgGroupPermissions['*']['minoredit'] = true; ///Permette anche agli IP anonimi di segnare modifiche come minori
     
    $wgRCLinkLimits = array( 50, 100, 250, 500, 5000 ); ///Specifica il num. max di 'cambi recenti' in Ultime Modifiche
    $wgRCLinkDays = array( 1, 3, 7, 14, 30, 300 ); ///Specifica il num. max di giorni, in Ultime Modifiche
     
    ##$wgAllowCategorizedRecentChanges   = false; /// vi permetterebbe di poter visualizzare, in 'ultime modifiche', 
    //solo quei cambi effettuati in determinate Categorie (scelte da voi). Ma sembra difettosa, quindi la diamo disattivata.
     
    ///SETTAGGI PER IL MOTORE DI RICERCA interno del wiki///
    $wgUseOldSearchUI = false; //Attivare, se si vuole la schermata di Ricerca senza opzioni dei Namespaces
    #$wgAdvancedSearchHighlighting = true; //Impostato su 'true', serve per avere più bello il testo evidenziato nei risultati di ricerca. Disattivatelo se avete poi problemi di lentezza.
    $wgEnableMWSuggest = true; //su 'true', Abilita i suggerimenti durante la digitazione nella caselle di ricerca
    $wgGoToEdit = true; //con questo il pulsante 'Vai', va direttamente alla schermata di 'modificare' se l'articolo non esiste
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate questa funzione se volete che gli IP anonimi non possano editare, ma solo quelli registrati (loggati) possano farlo
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['edit'] = false;
    #$wgEmailConfirmToEdit = true; ///questa, per richiede la conferma del proprio indirizzo e.mail per poter editare.
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate quest'altra, per fare in modo che solo voi (i 'sysop') possiate creare Account per le persone che potranno scrivere
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['createaccount'] = false;
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    //infine quest'ultima, se non volete gli IP anonimi riescano a leggere il vostro wiki, ma soltanto i loggati.
    #$wgGroupPermissions['*']['read'] = false;
    #$wgWhitelistRead = array("Pagina principale", 'Speciale:UltimeModifiche' ); //Potete specificare qui le pagine che gli anonimi possono visualizzare
    ///////////////////////////////////////////////////////////////////////////  
     
    //////////////////////////////////////////////////////////////////////////
    ///Da qui in poi, sotto, ci sono invece le estensioni vere e proprie. ///
    //////////////////////////////////////////////////////////////////////// 
     
     
    ///////////////////////////////////////////////////////////////////////////
    ///ESTENSIONI INSTALLATE//////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////
     
    /////////////////////////////
    ////Per le CATEGORIE:///////
    ///////////////////////////
     
    require_once("{$IP}/extensions/CategoryTree/CategoryTree.php"); ///Ramifica le Categorie.
    require_once("$IP/extensions/managecategories/managecategories.php"); ///Visualizza un comodo menu a tendina per le Categorie. (Versione migliorata e meglio tradotta all'italiano, per questo progetto)
    require_once("$IP/extensions/MultiCategorySearch/MultiCategorySearch.php"); ///Crea una nuova pagina speciale per la ricerca di voci in più categorie. (Versione tradotta all'italiano, per questo progetto)
    include("$IP/extensions/CategoryWatch/CategoryWatch.php"); ///Permette di mettere sotto 'osservazione' anche le pagine delle Categorie.
    require_once( "$IP/extensions/GoToCategory/GoToCategory.php" ); ///Permette d'includere nel motore di ricerca anche le categorie. Si verrà così reindirizzati all'omonima categoria quando questa è digitata; altrimenti, alla voce, se esiste.
    #require_once( "$IP/extensions/RandomInCategory/SpecialRandomincategory.php" ); ///Permette, tramite una pag speciale, che sia scelta a caso una pagina dentro di una determinata Categoria.
    ##require_once( "$IP/extensions/RandomInCategory/RandomInCategory.php" ); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.
     
    ///Queste due successive sono incompatibili assieme. Attivate, o una o l'altra.
    #require_once("$IP/extensions/articletocategory.php"); //Se volete attivare questa, disattivate questa successiva di articletocategory. ///Per attivarla, cancellate semplicemente il simbolo # all'inizio.
    require_once("$IP/extensions/ArticleToCategory2/ArticleToCategory2.php"); //(Versione migliorata per questo progetto).
    $wgarticletocategory2ConfigAddcat=true;
    #$wgarticletocategory2ConfigBlacklist=true; ///questo parametro "BlackList", meglio lasciarlo disattivato, se non sapete quello che fate.
     
     
    ///Questa successiva visualizza un messaggio, ricordando, a chi salva una voce senza categoria, che deve metterla.
    //Purtroppo, è un po' difettosa (rallenta la wiki), per cui.. la diamo disattivata.
    #require_once("$IP/extensions/WarnNoCategories/WarnNoCategories.php");
    //$wgWarnNoCategoriesOnNamespace[NS_MAIN] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_CATEGORY] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_CATEGORY_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_HELP] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_HELP_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_PROJECT] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_PROJECT_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER_TALK] = true;
    ##$wgGroupPermissions['sysop']['WarnNoCategories'] = false;
     
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///Le seguenti servono per abilitare certi Comandi essenziali o cmq utili, nella creazione di pagine e TEMPLATE.////
    ////////////////////////////////////////////////////////////
    require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
    $wgPFEnableStringFunctions = true;
    require_once ("$IP/extensions/StringFunctions/StringFunctions.php");
    //P.S: Parser Function va settato bene perchè funzioni al meglio.
    require_once("{$IP}/extensions/ExpandTemplates/ExpandTemplates.php");
    require_once("$IP/extensions/ConditionalTemplate.php");
    require_once("{$IP}/extensions/Description/Description.php");
    require_once("$IP/extensions/AllowAnchorTags/AllowAnchorTags.php"); //crea un Tag alternativo per linkare. Può essere superflua, se non usate molto i link.
    require_once("$IP/extensions/bookmark.php"); //per segnalare sui Social Forum gli articoli. (Versione migliorata per questo progetto)
    require_once("{$IP}/extensions/Cite/Cite.php"); //per la formattazione delle note a pie' di pagina. 
    require_once $IP . "/extensions/customtitle.php" ; ///per la modifica dei titoli delle pagine. Può essere superflua: si può creare infatti, lo stesso effetto, con un semplice Template.
    require_once("{$IP}/extensions/Poem/Poem.php"); //serve per formattare testi poetici.
    require_once("{$IP}/extensions/CharInsert/CharInsert.php"); //serve per l'Edittools//
    require_once("{$IP}/extensions/InputBox/InputBox.php"); //serve per creare box di ricerca.
    require_once("{$IP}/extensions/CreateBox/CreateBox.php"); //una Versione Migliorata di Input Box. Vi consigliamo di tenere entrambe. "CreateBox", è infatti più specifica per aiutare a 'creare' gli articoli, piuttosto che 'cercarli'. (Traduzione italiana migliorata per questo progetto)
    ///Questa che segue, necessita anche della creazione di una Tabella sul Database. La diamo quindi disattivata.
    ##require_once("{$IP}/extensions/CentralNotice/CentralNotice.php"); //consente di mettere un Avviso che appaia in tutte le pagine, che duri un certo lapso di tempo.
    require_once("$IP/extensions/SimpleCalendar.php"); ///Permette la visualizzazione di un piccolo calendario. Funziona tramite Tag, da apporre alle voci.
    require_once( "{$IP}/extensions/Contributors/Contributors.php" ); ///Visulizza una nuova voce, sulla barra laterale sinistra, per visualizzare i contribuenti e gli autori degli articoli.
    require_once( "{$IP}/extensions/NewestPages/NewestPages.php" ); //Crea una Pagina Speciale nuova, per poter visualizzare le pagine create recentemente: per Namespace e per Utente.
    require_once( "$IP/extensions/ContactPage/ContactPage.php" ); ///Crea un Modulo di Contatto, una Pagina Speciale nuova per chi vuole scrivere all'amministratore. Il vantaggio, è che non siete cosi' obbligati a mettere una mail pubblica.
    $wgContactUser = 'WikiSysop'; //Qui potete cambiare il nome dell'Aministratore Sysop che riceverà i messaggi (dev'essere un Utente che abbia abilitato il servizio di ricezione mail interno al wiki)
    $wgContactSender = $wgPasswordSender;
    $wgContactSenderName = 'Modulo di Contatto ' . $wgSitename;
    require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); //per visualizzare i codici di programmazione sulle pagine del wiki, in maniera colorata
    #require_once("$IP/extensions/SidebarDonateBox.php"); ///Serve per aggiungere sulla barra laterale il box Donate di Paypal.
    #$egSidebarDonateBoxContent = 'code Paypal'; //s'immette qui, il codice html paypal.
     
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////Le successive danno modo di visualizzare VIDEO o altri tipi di file multimediali, o formattazioni specifiche di IMMAGINI.///
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    #require_once("$IP/extensions/MultiUpload/SpecialMultipleUpload.php"); /// Permette l'Upload di più immagini o file multimediali, contemporaneamente. 
    ##require_once("$IP/extensions/MultiUpload/MultiUpload.php"); //Dalla vers 1.17, attivate questa al posto di quella sopra.
    #$wgMaxUploadFiles = 20; //Specificare qui il numero. Di default, sono cinque.
     
    require( "$IP/extensions/OggHandler/OggHandler.php" ); //Video formato .ogg
    require_once("extensions/videoflash.php"); //Specifica per i Video-Flash.
    require_once("{$IP}/extensions/YouTubeTag.php"); //Specifica, solo per i Video di YouTube.
    require_once("{$IP}/extensions/EmbedVideo/EmbedVideo.php"); //Per far visualizzare i Video dei maggiori servizi online di Videosharing, negli articoli.
    #require_once("{$IP}/extensions/ImageMap/ImageMap.php"); //
    require_once("extensions/mimetex/mimetex.php"); //Questa, riesce a far visualizzare senza nessun settaggio extra non solo i simboli matematici, ma anche le immagini nella generazione dei Pdf! Per i simboli matematici, bisogna usare nelle pagine il nuovo TAG generato: 'tex', al posto di 'match'. (Vedi istruzioni online, per sapere come cambiare il tasto della bottoniera Edit)
    // Potete provare se vi funziona, scrivendo questa Formula matematica: <tex>2^3</tex> <tex>a_2</tex> in una qualsiasi pagina wiki. Dovrebbero apparirvi dei simboli matematici.
    //Questa, la diamo disattivata perchè: necessita di settaggi nelle Tabelle.
    #require_once("$IP/extensions/Widgets/Widgets.php"); //I Widget, si comportano come dei comodi 'Template preconfezionati', specializzati sia per i video che per documenti.
    $wgGroupPermissions['sysop']['editwidgets'] = true; //Molte cose che fanno le estensioni, possono farlo i Widget; può essere più sicuro però dare permessi qui, piuttosto che dare la chiave del server ftp.
    //La prossima, permetterebbe l'importazione automatica da Flicr delle Licenze con cui sono pubblicate le immagini, ma va settata bene ed e' un po' complicato farlo, altrimenti non funziona.
    ##require_once("{$IP}/extensions/ImportFreeImages/ImportFreeImages.php"); //La diamo quindi disattivata.
    ///Quest'ultimo lo forniamo disattivato perche' serve per generare geroglifici, e non tutti usano quest'estensione, oltretutto molto pesante.
    ##require_once("{$IP}/extensions/wikihiero/wikihiero.php");
    //puoi provare se funziona, digitando x es: <hiero>A1</hiero> dovrebbe apparire un Geroglifico.
     
    ////////////////////////////////////////////////
    ///per i PDF e i PdfBook e altri documenti/////
    //////////////////////////////////////////////
     
    require_once("$IP/extensions/Pdfbutton/Pdfbutton.php"); ///Serve per aggiungere sulla barra laterale, un box per il Pdf-button.
    $egSidebarDonateBoxContent = '<a href="http://www.web2pdfconvert.com/convert" target="_blank">
    <img src="http://meta.anarchopedia.org/images/b/bb/ButonPDF20.png"/>Salva in PDF</a>'; //immettere qui, il codice html del button-pdf.<br>
     
    ///Per creare PDF, dalle Pagine wiki: (alcune parole delle funzioni in italiano, sono state modificate per questo progetto)
    #require_once("$IP/extensions/Collection/Collection.php"); /// Va settata bene per le immagini, altrimenti stampa solo il testo delle voci. 
    #$wgGroupPermissions['*']['collectionsaveasuserpage'] = true;
    #$wgGroupPermissions['*']['collectionsaveascommunitypage'] = true;
    #$wgGroupPermissions['user']['collectionsaveasuserpage'] = true;
    #$wgGroupPermissions['user']['collectionsaveascommunitypage'] = true;
    #$wgGroupPermissions['autoconfirmed']['collectionsaveascommunitypage'] = true;
    #$wgGroupPermissions['sysop']['collectionsaveasuserpage'] = true;
    #$wgGroupPermissions['sysop']['collectionsaveascommunitypage'] = true;
     
    ///La prima è sufficiente e completa, sia per generare Pdf singoli che creare Libri. La diamo però disattivata perchè si appoggia ad un server esterno che non sempre funziona. Potete provare le seguenti, nel caso
     
    //PdfBook, consente invecedi creare libri di tutti gli articoli di una categoria, senza dover star li a scrivere in modo singolo tutte le pagine. Funziona però solo tramite template.
    require_once( "$IP/extensions/PdfBook/PdfBook.php" );
    require_once("extensions/PdfExport/PdfExport.php"); ///Questa è molto buona. Rispetto a "Collection": genera Pdf più velocemente, ma leggermente più pesanti..e inoltre, va settata bene altrimenti non funziona; stesso discorso vale per la prossima...
    //##Questa successiva, invece, va installata in locale su di un proprio server, altrimenti non va. 
    //Aggiunge una linguetta in piu nelle pagine invece che sulla Barra laterale, per generare Pdf e anche txt semplice dagli articoli.
    //L'impaginazione viene meglio sotto molto aspetti, se potete permettervela ve la consigliamo.
    #$wgExtraNamespaces[100] = "LaTeX";
    #require_once($IP."/extensions/w2l/wiki2latex.php");
    require_once($IP."/extensions/GoogleDocs.php"); //per visualizzare i Documenti Fogli di lavoro di google Doc, sul vostro wiki. Per altri tipi di documenti, invece, utilizzate i Widget dell'omonima estensione.
     
    ///per vedere in anteprima i pdf nelle pagine wiki:
    #require_once("$IP/extensions/PdfHandler/PdfHandler.php");
    #$wgPdfHandlerDpi = 600;
    #$wgPdfCreateThumbnailsInJobQueue = true;
    //questo risolve il problema della generaz delle miniature pdf
    // https://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/mediawiki#problema_thumbnail_pdf
    // Maximum amount of virtual memory available to shell processes under Linux, in KB.
    #$wgMaxShellMemory = '262144';
    // Maximum file size created by shell processes under Linux, in KB.
    #$wgMaxShellFileSize = '409600';
     
    ##require_once("$IP/extensions/EmbedPDF.php");
    //Permette visualizzare Pdf nelle voci, ma non è visualizzato da tutti i browser perchè utilizza le ultime versioni di Flash (Adobe).
    ##require_once("$IP/extensions/embed_document.php");
    //Simile a quella sopra, ma consente la visualizzazione solo dei documenti caricati sul wiki;
    //con lo stesso difetto, ma questa ne permette anche di altri tipi (tutti quelli abilitati all'Upload)
    //e anche di ridimensionarne le misure (l'altra invece, non lo permette).
     
    ///////////////////////////////////////
    ////PER LA CANCELLAZIONE E LO SPAM////
    /////////////////////////////////////
     
    require_once( "$IP/extensions/ProtectSection/ProtectSection.php"); ///Permette agli amministratori, la protezione di sezioni parziali nelle pagine.
    require_once("$IP/extensions/AuthorProtect/AuthorProtect.php"); ///Permette agli utenti registrati, di bloccare le proprie pagine create dagli 'edit' altrui. Solo gli amministratori, potranno infatti editarle o cambiarle.
    require_once("$IP/extensions/Renameuser/SpecialRenameuser.php"); //Questa, invece, è per poter rinominare gli Utenti.
    $wgGroupPermissions['sysop']['renameuser'] = true; //Si può qui specificare chi può avere questo privilegio.
    require_once( "$IP/extensions/PasswordReset/PasswordReset.php" ); //per poter cambiare la password degli Utenti.
    $wgGroupPermissions['sysop']['passwordreset']   = true;  //Si può qui specificare chi può avere questo privilegio. 
    require_once("$IP/extensions/Maintenance/Maintenance.php");
    $wgGroupPermissions['bureaucrat']['maintenance'] = true; ///Questa, abilita certe altre funzioni extra per il mantenimento del wiki, non essenziali e meno importanti, ma comunque utili. //Di default, solo i burocrati possono accedere a questa prima estensione. Cambiare 'burocrate' a un gruppo diverso per consentire ad un gruppo diverso di accedere
    require_once("$IP/extensions/UserRightsList/UserRightsList.php"); ///Permette visualizzare una comoda lista di tutti gli utenti registrati e cambiare in maniera facile i loro privilegi.
    ///La seguente può darvi noia, se desiderate rimanere anonimi: infatti, il Log, è visibile da tutti (vale anche per gli Amministratori Sysop).
    #require_once("$IP/extensions/UserLoginLog/UserLoginLog.php"); ///Consente di vedere l'IP di un Utente loggato (nella pagina: "Special:Log"). (Simile a CheckUser, ma funzionante fin da subito, senza settaggi.)
    require_once( "$IP/extensions/UserMerge/UserMerge.php" ); ///Permette di cancellare gli Usuari senza pericoli per il DATABASE, tramite l'Unione l'un con l'altro.
    $wgGroupPermissions['bureaucrat']['usermerge'] = true;
    #optional - default is array( 'sysop' )
    #$wgUserMergeProtectedGroups = array( 'groupname' );
     
    #require_once("$IP/extensions/EditUser/EditUser.php"); ///Permette agli utenti con i privilegi necessari, di modificare e visualizzare le preferenze personali degli altri utenti. (Versione tradotta all'italiano per questo progetto)
    #$wgGroupPermissions['bureaucrat']['edituser'] = true; //User che possono 'spiare' o modificare, le 'preferenze' degli altri.
    #$wgGroupPermissions['sysop']['edituser-exempt'] = true; //User 'esenti' dall'essere modificati o 'visualizzati'.
    #require_once("$IP/extensions/Nuke/SpecialNuke.php"); ///Consente agli amministratori la cancellazione in massa, delle pagine create da un IP o user, in blocco (verranno cioè cancellate tutte le pagine create da quell'IP o da quell'Utente).
    ##require_once("$IP/extensions/Nuke/Nuke.php"); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.
     
    ////Permette una cancellazione permanente delle pagine: aggiunge la linguetta 'Delete Permanently' alle voci (può essere però pericolosa, se non ci si fida 100% dei propri coolaboratori o semplicemente se si e' distratti)
    #require_once("$IP/extensions/DeletePagePermanently/DeletePagePermanently.php");
    #$wgDeletePagePermanentlyNamespaces = array(
     
            #NS_MAIN => true,
            #NS_IMAGE => true,
            #NS_IMAGE_TALK => true,
            #NS_CATEGORY => true,
            #NS_CATEGORY_TALK => true,
            #NS_MEDIAWIKI => false,
            #NS_MEDIAWIKI_TALK => true,
            #NS_HELP => true,
            #NS_HELP_TALK => true,
            #NS_PROJECT => true,
            #NS_PROJECT_TALK => true,
            #NS_TEMPLATE => true,
            #NS_TEMPLATE_TALK => true,
            #NS_WIDGET => false,
            #NS_WIDGET_TALK => true,
            #NS_USER => true,
            #NS_USER_TALK => true,
            #NS_TALK => true,
    #);
     
    $wgGroupPermissions['*']         ['deleteperm'] = false;
    $wgGroupPermissions['user']      ['deleteperm'] = false;
    $wgGroupPermissions['bureaucrat']['deleteperm'] = true;
    $wgGroupPermissions['sysop']     ['deleteperm'] = false;
     
    ///Extension DeleteOldRevisions: permette la cancellazione solo delle vecchie revisioni delle voci.
    /// Può essere meno pericolosa della prima, perchè qui non appare la 'linguetta' e il risultato è abbastanza identico.
    $wgGroupPermissions['sysop']['DeleteOldRevisions'] = true;
    require_once( $IP.'/extensions/SpecialDeleteOldRevisions2/SpecialDeleteOldRevisions2.php');
     
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //// L'estensione Confirm Edit e il Captcha, sia esso il Visual o il Classico, vanno settate assieme bene 
    ///prima di attivarle per farle funzionare. Altrimenti non vanno.
    require_once("{$IP}/extensions/ConfirmEdit/ConfirmEdit.php");
     
    $wgCaptchaTriggers['edit']          = false; // Captacha su ogni singolo edit (potete prima provare su "false", e passarlo nel caso dopo a "true")
    $wgCaptchaTriggers['create']	    = true; // Captacha sulla creazione delle pagine nuove (idem)
    $wgCaptchaTriggers['addurl']        = true; // Captacha sugli edits contenenti dei link (URLs)
    $wgCaptchaTriggers['createaccount'] = true; // Captacha sulla creazione di Utenti nuovi (Special:Userlogin&type=signup)
     
    $wgGroupPermissions['*'            ]['skipcaptcha'] = false; // SI Captacha agli anonimi
    $wgGroupPermissions['user'         ]['skipcaptcha'] = false; // SI Captacha agli Utenti semplici
    $wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false; 
    $wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true; // NO Captacha agli Utenti autoconfermatisi via mail
    $ceAllowConfirmedEmail = true;
    $wgGroupPermissions['bot'          ]['skipcaptcha'] = true; // NO Captacha ai bots (gruppo "User Bot", interno al wiki)
    $wgGroupPermissions['sysop'        ]['skipcaptcha'] = true; // NO Captacha agli amministratori ("Sysop")
     
    /////////////////////////////////////////////////////////////////////////////////////////
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Questo e' il VisualCaptcha, migliore e piu' sicuro di quello standard di Google fornito piu' in basso. 
    /// E' completo, e quindi vi consiglio di attivarlo, prima di farlo xo' andate a modificare anche il 'ConfermEdit.php', 
    /// e sostituite li' il 'Simple Captcha' di Default con il 'Visual Captcha'. 
    /// ( Al posto di: $wgCaptchaClass = 'SimpleCaptcha' , mettete: $wgCaptchaClass = 'VisualMathConfirmCaptcha' )
    /// Al posto sia del reCaptcha che del Captcha normale. (Quindi, lasciate disattivati gli altri due in pratica)
    /// Trovate istruzioni più dettagliate, sulla guida in linea di Mediawiki
    require_once( "$IP/extensions/VisualMathCaptcha/VisualMathCaptcha.setup.php" );
    $wgAutoloadClasses['VisualMathConfirmCaptcha'] = "$IP/extensions/VisualMathCaptcha/VisualMathConfirmCaptcha.class.php";
    ////i comandi successivi, sono messi solo come modello di settaggio. Non attivateli, se non sapete come impostarli. Funziona lo stesso.
    $wgVisualMathCaptchaItemMax = 4;  ///cifra massima per i numeri; Di default: 9.
    $wgVisualMathCaptchaItemNum = 3;  ///numero delle cifre da mostrare; Di default: 2.
    $wgVisualMathCaptchaOperators = array( '+' );  ///simboli delle operazioni matematiche da usare. Default: ( '+', '-' ) piu e meno.
     
     
         /////////////         ////////////////////
    ####///####Questo, e' invece il Captcha classico. Lo diamo qui disattivato perche va in conflitto. O attivate questo, oppure l'altro.
    ///###Da notare che dovete anche per questo cambiare alcuni valori nel fil ConfirmEdit.php a seconda di quale volete usare.
    #####require_once( "$IP/extensions/recaptcha/ReCaptcha.php" );
    #####$recaptcha_public_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    #####$recaptcha_private_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    ///####Se si decide di attivare il VisualCaptcha, molto migliore, 
    ///###NON ATTIVATE I PARAMETRI CHE SEGUONO, altrimenti entrano in conflitto
    ####$wgCaptchaClass = 'SimpleCaptcha';
    //Attivate o uno, oppure l'altro.
    ####require_once( "$IP/extensions/ConfirmEdit/MathCaptcha.php"); 
    ####$wgCaptchaClass = 'MathCaptcha';
    ////
     
    ////////////////////////
    ///Filtri ANTI SPAM ( possono essere superflue se il Visual Captcha vi funziona ):
    #require_once("{$IP}/extensions/SimpleAntiSpam/SimpleAntiSpam.php");
    #require_once("{$IP}/extensions/SpamBlacklist/SpamBlacklist.php");
     
    #$wgSpamBlacklistFiles = array(
       #"$IP/extensions/SpamBlacklist/spam_blacklist", // spam_blacklist
          //  database      title
       #"DB: isicnv_naturpedia14_1 spam_blacklist",    
    #);
     
    #require_once("{$IP}/extensions/AntiBot/AntiBot.php");
    #require_once("$IP/extensions/SpamRegex/SpamRegex.php"); /// permette filtri di parole, sulla creazione dei contenuti delle pagine: per esempio solo sul titolo, ecc.
    //per questa, va creata anche una Tabella nel Database.
     
    ///-----------------------------------/////
     
    //////////////////////////
    ///Per gli INTERLINK:////
    ////////////////////////
     
    #require_once("$IP/extensions/Interwiki/SpecialInterwiki.php"); 
    ##require_once("$IP/extensions/Interwiki/Interwiki.php"); //Dalla vers 1.17, utilizzare questa al posto di quella sopra
    //Vi sevirà per le tabelle, anche se decidete di non utilizzare gl'interlink.
    $wgGroupPermissions['*']['interwiki'] = false;  //Chiude il permesso agli anonimi
    $wgGroupPermissions['sysop']['interwiki'] = true;  //Da il permesso di cambiare e aggiungere prefissi interwiki, ai Sysop
    $wgForceUIMsgAsContentMsg = array( 'mainpage', 'talk', 'user', 'portal-url' );  //Su quali gruppi di pagine far apparire i ptefissi laterali interlinguage 
    // (di default, sono escluse le pagine di discussioni -Namespace "talk"- e quelle degli Utenti, qui attivate invece.)
     
    //---//-------------///-----//--------///----------//
    ///////////////////////////////////////////////////
    /////Altre Estensioni con Funzioni Minori.////////
    /////////////////////////////////////////////////
     
    ///Per queste prime due estensioni, va creata prima una Tabella nel Database MySqL, per cui le diamo qui disattivate: 
    ///attivatele solo dopo, aver fatto la o le tabella/e. (Le istruzioni per crearla le trovate nella cartella specifica di quell'estensione, oppure su MediaWiki.org).
    #require_once("{$IP}/extensions/AjaxShowEditors/Load.php"); //permette di visualizzare i contribuenti contemporanei in una stessa una pagina.
    #require_once("{$IP}/extensions/WhosOnline/WhosOnline.php"); //permette di visualizzare chi è online.
     
    /// La prossima, permetterebbe aggiungere campi aggiuntivi a chi si registra, tipo telefono, indirizzo, ecc, ma la Guida online non spiega nulla in dettaglio; 
    //presuppone che chiunque la installi sia un esperto di .php e sappia come modificare il codice. La diamo quindi disattivata, anche se utile.
    ##require_once($IP."/extensions/customUserCreateForm/customUserCreateForm.php"); 
    #require_once("$IP/extensions/TransformChanges.php"); ///Cambia l'aspetto Grafico della pag. Speciale:UltimeModifiche; può piacere, come non piacere, per cui la diamo disattivata.
    #require_once("extensions/GoogleSiteSearch/GoogleSiteSearch.php"); ///Cambia il motore di ricerca interno di default, con quello di Google. Per attivarla, dovete anche sostituire in /include/ il file SpecialSearch.php con quello che vi diamo noi.
     
    /// cHATs /// Tutte le Versioni, sono state migliorate per questo progetto, adattandone meglio la Traduzione all'italiano.
     
    /// Questa è l'unica che funziona perfettamente, subito. E anche meglio della prossima, in quanto gli anonimi non solo possono entrare, ma anche scegliersi il nickname e il Canale. Versione migliorata per questo progetto.
    require_once("$IP/extensions/freenodeChat/freenodeChat.php");
    ///i seguenti parametri non è necessario che li attiviate; l'estensione funziona comunque.
    #$wgFreenodeChannel = '#NameOfChannel(s)';
    #$wgGroupPermissions['*']['freenode-chat'] = true;
    #$wgFreenodeChatChannel = '#nomeCanaleFreenode'; //qui, si può scegliere d'inserire un nuovo canale; infatti, di default, è impostato su #mediawiki18n dove generalmente si parla inglese.
    ///Quest'altra, crea anch'essa una pagina speciale di Webchat; sembra funzionare tutto, eccetto l'entrata per gli IP anonimi. Forse, perchè studiata per lavorare sull'ultimissima versione di MediaWiki: la 1.16
    #require_once( "extensions/WebChat/WebChat.php" ); 
    #$wgWebChatServer  = '';
    #$wgWebChatChannel = '#freenode'; #qui si può impostare un Canale privato per il proprio wiki, invece di lasciare questo generale di #freenode (o '#mibbit';). (si crea gratis alla pagina di freenode) 
    #$wgWebChatClient = 'freenodeChat'; ///in alternativa, si può usare: 'Mibbit';
    ///La prossima, invece, crea una linguetta Chat su tutti gli Articoli; funziona, ma.. non riusciamo a settarla. Va solo con gli User Burocrati;
    #require_once( "{$IP}/extensions/WikiChat/WikiChat.php" );  // non riusciamo a capire come settarla per tutti gli Utenti.
    #require_once("$IP/extensions/PJIRC/SpecialIRC.php"); ///Questa, è più complicata settarla per via di Java (sia per chi la installa, che per chi la usa). Ma, se ci riuscite, è carina anch'essa.
    require_once("$IP/extensions/irc/SpecialIrc.php"); ///Idem come sopra, ma sembra un pelino più facile da settare.. e funziona fin da subito; per cui, la diamo attiva. Al contrario delle altre, visualizza comodamente diversi Canali a cui accedere. Chi la usa, però, deve conoscere un minimo di comunicazione IRC per digitare i comandi. Inoltre, chi non usa Java o ha problemi a settarlo, è tagliato fuori. E, a volte, gli IP anonimi hanno difficoltà a connettersi.
    require_once( "{$IP}/extensions/DPLforum/DPLforum.php" ); ///Quest'altra, permette invece la visualizzazione delle Talk, come Forum. Va settata bene però.
    #require_once( "$IP/extensions/awc/forums/awc_forum.php" ); //Altra estensione che genera un Forum: forse troppo invasivo, ma molto più completo del primo qui sopra. Inoltre, va settato bene anch'esso.


    <?php
     
    # Questo file è stato generato automaticamente dal programma di installazione di MediaWiki.
    # Se si apportano delle modifiche manuali, si prega di tenerne traccia in caso aveste la necessità di
    # ricrearle più tardi.
    #
    # Vedere 'includes/DefaultSettings.php' per tutte le impostazioni configurabili
    # nei loro valori di default, ma non dimenticate di non apportare modifiche in quel file, non lì. Fatelo solo qui nel 'LocalSettings.php'
    #
    # Ulteriori informazioni sulla documentazione per le impostazioni di configurazione, possono essere trovate all'indirizzo:
    # http://www.mediawiki.org/wiki/Manual:Configuration_settings
     
    # Se si personalizza il layout del file, impostare $IP nella directory che contiene
    # gli altri file di MediaWiki. Sarà usato come base per individuare i file.
     
    if( defined( 'MW_INSTALL_PATH' ) ) {
    	$IP = MW_INSTALL_PATH;
    } else {
    	$IP = dirname( __FILE__ );
    }
     
    $path = array( $IP, "$IP/includes", "$IP/languages" );
    set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() );
     
     
    ///ASSICURATEVI CHE TUTTO CIO CHE "SETTATE", RIMANGA AL DI SOTTO DI QUESTA STRINGA!!!///  
    require_once( "$IP/includes/DefaultSettings.php" );
     
     
    # Se la Memoria PHP del server che vi ospita, ha un limite molto basso, alcune operazioni possono fallire. 
    # Aumentatela da qui, portandola da 20 a 30, max 60 (o 120), settando al fondo della linea:
    ini_set( 'memory_limit', '60M' );
     
    if ( $wgCommandLineMode ) {
    	if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
    		die( "This script must be run from the command line\n" );
    	}
    }
    ## Rimuovete il commento qui di seguito per disabilitare l'output compression 
    /// (ossia, il back-up scaricabile in zip del wiki; se non l'avete disattivate pure, perchè di default è attivo e vi spreca risorse)
    $wgDisableOutputCompression = true;
     
    $wgSitename         = "NOME-DEL-VOSTRO-WIKI"; /// Potete cambiare il Nome del vostro wiki da qui (ciò influisce, nel NAMESPACE delle pagine Linee Guida) 
    #$wgLogo = '/...'; /// SCEGLIERE UN'IMMAGINE PER IL LOGO E METTERE QUI LA ROOT AL POSTO DEI TRE PUNTINI (http://..ecc.)
     
    ## La path del percorso URL per la directory contenente il wiki;
    $wgScriptPath       = ""; // se avete installato sotto la root principale come vi abbiamo consigliato noi, lasciatela vuota
    $wgScriptExtension  = ".php";
    ## le impostazioni predefinite per tutti i percorsi URL runtime (paths) sono basate su questo
    ## Per ulteriori informazioni sulla personalizzazione dell'URL del proprio dominio wiki consultare:
    ## Http://www.mediawiki.org/wiki/Manual:Short_URL
     
    ## UPO significa: che è un'opzione di preferenze dell'utente
     
    $wgEnableEmail      = true; # Abilita le Email
    $wgEnableUserEmail  = true; # UPO
     
    $wgEmergencyContact = "ESEMPIO@Email.com"; # Mail per il contatto di uso interno
    $wgPasswordSender = "ESEMPIO@Email.com"; # Mail per ricevere di nuovo la Password 
     
    $wgEnotifUserTalk = true; # UPO
    $wgEnotifWatchlist = false; # UPO
    $wgEmailAuthentication = true; # Abilita l'autenticazione tramite Email
     
    ## Database settaggi
    $wgDBtype           = "mysql"; # Nome del Tipo di Database
    $wgDBserver         = "localhost"; # Directory del Database (METTETE LA VOSTRA)
    $wgDBname           = "METTETE IL VOSTRO"; # Nome del Database
    $wgDBuser           = "METTETE IL VOSTRO"; # Nome Utente-Login del Database
    $wgDBpassword       = "METTETE LA VOSTRA"; # Password dell'Utente-Login del Database
     
    # MySQL specifici settaggi
    $wgDBprefix         = ""; // Solo se avete creato un prefisso per le Tabelle (del Database), specificatelo qui
     
    # MySQL opzioni di tabella da utilizzare durante l'installazione o l'aggiornamento
    $wgDBTableOptions   = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
     
    # Sperimentale charset supportO per MySQL 4.1/5.0.
    $wgDBmysql5 = true;
     
    ## Memoria condivisa, settaggi
    $wgMainCacheType = CACHE_NONE;
    $wgMemCachedServers = array();
     
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
     
    ## Per abilitare uploads di immagini e files, assicuratevi che la cartella 'images' directory
    ## sia scrivibile (writable) sul Server, prima di settare il seguente parametro su "true":
    $wgEnableUploads = true; //attivando questo parametro, si visualizza sulla barra laterale l'opzione upload anche ai non-loggati
    $wgGroupPermissions['*']['upload'] = true; //Lasciate Disattiva questa variabile, se volete che solo gli utenti registrati (loggati) possano uploadare files
    #$wgUseCopyrightUpload = true; //Attivare questa variabile, se non si vuole che nell'Upload appaiano i Campi: "Fonte", e "Dettagli sul Copyright".
     
    ///questa seconda serie, serve a far visualizzare le immagini da meta.commons e altri progetti wiki; 
    //su alcuni server può dare problemi, casomai non attivatela.
    ///(se il nome dell'immagine è presente uguale sui diversi progetti specificati, sarà visualizzata la prima,
    ///ossia, il sistema darà la precedenza al primo progetto specificato della lista)
    #$wgForeignFileRepos[] = array(
       #'class'            => 'ForeignAPIRepo',
       #'name'             => 'shared',
       #'apibase'          => 'http://base.ekopedia.org/w/api.php',
       #'fetchDescription' => true, // Optional
       #'descriptionCacheExpiry'  => 60480000000, // 12 hours, optional (values are seconds)
       #'apiThumbCacheExpiry'     => 8640000000000, // 12 hours, optional, but required for local thumb caching
    #);
    #$wgForeignFileRepos[] = array(
       #'class'                   => 'ForeignAPIRepo',
       #'name'                    => 'shared',
       #'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
       #'fetchDescription'        => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       #'descriptionCacheExpiry'  => 60480000000, // 12 ore, opzionale (valori in secondi)
       #'apiThumbCacheExpiry'     => 8640000000000, // 12 ore, opzionale, ma richiesto per la cache di thumb locale
    #);
    ///Non attivatene troppe se non vi servono, altrimenti, potreste rallentare la wiki.
    //Si possono comunque anche aggiungere "altri siti" diversi da commons.
    //Per esempio, per le immagini da it.wiki e da meta.Anarchopedia, attivate:
    ##$wgForeignFileRepos[] = array(
       ##'class'            => 'ForeignAPIRepo',
       ##'name'             => 'sharedwp',
       ##'apibase'          => 'http://it.wikipedia.org/w/api.php',
       ##'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
       ##'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       ##'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    ##);
    ##$wgForeignFileRepos[] = array(
    ##   'class'            => 'ForeignAPIRepo',
    ##   'name'             => 'shared',
    ##   'apibase'          => 'http://naturpedia.org/api.php',
    ##   'fetchDescription' => false, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
    ##   'descriptionCacheExpiry'  => 60480000000, // hours, optional (values are seconds)
    ##   'apiThumbCacheExpiry'     => 8640000000000, // hours, optional, but required for local thumb caching
    ##);
    ##$wgForeignFileRepos[] = array(
    ##   'class'            => 'ForeignAPIRepo',
    ##   'name'             => 'shared',
    ##   'apibase'          => 'http://meta.anarchopedia.org/api.php',
    ##   'fetchDescription' => false, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc)
    ##   'descriptionCacheExpiry'  => 60480000000, // hours, optional (values are seconds)
    ##   'apiThumbCacheExpiry'     => 8640000000000, // hours, optional, but required for local thumb caching
    ##);
     
    ///La prossima serie di stringhe, permette l'Upload dei File con le estensioni indicate (di default, permette solo jpg, jpeg e png)
    //(cancellate quelle che non v'interessano, o disattivatele ponendo il simbolo # all'inizio); 
    //NON METTETELA ALL'INIZIO, perchè potrebbe entrare in conflitto con altri settaggi (soprattutto dalla vers 1.17)  
    $wgAllowTitlesInSVG = true;
    $wgFileExtensions[] = 'svg';
    $wgFileExtensions[] = 'bmp';
    $wgFileExtensions[] = 'ogg';
    $wgFileExtensions[] = 'flv';
    $wgFileExtensions[] = 'swf';
    $wgFileExtensions[] = 'mp3';
    $wgFileExtensions[] = 'pdf';
    $wgFileExtensions[] = 'doc';
     
    //Upload diretto da un URL con la seguente stringa, da settare anche nel file DefaultSettings.php, dentro la cartella /includes/.
    //Aggiungete poi il permesso adeguato, visto che di default appare ai soli amministratori. 
    //questo, se si vuole che sia aperto a tutti, (anche agli anonimi):
    #$wgGroupPermissions['*']['upload_by_url'] = true;
    #$wgAllowCopyUploads = true;
    //Oppure, per i soli Utenti auto-confermatisi via mail, sarà così:
    $wgGroupPermissions['autoconfirmed']['upload_by_url'] = true;
    $wgAllowCopyUploads = true;
    //Non mettete entrambi, vanno in conflitto.
     
    $wgAllowExternalImages = true; /// vi consente di fare in modo che negli articoli, 
    //ad un link corrispondente ad un'immagine esterna, 
    //venga visualizzata l'immagine di provenienza sul vostro wiki, 
    //sebbene essa non sia caricata sul vostro server.
     
    //AllowUserJs, permette gli script x i bottoncini 'UserMarkS: 
    //mettetela su 'true' se lo volete permettere, su 'false' se non li volete permettere 
    //(per attivare i Bottoni, bisogna agire però anche sul Monobook con uno script 
    //e creare un "Utente User:MarkS" - Dettagli nel Manuale online).
    $wgAllowUserJS = true;
     
    ///UseAjax vi potrebbe servire per numerose estensioni; vi consiglio di attivarlo anch'esso.
    $wgUseAjax = true;
     
    ///ShowEXIF, che serve a far visualizzare i DATI EXIF delle immagini, 
    //vi consigliamo di lasciarlo su 'false' se attivate la visualizzazione da Commons, perchè altrimenti 
    //queste le visualizza male. Se invece visualizzate solo quelle caricate sul vostro server, settatelo pure su true.
    $wgShowEXIF  = false;
     
    ///FINE RIGA del COPIA-INCOLLA.
     
    ## $wgUseImageMagick = true;
    ///DISATTIVIAMO Image Magik perchè può dare problemi sulla generazione delle miniature thumbnail
    $wgUseImageMagick = false;
    $wgImageMagickConvertCommand = "/usr/bin/convert";
     
    ## Se si utilizza ImageMagick (o qualsiasi altro comando di shell) su un
    ## Server Linux, questo dovrà essere impostato sul nome di un
    ## UTF-8 locale disponibile
    $wgShellLocale = "en_US.utf8";
     
    ## Se si desidera utilizzare il caricamento delle immagini in modalità sicura,
    ## creare le cartelle directory: images/archive, images/thumb e
    ## images/temp, rendendole tutte "scrivibili" (777). Dopo, attivate
    ## questo parametro a 'true', se non è già attivato:
    #$wgHashedUploadDirectory = true;
     
    ## Se avete il software di supporto appropriato installato
    ## è possibile attivare la linea di equazioni LaTeX:
    ///lasciatela pure attivata se prevedete di utilizzare la nostra alternativa, l'Ext "Mimetex", sotto. Ma non usate più il parametro <match>
    //Attivandola, vi appare infatti anche il messaggio di errore ogniqualvolta s'inseriscono formule matematiche nelle pagine del wiki
    //per ricordare appunto che non avete il necessario software installato. Quindi, attivatela solo se lo avete, ed utilizzate il parametro <tex>. (Per vedere se funziona, inserite questa Formula matematica: <tex>2^3</tex> in una qualsiasi pagina del vostro wiki.)
    #$wgUseTeX = true;
     
    $wgLocalInterwiki   = strtolower( $wgSitename );
     
    //Anche i seguenti parametri attivateli solo se avete il software di supporto LaTeX ufficiale, installato (maggiori informazioni sul manuale online)
    ##$wgUploadPath = "images";
    ##$wgUploadDirectory = "images";
    ##$wgMathPath = "{$wgUploadPath}/math";
    ##$wgMathDirectory = "{$wgUploadDirectory}/math";
    ##$wgTmpDirectory = "{$wgUploadDirectory}/tmp";
     
    $wgLanguageCode = "it";
     
    $wgSecretKey = "GENERATA-AUTOMATICAMENTE-AL-MOMENTO-DELL'INSTALLAZIONE";
     
    ## Skin di default: è possibile cambiare la skin di default. Utilizzare il nome simbolico interno 
    ## i nomi, cioè: 'standard', 'nostalgia', 'cologneblue', 'monobook', ecc. che trovate all'interno della cartella Skin
    $wgDefaultSkin = 'monobook';
    #$wgDefaultSkin = 'modern'; //SE ATTIVATE QUESTA, DISATTIVATE L'ALTRA
     
    ## Per collegare i metadati delle licenze alle pagine, e la visualizzazione 
    ## dell'appropriata nota di copyright e relativa icona. 
    ## Sono supportati fino ad ora: GNU Free Documentation e Creative Commons.
    #$wgEnableCreativeCommonsRdf = true; 
     
    ///////////////////////////////////////
    ////////////*CREDITI*/////////////////
    /////Esempio di CREATIVE-COMMONS.////
    ////////////////////////////////////
    #$wgRightsText = "Attribution-ShareAlike 3.0 Unported"; //Non attivate questa contemporaneamente; o una, o un'altra.
    #$wgRightsIcon = "http://i.creativecommons.org/l/by-sa/3.0/88x31.png"; //Qui si specifica l'Url dell'icona, oppure la root se l'avete caricata sul vostro server.
    //////////////////////////////////
    /////Esempio di GNU-GFDL.////////
    ////////////////////////////////
    $wgRightsText = "GNU Free Documentation License 1.2"; # Setta il Testo (Copyright o Copyleft)
    $wgRightsIcon = "${wgScriptPath}/skins/common/images/gnu-fdl.png"; # Setta la cartella sul vostro server dell'immagine icona, di Copyright o Copyleft
    //////////////////////////////////
    /////Esempio di PUBLIC-DOMAIN.///
    ////////////////////////////////
    #$wgRightsText = "Pubblico Dominio";
    #$wgRightsIcon = "${wgScriptPath}/skins/common/images/public-domain.png"; //Attivate o questa, o le altre (non assieme). Disattivatele se non volete specificare nessuna icona di Copyright o Copyleft.
     
    /////CODICE HTML/////.
    ///Utilizzate il seguente parametro, se invece d'indicare una cartella o un URL sopra 
    //per l'immagine-icona (Copyright o Copyleft), preferite specificarlo in HTML, come da esempio:
    #$wgCopyrightIcon = "<img src='http://www.anisintheworld.org/images/Simbolo_Copyright.gif' alt='whatever' />";
     
    #$wgRightsPage = "Text of the GNU Free Documentation License"; # Setta la pagina del vostro wiki che descrive la vostra licenza/copyright o copyleft
    $wgRightsUrl = "http://www.gnu.org/copyleft/fdl.html"; # Setta l'Url che apparirà sull'icona; se non specificate il parametro sopra, prevarrà questo anche sul testo.
     
    ### $wgRightsCode = "gfdl"; ///Non ancora usata (cancellatela pure)
     
    $wgDiff3 = "/usr/bin/diff3";
    # Quando si apportano modifiche a questo file di configurazione, questo renderà
    # sicuro che le pagine nella cache vengano cancellate.
    $wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );
     
     
    ///DA QUI IN POI, FATE pure COPIA-INCOLLA.
     
    #$wgMaxCredits = 3; ///Attivare questo valore se si vuole che a fondo pagina appaiano i nomi dei contribuenti degli articoli. 
    //(specificare il numero. Se invece si vuole visualizzarli tutti, mettere a: -1)
    #$wgShowCreditsIfMax = true; ///Attivare questo valore, se si vuole che appaia un link che visualizzi i contribuenti oltre il numero specificato da noi.
     
    #$wgGroupPermissions['*']['minoredit'] = true; ///Permette anche agli IP anonimi di segnare modifiche come minori
     
    $wgRCLinkLimits = array( 50, 100, 250, 500, 5000 ); ///Specifica il num. max di 'cambi recenti' in Ultime Modifiche
    $wgRCLinkDays = array( 1, 3, 7, 14, 30, 300 ); ///Specifica il num. max di giorni, in Ultime Modifiche
     
    ##$wgAllowCategorizedRecentChanges   = false; /// vi permetterebbe di poter visualizzare, in 'ultime modifiche', 
    //solo quei cambi effettuati in determinate Categorie (scelte da voi). Ma sembra difettosa, quindi la diamo disattivata.
     
    ///SETTAGGI PER IL MOTORE DI RICERCA interno del wiki///
    #$wgUseOldSearchUI = false; //Attivare, se si vuole la schermata di Ricerca senza opzioni dei Namespaces
    #$wgAdvancedSearchHighlighting = true; //Impostato su 'true', serve per avere più bello il testo evidenziato nei risultati di ricerca. Disattivatelo se avete poi problemi di lentezza.
    #$wgEnableMWSuggest = true; //su 'true', Abilita i suggerimenti durante la digitazione nella caselle di ricerca
    #$wgGoToEdit = true; //con questo il pulsante 'Vai', va direttamente alla schermata di 'modificare' se l'articolo non esiste
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate questa funzione se volete che gli IP anonimi non possano editare, ma solo quelli registrati (loggati) possano farlo
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['edit'] = false;
    #$wgEmailConfirmToEdit = true; ///questa, per richiede la conferma del proprio indirizzo e.mail per poter editare.
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    ///Abilitate quest'altra, per fare in modo che solo voi (i 'sysop') possiate creare Account per le persone che potranno scrivere
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    #$wgGroupPermissions['*']['createaccount'] = false;
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    //infine quest'ultima, se non volete gli IP anonimi riescano a leggere il vostro wiki, ma soltanto i loggati.
    #$wgGroupPermissions['*']['read'] = false;
    #$wgWhitelistRead = array("Pagina principale", 'Speciale:UltimeModifiche' ); //Potete specificare qui le pagine che gli anonimi possono visualizzare
    ///////////////////////////////////////////////////////////////////////////  
     
    //////////////////////////////////////////////////////////////////////////
    ///Da qui in poi, sotto, ci sono invece le estensioni vere e proprie. ///
    //////////////////////////////////////////////////////////////////////// 
     
     
    ///////////////////////////////////////////////////////////////////////////
    ///ESTENSIONI INSTALLATE//////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////
     
    /////////////////////////////
    ////Per le CATEGORIE:///////
    ///////////////////////////
     
    require_once("{$IP}/extensions/CategoryTree/CategoryTree.php"); ///Ramifica le Categorie.
    require_once("$IP/extensions/managecategories/managecategories.php"); ///Visualizza un comodo menu a tendina per le Categorie. (Versione migliorata e meglio tradotta all'italiano, per questo progetto)
    #require_once("$IP/extensions/MultiCategorySearch/MultiCategorySearch.php"); ///Crea una nuova pagina speciale per la ricerca di voci in più categorie. (Versione tradotta all'italiano, per questo progetto)
    #include("$IP/extensions/CategoryWatch/CategoryWatch.php"); ///Permette di mettere sotto 'osservazione' anche le pagine delle Categorie.
    #require_once( "$IP/extensions/GoToCategory/GoToCategory.php" ); ///Permette d'includere nel motore di ricerca anche le categorie. Si verrà così reindirizzati all'omonima categoria quando questa è digitata; altrimenti, alla voce, se esiste.
    #require_once( "$IP/extensions/RandomInCategory/SpecialRandomincategory.php" ); ///Permette, tramite una pag speciale, che sia scelta a caso una pagina dentro di una determinata Categoria.
    ##require_once( "$IP/extensions/RandomInCategory/RandomInCategory.php" ); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.///Queste due successive sono incompatibili assieme. Attivate, o una o l'altra.
     
    ///Queste due successive sono incompatibili assieme. Attivate, o una o l'altra.
    #require_once("$IP/extensions/articletocategory.php"); //Se volete attivare questa, disattivate questa successiva di articletocategory. ///Per attivarla, cancellate semplicemente il simbolo # all'inizio.
    require_once("$IP/extensions/ArticleToCategory2/ArticleToCategory2.php"); //(Versione migliorata per questo progetto).
    $wgarticletocategory2ConfigAddcat=true;
    #$wgarticletocategory2ConfigBlacklist=true; ///questo parametro "BlackList", meglio lasciarlo disattivato, se non sapete quello che fate.
     
     
    ///Questa successiva visualizza un messaggio, ricordando, a chi salva una voce senza categoria, che deve metterla.
    //Purtroppo, è un po' difettosa (rallenta la wiki), per cui.. la diamo disattivata.
    #require_once("$IP/extensions/WarnNoCategories/WarnNoCategories.php");
    //$wgWarnNoCategoriesOnNamespace[NS_MAIN] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_IMAGE_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_CATEGORY] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_CATEGORY_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_MEDIAWIKI_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_HELP] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_HELP_TALK] = true;
    //$wgWarnNoCategoriesOnNamespace[NS_PROJECT] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_PROJECT_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_TEMPLATE_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_WIDGET_TALK] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER] = true;
    #$wgWarnNoCategoriesOnNamespace[NS_USER_TALK] = true;
    ##$wgGroupPermissions['sysop']['WarnNoCategories'] = false;
     
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///Le seguenti servono per abilitare certi Comandi essenziali o cmq utili, nella creazione di pagine e TEMPLATE.////
    require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
    $wgPFEnableStringFunctions = true;
    #require_once ("$IP/extensions/StringFunctions/StringFunctions.php");
    //P.S: Parser Function va settato bene perchè funzioni al meglio.
    require_once("{$IP}/extensions/ExpandTemplates/ExpandTemplates.php");
    require_once("$IP/extensions/ConditionalTemplate.php");
    require_once("{$IP}/extensions/Description/Description.php");
     
    require_once("{$IP}/extensions/Cite/Cite.php"); //per la formattazione delle note a pie' di pagina. 
    require_once("{$IP}/extensions/Poem/Poem.php"); //serve per formattare testi poetici.
    require_once("{$IP}/extensions/CharInsert/CharInsert.php"); //serve per l'Edittools//
    require_once("{$IP}/extensions/InputBox/InputBox.php"); //serve per creare box di ricerca.
    require_once("{$IP}/extensions/CreateBox/CreateBox.php"); //una Versione Migliorata di Input Box. Vi consigliamo di tenere entrambe. "CreateBox", è infatti più specifica per aiutare a 'creare' gli articoli, piuttosto che 'cercarli'. (Traduzione italiana migliorata per questo progetto)
     
    #require_once("$IP/extensions/bookmark.php"); //per segnalare sui Social Forum gli articoli. (Versione migliorata per questo progetto)
    ##require_once $IP . "/extensions/customtitle.php" ; ///per la modifica dei titoli delle pagine. Può essere superflua: si può creare infatti, lo stesso effetto, con un semplice Template.
    ##require_once("$IP/extensions/AllowAnchorTags/AllowAnchorTags.php"); //crea un Tag alternativo per linkare. Può essere superflua, se non usate molto i link.
    ///Questa che segue, necessita anche della creazione di una Tabella sul Database. La diamo quindi disattivata.
    ##require_once("{$IP}/extensions/CentralNotice/CentralNotice.php"); //consente di mettere un Avviso che appaia in tutte le pagine, che duri un certo lapso di tempo.
    #require_once("$IP/extensions/SimpleCalendar.php"); ///Permette la visualizzazione di un piccolo calendario. Funziona tramite Tag, da apporre alle voci.
    #require_once( "{$IP}/extensions/Contributors/Contributors.php" ); ///Visulizza una nuova voce, sulla barra laterale sinistra, per visualizzare i contribuenti e gli autori degli articoli.
    require_once( "{$IP}/extensions/NewestPages/NewestPages.php" ); //Crea una Pagina Speciale nuova, per poter visualizzare le pagine create recentemente: per Namespace e per Utente.
    require_once( "$IP/extensions/ContactPage/ContactPage.php" ); ///Crea un Modulo di Contatto, una Pagina Speciale nuova per chi vuole scrivere all'amministratore. Il vantaggio, è che non siete cosi' obbligati a mettere una mail pubblica.
    $wgContactUser = 'WikiSysop'; //Qui potete cambiare il nome dell'Aministratore Sysop che riceverà i messaggi (dev'essere un Utente che abbia abilitato il servizio di ricezione mail interno al wiki)
    $wgContactSender = $wgPasswordSender;
    $wgContactSenderName = 'Modulo di Contatto ' . $wgSitename;
    #require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); //per visualizzare i codici di programmazione sulle pagine del wiki, in maniera colorata
    #require_once("$IP/extensions/SidebarDonateBox.php"); ///Serve per aggiungere sulla barra laterale il box Donate di Paypal.
    #$egSidebarDonateBoxContent = 'code Paypal'; //s'immette qui, il codice html paypal.
     
     
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////Le successive danno modo di visualizzare VIDEO o altri tipi di file multimediali, o formattazioni specifiche di IMMAGINI.///
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    #require_once("$IP/extensions/MultiUpload/SpecialMultipleUpload.php"); /// Permette l'Upload di più immagini o file multimediali, contemporaneamente. 
    ##require_once("$IP/extensions/MultiUpload/MultiUpload.php"); //Dalla vers 1.17, attivate questa al posto di quella sopra.
    #$wgMaxUploadFiles = 20; //Specificare qui il numero. Di default, sono cinque.
     
    #require( "$IP/extensions/OggHandler/OggHandler.php" ); //Video formato .ogg
    #require_once("extensions/videoflash.php"); //Specifica per i Video-Flash.
    #require_once("{$IP}/extensions/YouTubeTag.php"); //Specifica, solo per i Video di YouTube.
    #require_once("{$IP}/extensions/EmbedVideo/EmbedVideo.php"); //Per far visualizzare i Video dei maggiori servizi online di Videosharing, negli articoli.
    ##require_once("{$IP}/extensions/ImageMap/ImageMap.php");
    require_once("extensions/mimetex/mimetex.php"); //Questa, riesce a far visualizzare senza nessun settaggio extra non solo i simboli matematici, ma anche le immagini nella generazione dei Pdf! Per i simboli matematici, bisogna usare nelle pagine il nuovo TAG generato: 'tex', al posto di 'match'. (Vedi istruzioni online, per sapere come cambiare il tasto della bottoniera Edit)
    // Potete provare se vi funziona, scrivendo questa Formula matematica: <tex>2^3</tex> <tex>a_2</tex> in una qualsiasi pagina wiki. Dovrebbero apparirvi dei simboli matematici.
    //Questa, la diamo disattivata perchè: necessita di settaggi nelle Tabelle.
    #require_once("$IP/extensions/Widgets/Widgets.php"); //I Widget, si comportano come dei comodi 'Template preconfezionati', specializzati sia per i video che per documenti.
    #$wgGroupPermissions['sysop']['editwidgets'] = true; //Molte cose che fanno le estensioni, possono farlo i Widget; può essere più sicuro però dare permessi qui, piuttosto che dare la chiave del server ftp.
    //La prossima permetterebbe l'importazione automatica da Flicr delle Licenze con cui sono pubblicate le immagini, ma va settata bene ed e' un po' complicato farlo, altrimenti non funziona.
    ##require_once("{$IP}/extensions/ImportFreeImages/ImportFreeImages.php"); //La diamo quindi disattivata.
    ///Quest'ultima la forniamo disattivata perchè serve per generare geroglifici, e non tutti usano quest'estensione, oltretutto molto pesante.
    ##require_once("{$IP}/extensions/wikihiero/wikihiero.php");
    //puoi provare se funziona, digitando x es: <hiero>A1</hiero> dovrebbe apparirti un Geroglifico.
     
    ////////////////////////////////////////////////
    ///per i PDF e i PdfBook e altri documenti/////
    //////////////////////////////////////////////
     
    require_once("$IP/extensions/Pdfbutton/Pdfbutton.php"); ///Serve per aggiungere sulla barra laterale, un box per il Pdf-button.
    $egSidebarDonateBoxContent = '<a href="http://www.web2pdfconvert.com/convert" target="_blank">
    <img src="http://meta.anarchopedia.org/images/b/bb/ButonPDF20.png"/>Salva in PDF</a>'; //immettere qui, il codice html del button-pdf.<br>
     
    ///Per creare PDF, dalle Pagine wiki: (alcune parole delle funzioni in italiano, sono state modificate per questo progetto)
    #require_once("$IP/extensions/Collection/Collection.php"); /// Va settata bene per le immagini, altrimenti stampa solo il testo delle voci. (Aggiunge link sulla barra laterale)
    ///La prima è sufficiente e completa, sia per generare Pdf singoli che creare Libri. La diamo però disattivata perchè 
    //si appoggia ad un server esterno che non sempre funziona. Potete provare le successive, nel caso.
     
    //PdfBook, consente di creare libri di tutti gli articoli di una categoria, senza dover star li a scrivere in modo singolo tutte le pagine. 
    //Funziona però solo tramite template. (Non aggiunge il link sulla barra laterale sinistra)
    require_once( "$IP/extensions/PdfBook/PdfBook.php" );
    #require_once("extensions/PdfExport/PdfExport.php"); ///Questa è molto buona. Aggiunge link un sulla barra laterale
    //Rispetto a "Collection": genera Pdf più velocemente, ma leggermente più pesanti..
    //va settata bene anch'essa per le immagini. 
     
    ///##Questa successiva, invece, va installata in locale su di un proprio server, altrimenti non va. 
    //Aggiunge una linguetta in piu nelle pagine invece che sulla Barra laterale, per generare Pdf e anche txt semplice dagli articoli.
    //L'impaginazione viene meglio sotto molto aspetti, se potete permettervela ve la consigliamo.
    #$wgExtraNamespaces[100] = "LaTeX";
    #require_once($IP."/extensions/w2l/wiki2latex.php");
    #require_once($IP."/extensions/GoogleDocs.php"); //per visualizzare i Documenti Fogli di lavoro di google Doc, sul vostro wiki. Per altri tipi di documenti, invece, utilizzate i Widget dell'omonima estensione.
     
    #require_once("$IP/extensions/PdfHandler/PdfHandler.php");
    //per vedere in anteprima i pdf caricati nelle pagine del vostro wiki.
     
    ##require_once("$IP/extensions/EmbedPDF.php");
    //Permette visualizzare Pdf nelle voci, ma non è visualizzato da tutti i browser perchè utilizza le ultime versioni di Flash (Adobe).
    ##require_once("$IP/extensions/embed_document.php");
    //Simile a quella sopra, ma consente la visualizzazione solo dei documenti caricati sul wiki;
    //con lo stesso difetto, ma questa ne permette anche di altri tipi (tutti quelli abilitati all'Upload)
    //e anche di ridimensionarne le misure (l'altra invece, non lo permette).
     
    ///////////////////////////////////////
    ////PER LA CANCELLAZIONE E LO SPAM////
    /////////////////////////////////////
     
    require_once( "$IP/extensions/ProtectSection/ProtectSection.php"); ///Permette agli amministratori, la protezione di sezioni parziali nelle pagine.
    require_once("$IP/extensions/AuthorProtect/AuthorProtect.php"); ///Permette agli utenti registrati, di bloccare le proprie pagine create dagli 'edit' altrui. Solo gli amministratori, potranno infatti editarle o cambiarle.
    require_once("$IP/extensions/Renameuser/SpecialRenameuser.php"); //Questa, invece, è per poter rinominare gli Utenti.
    $wgGroupPermissions['sysop']['renameuser'] = true; //Si può qui specificare chi può avere questo privilegio.
     
    $wgGroupPermissions['bureaucrat']['maintenance'] = true; ///Questa, abilita certe altre funzioni extra per il mantenimento del wiki, non essenziali e meno importanti, ma comunque utili. //Di default, solo i burocrati possono accedere a questa prima estensione. Cambiare 'burocrate' a un gruppo diverso per consentire ad un gruppo diverso di accedere
    require_once("$IP/extensions/Maintenance/Maintenance.php");
    #require_once("$IP/extensions/UserRightsList/UserRightsList.php"); ///Permette visualizzare una comoda lista di tutti gli utenti registrati e cambiare in maniera facile i loro privilegi.
    ///La seguente può darvi noia, se desiderate rimanere anonimi: infatti, il Log, è visibile da tutti (vale anche per gli Amministratori Sysop).
    #require_once("$IP/extensions/UserLoginLog/UserLoginLog.php"); //Consente di vedere l'IP di un Utente loggato (nella pagina: "Special:Log"). (Simile a CheckUser, ma funzionante fin da subito, senza settaggi.)
    require_once( "$IP/extensions/UserMerge/UserMerge.php" ); ///Permette di cancellare gli Usuari senza pericoli per il DATABASE, tramite l'Unione l'un con l'altro.
    $wgGroupPermissions['bureaucrat']['usermerge'] = true;
    #optional - default is array( 'sysop' )
    #$wgUserMergeProtectedGroups = array( 'groupname' );
     
    #require_once("$IP/extensions/EditUser/EditUser.php"); ///Permette agli utenti con i privilegi necessari, di modificare e visualizzare le preferenze personali degli altri utenti. (Versione tradotta all'italiano per questo progetto)
    #$wgGroupPermissions['bureaucrat']['edituser'] = true; //User che possono 'spiare' o modificare, le 'preferenze' degli altri.
    #$wgGroupPermissions['sysop']['edituser-exempt'] = true; //User 'esenti' dall'essere modificati o 'visualizzati'.
    #require_once("$IP/extensions/Nuke/SpecialNuke.php"); ///Consente agli amministratori la cancellazione in massa, delle pagine create da un IP o user, in blocco (verranno cioè cancellate tutte le pagine create da quell'IP o da quell'Utente).
    ##require_once("$IP/extensions/Nuke/Nuke.php"); // Dalla vers 1.17, attivate questo parametro al posto di quello sopra.
     
    ////Permette la cancellazione permanente di pagine: aggiunge la linguetta 'Delete Permanently' alle voci 
    //(può essere pericolosa, se non ci si fida 100% dei propri collaboratori, o semplicemente se si e' distratti)
    #require_once("$IP/extensions/DeletePagePermanently/DeletePagePermanently.php");
    #$wgDeletePagePermanentlyNamespaces = array(
            #NS_MAIN => true,
            #NS_IMAGE => true,
            #NS_IMAGE_TALK => true,
            #NS_CATEGORY => true,
            #NS_CATEGORY_TALK => true,
            #NS_MEDIAWIKI => false,
            #NS_MEDIAWIKI_TALK => true,
            #NS_HELP => true,
            #NS_HELP_TALK => true,
            #NS_PROJECT => true,
            #NS_PROJECT_TALK => true,
            #NS_TEMPLATE => true,
            #NS_TEMPLATE_TALK => true,
            #NS_WIDGET => false,
            #NS_WIDGET_TALK => true,
            #NS_USER => true,
            #NS_USER_TALK => true,
            #NS_TALK => true,
    #);
     
    #$wgGroupPermissions['*']         ['deleteperm'] = false;
    #$wgGroupPermissions['user']      ['deleteperm'] = false;
    #$wgGroupPermissions['bureaucrat']['deleteperm'] = true;
    #$wgGroupPermissions['sysop']     ['deleteperm'] = false;
     
    ///"DeleteOldRevisions": permette la cancellazione solo delle vecchie revisioni delle voci.
    /// Può essere meno pericolosa della prima, perchè qui non appare la 'linguetta' e il risultato è abbastanza identico.
    $wgGroupPermissions['sysop']['DeleteOldRevisions'] = true;
    require_once( $IP.'/extensions/SpecialDeleteOldRevisions2/SpecialDeleteOldRevisions2.php');
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    //// L'estensione "Confirm Edit" e il "Captcha", sia esso il "Visual" o il "Classico", vanno settate assieme bene 
    ///prima di attivarle per farle funzionare. Altrimenti non vanno. Le diamo disattivate, quindi.
    #require_once("{$IP}/extensions/ConfirmEdit/ConfirmEdit.php");
     
    #$wgCaptchaTriggers['edit']          = false; // Captacha su ogni singolo edit (potete prima provare su "false", e passarlo nel caso dopo a "true")
    #$wgCaptchaTriggers['create']	    = true; // Captacha sulla creazione delle pagine nuove (idem)
    #$wgCaptchaTriggers['addurl']        = true; // Captacha sugli edits contenenti dei link (URLs)
    #$wgCaptchaTriggers['createaccount'] = true; // Captacha sulla creazione di Utenti nuovi (Special:Userlogin&type=signup)
     
    #$wgGroupPermissions['*'            ]['skipcaptcha'] = false; // SI Captacha agli anonimi
    #$wgGroupPermissions['user'         ]['skipcaptcha'] = true; // NO Captacha agli Utenti semplici
    #$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false;
    #$wgGroupPermissions['emailconfirmed']['skipcaptcha'] = true; // NO Captacha agli Utenti autoconfermatisi via mail
    #$ceAllowConfirmedEmail = true;
    #$wgGroupPermissions['bot'          ]['skipcaptcha'] = true; // NO Captacha ai bots (gruppo "User Bot", interno al wiki)
    #$wgGroupPermissions['sysop'        ]['skipcaptcha'] = true; // NO Captacha agli amministratori ("Sysop")
     
    /////////////////////////////////////////////////////////////////////////////////////////
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Questo e' il VisualCaptcha, migliore e piu' sicuro di quello standard di Google fornito piu' in basso. 
    /// E' completo, e quindi vi consiglio di attivarlo, prima di farlo xo' andate a modificare anche il 'ConfermEdit.php', 
    /// e sostituite li' il 'Simple Captcha' di Default con il 'Visual Captcha'. 
    /// ( Al posto di: $wgCaptchaClass = 'SimpleCaptcha' , mettete: $wgCaptchaClass = 'VisualMathConfirmCaptcha' )
    /// Al posto sia del reCaptcha che del Captcha normale. (Quindi lasciate disattivati gli altri due in pratica)
    /// Trovate istruzioni più dettagliate, sulla guida in linea di Mediawiki
    #require_once( "$IP/extensions/VisualMathCaptcha/VisualMathCaptcha.setup.php" );
    #$wgAutoloadClasses['VisualMathConfirmCaptcha'] = "$IP/extensions/VisualMathCaptcha/VisualMathConfirmCaptcha.class.php";
    ////i comandi successivi, sono messi solo come modello di settaggio. Non attivateli, se non sapete come impostarli. Funziona lo stesso.
    #$wgVisualMathCaptchaItemMax = 4;  ///cifra massima per i numeri; Di default: 9.
    #$wgVisualMathCaptchaItemNum = 3;  ///numero delle cifre da mostrare; Di default: 2.
    #$wgVisualMathCaptchaOperators = array( '+' );  ///simboli delle operazioni matematiche da usare. Default: ( '+', '-' ) piu e meno.
     
     
         /////////////         ////////////////////
    ####///####Questo, e' invece il Captcha classico. Lo diamo qui disattivato perche va in conflitto. O attivate questo, oppure l'altro.
    ///###Da notare che dovete anche per questo cambiare alcuni valori nel fil ConfirmEdit.php a seconda di quale volete usare.
    #####require_once( "$IP/extensions/recaptcha/ReCaptcha.php" );
    #####$recaptcha_public_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    #####$recaptcha_private_key = 'immettere qui, il codice di serie fornito da Google al momento della Registrazione';
    ///####Se si decide di attivare il VisualCaptcha, molto migliore, 
    ///###NON ATTIVATE I PARAMETRI CHE SEGUONO, altrimenti entrano in conflitto
    ####$wgCaptchaClass = 'SimpleCaptcha';
    //Attivate o uno, oppure l'altro.
    ####require_once( "$IP/extensions/ConfirmEdit/MathCaptcha.php"); 
    ####$wgCaptchaClass = 'MathCaptcha';
    ////
     
    ////////////////////////
    ///Filtri ANTI SPAM ( possono essere superflue se il Visual Captcha vi funziona ):
    #require_once("{$IP}/extensions/SimpleAntiSpam/SimpleAntiSpam.php");
    #require_once("{$IP}/extensions/SpamBlacklist/SpamBlacklist.php");
     
    #$wgSpamBlacklistFiles = array(
       #"$IP/extensions/SpamBlacklist/spam_blacklist", // spam_blacklist
          //  database      title
       #"DB: isicnv_naturpedia14_1 spam_blacklist",    
    #);
     
    #require_once("{$IP}/extensions/AntiBot/AntiBot.php");
    #require_once("$IP/extensions/SpamRegex/SpamRegex.php"); /// permette filtri di parole, sulla creazione dei contenuti delle pagine: per esempio solo sul titolo, ecc.
    //per questa, va creata anche una Tabella nel Database.
     
    ///-----------------------------------/////
     
    //////////////////////////
    ///Per gli INTERLINK:////
    ////////////////////////
     
    #require_once("$IP/extensions/Interwiki/SpecialInterwiki.php"); 
    ##require_once("$IP/extensions/Interwiki/Interwiki.php"); //Dalla vers 1.17, utilizzare questa al posto di quella sopra
    //Vi sevirà per le tabelle, anche se decidete di non utilizzare gl'interlink.
    $wgGroupPermissions['*']['interwiki'] = false;  //Chiude il permesso agli anonimi
    $wgGroupPermissions['sysop']['interwiki'] = true;  //Da il permesso di cambiare e aggiungere prefissi interwiki, ai Sysop
    $wgForceUIMsgAsContentMsg = array( 'mainpage', 'talk', 'user', 'portal-url' );  //Su quali gruppi di pagine far apparire i ptefissi laterali interlinguage 
    // (di default, sono escluse le pagine di discussioni -Namespace "talk"- e quelle degli Utenti, qui attivate invece.)
     
    //---//-------------///-----//--------///----------//
    ///////////////////////////////////////////////////
    /////Altre Estensioni con Funzioni Minori.////////
    /////////////////////////////////////////////////
     
    ///Per queste prime due estensioni, va creata prima una Tabella nel Database MySqL, per cui le diamo qui disattivate: 
    ///attivatele solo dopo, aver fatto la o le tabella/e. (Le istruzioni per crearla le trovate nella cartella specifica di quell'estensione, oppure su MediaWiki.org).
    ##require_once("{$IP}/extensions/AjaxShowEditors/Load.php"); //permette di visualizzare i contribuenti contemporanei in una stessa una pagina.
    ##require_once("{$IP}/extensions/WhosOnline/WhosOnline.php"); //permette di visualizzare chi è online.
     
    /// La prossima, permetterebbe aggiungere campi aggiuntivi a chi si registra, tipo telefono, indirizzo, ecc, ma la Guida online non spiega nulla in dettaglio; 
    //presuppone che chiunque la installi sia un esperto di .php e sappia come modificare il codice. La diamo quindi disattivata, anche se utile.
    ##require_once($IP."/extensions/customUserCreateForm/customUserCreateForm.php"); 
    #require_once("$IP/extensions/TransformChanges.php"); ///Cambia l'aspetto Grafico della pag. Speciale:UltimeModifiche; può piacere, come non piacere, per cui la diamo disattivata.
    #require_once("extensions/GoogleSiteSearch/GoogleSiteSearch.php"); ///Cambia il motore di ricerca interno di default, con quello di Google. Per attivarla, dovete anche sostituire in /include/ il file SpecialSearch.php con quello che vi diamo noi.
     
    /// cHATs /// Tutte le Versioni, sono state migliorate per questo progetto, adattandone meglio la Traduzione all'italiano.
     
    /// Questa è l'unica che funziona perfettamente, subito e gli anonimi non solo possono entrare, ma anche scegliersi il nickname e il Canale. Versione migliorata per questo progetto.
     
    #require_once("$IP/extensions/freenodeChat/freenodeChat.php");
     
    ///i seguenti parametri non è necessario che li attiviate; l'estensione funziona comunque.
    #$wgFreenodeChannel = '#NameOfChannel(s)';
    #$wgGroupPermissions['*']['freenode-chat'] = true;
    #$wgFreenodeChatChannel = '#nomeCanaleFreenode'; //qui, si può scegliere d'inserire un nuovo canale; infatti, di default, è impostato su #mediawiki18n dove generalmente si parla inglese.
     
    ///Questa, è più complicata settarla per via di Java (sia per chi la installa, che per chi la usa). Ma, se ci riuscite, è carina anch'essa.
    #require_once("$IP/extensions/irc/SpecialIrc.php"); ///funziona fin da subito; per cui, consigliamo di attivarla. Al contrario delle altre, visualizza comodamente diversi Canali a cui accedere. Chi la usa, però, deve conoscere un minimo di comunicazione IRC per digitare i comandi. Inoltre, chi non usa Java o ha problemi a settarlo, è tagliato fuori. A volte, gli IP anonimi hanno difficoltà a connettersi.
    #require_once( "{$IP}/extensions/DPLforum/DPLforum.php" ); ///Quest'altra, permette invece la visualizzazione delle Talk, come Forum. Va settata bene però.





    La Grafica

    Cambiare il Logo

    Il Logo, è quell'immagine che vedete in alto a sinistra del vostro wiki.

    Metodo veloce

    Sebbene esista un altro metodo (più "ufficiale") quello più veloce, che funziona con tutte le versioni del software e fin da subito per cambiare l'immagine del logo del vostro wiki, è di sostituire quella di default con un semplice copia, via ftp o dal vostro pannello di controllo del sito del vostro dominio.

    L'immagine che avete scelto deve avere una dimensione massima di 135 x 135 pixel, essere in formato .png, e va messa in questa directory:

    http://tuosito.com/wiki/skins/common/images/wiki.png
    

    dove "tuosito" è il nome del vostro dominio, e "wiki", la cartella dove di solito viene installato il software; ma il nome può variare, ovviamente, a seconda della cartella che avrete scelto e della root.


    Nota: Se avete intenzione di aggiornare successivamente il vostro wiki (installando gli aggiornamenti), questa immagine verrà ovviamente sovrascritta, e dovrete ripetere il procedimento. (Non così dovrebbe essere, invece, utilizzando il metodo "ufficiale" spiegato di seguito).


    Metodo per cambiare il Logo secondo le FAQ ufficiali

    Caricate via FTP l'immagine desiderata, png o .jpg, in una cartella del vostro sito dove avete installato il wiki; e poi, cercate la variabile $wgLogo (se non esiste, createla) nel file LocalSettings.php.


    Scrivete la root, ossia il percorso esatto dell'immagine caricata sul vostro server, dopo tale stringa:

    $wgLogo = '/photoname.jpg';
    

    in questo esempio, presupponiamo che abbiate installato il wiki direttamente sotto la root principale, come vi abbiamo consigliato all'inizio; e dunque l'immagine scritta così, verrà a trovarsi nella stessa cartella del LocalSettings.

    Per cui, insomma, è stato sufficiente mettere il nome dell'immagine, dopo il simbolo: /


    Tuttavia, se utilizzaste la funzione di "caricamento-immagini" del vostro wiki, o se sceglieste semplicemente un'altra cartella o avete installato in una cartella sotto la root, la variabile $wgLogo dovrà contenere il suo esatto percorso; una cosa tipo questa:

    $wgLogo = 'http://www.example.com/wiki/images/6/62/photoname.jpg';
    

    dove, ovviamente, tra i due simboli ' dovete scrivere il vostro percorso esatto della cartella in questione, in cui avrete uploadato l'immagine.


    In questo secondo esempio, abbiamo presupposto di aver utilizzato la funzione interna del wiki di caricamento immagini e anche di aver installato il wiki in una sottocartella; per cui come vedete, abbiamo messo la cartella "images" che è, appunto, quella che contiene tutte le immagini caricate, e la sottocartella "wiki", che è dove viene a uno in mente di solito d'installarsi questo software.





    Nota

    Nelle FAQ ufficiali, troverete la stringa $wgLogo = "{$wgScriptPath}/photoname.jpg"; che può darvi un po' di confusione, se non siete esperti; non è essenziale, per cui lasciatela perdere: è sufficiente, infatti, con che vi scriviate l'esatto percorso e punto, senza complicarvi la vita. Se tuttavia la voleste usare, essa funzionerà solamente nei casi (non contemplati in questo Manuale, perché non consigliato) in cui abbiate installiato il vostro wiki NON direttamente sotto la root (come vi abbiamo detto noi), ma in una sottocartella. In quel caso, la stringa richiamerà la "Path" ossia, il "nome della sottocartella", in cui lo avete appunto installato. Però ripetiamo che, anche in quel caso, è sufficiente con che vi scriviate il percorso intero e, dunque, tale metodo è superfluo, inutile e fuorviante per i più. Può esservi utile solamente in quei casi che abbiate intenzione supponiamo di spostare successivamente il wiki (su di un altro server) e non voleste ripetere la procedura del Logo. Ma, se non avete intenzione di spostarlo, lasciatela perdere. Tanto più che, se invece eseguite il primo metodo, non avrete nemmeno bisogno di cercare percorsi e root vari. Inoltre, a seconda della versione, tale stringa può variare, e diventare ad esempio così: $wgLogo= "$wgStylePath/common/images/LogoMain.png";. Quindi, ciò dà adito a numerosa confusione, in merito, e non è lo scopo di questo nostro Manuale, che invece vuole semplificarvi le cose su come installarvi MediaWiki.


    Per la Favicon

    Per la favicon, invece, basta creare un'immagine .ico con alcun programma, nominarla favicon.ico e metterla nella cartella principale, appena sotto la root di dominio pubblico dove viene visualizzato il vostro wiki (dove si trova il file LocalSettings.php per intenderci).





    Cambiare la Pagina Principale

    Cambiare il nome della "Pagina principale" e i "Messaggi di sistema"



    Modificare il nome della Home

    Può essere cambiato modificando il contenuto della pagina MediaWiki:Mainpage, in modo che punti ad un'altra pagina.

    Poi si cambia eventualmente anche la sezione 'Main Page' nella barra laterale, modificando: MediaWiki:Sidebar (vedi capitolo dedicato).

    FONTE
    http://www.mediawiki.org/wiki/Manual:FAQ/it#Come_cambio_la_pagina_principale.3F


    il File "MessagesIt.php"

    Nella root:

    /languages/messages

    dove avete installato il vostro wiki, troverete il file "MessagesIt.php" , al cui interno potrete cambiare alcune parole o messaggi di default, della vostra Home e del wiki in generale. Per esempio, potrete cambiare le parole "Contenuti soggetti a licenza d'uso".. che si trovano in basso vicino alla Licenza, con "Ove non diversamente specificato, i contenuti sono rilasciati sotto".. come abbiamo fatto noi di Naturpedia; ecc.


    Per trovare all'interno del documento quello che state cercando, potete comodamente usare la funzione "cerca" interna a qualsiasi visualizzatore di documenti, che si attiva semplicemente digitando i tasti "Ctrl" e T della vostra tastiera.


    Pagine Speciali MediaWiki

    Potete cambiare questi e molti altri messaggini e avvisi, anche solo andando sulle pagine speciali "Mediawiki" della vostra wiki. Le trovate andando in Pagine Speciali e poi sotto l'opzione lista di "tutte le Pagine", e poi ancora selezionando appunto il Namespace MediaWiki.

    Ecco alcuni esempi:



    Riferimenti



    Gli Stili

    Vai a: Gli Stil: esempi di Monobook modificato.

    Stili Mediawiki

    Copiatevi il contenuto delle seguenti pagine, nelle stesse vostre omonime del vostro wiki (se utilizzate una Skin diversa dalla monobook, cambiatene ovviamente il nome, adeguandolo alla nuova; e cambiate pure, all'interno, il nome di Naturpedia, con quello del vostro progetto)


    MediaWiki:Monobook.css
    MediaWiki:Monobook.js

    MediaWiki:Common.css
    MediaWiki:Common.js


    Il risultato sarà, che avrete le pagine di servizio colorate verdi e rosa, e altri "stili grafici" come li ha Wikipedia.


    (Consultate periodicamente le suddette pagine su Wikipedia e progetti associati, sono infatti in continua evoluzione: quelle che vi diamo qui noi, sono infatti soltanto una fra le tante possibili combinazioni che hanno adottato)


    Note
    1. se v'interessassero solo le pagine colorate, è sufficiente con che vi copiate unicamente il: monobook.css;
    2. se v'interessasse colorare solo le pagine di discussioni di arancione, è sufficiente invece il solo: monobook.js‎;
    3. ricordatevi di cambiare, all'interno del Monobook.js, il nome di "Naturpedia" con quello del vostro progetto Wiki;
    4. se v'interessano solo i collegamenti sulla Barra Laterale sinistra relativi a "Carica su Commons" e ai Bottoncini Pdf-online, andate invece qui:
    Vai a: Barra Laterale: Collegamento a "Carica su Commons".
    Vai a: Estensioni: Servizio esterno Pdf online.
    Vai a: Estensioni: Joliprint Code.


    Per approfondire, vedi Barra Laterale.


    Le Skin


    Aggiungere Mappa dei Visitatori

    Ecco il codice di uno dei tanti servizi online per vedere i vostri visitatori esterni, e il punto esatto dove inserirlo all'interno del monobook.php.


    Il Servizio esterno, fa riferimento a questo link:


    Code

    <!-- BEGIN feedjit-MAP Code -->
    <script src="http://feedjit.com/map/?bc=DCE0C5&amp;tc=303030&amp;brd1=CED6A3&amp;lnk=666666&amp;hc=BABD93&amp;dot=ff1111" type="text/javascript"></script>
    <!-- END feedjit-MAP Code -->
     
    <!-- BEGIN feedjit-visitors Code -->
    <script src="http://feedjit.com/serve/?bc=D4ED71&amp;tc=000000&amp;brd1=012B6B&amp;lnk=135D9E&amp;hc=FFFFFF&amp;srefs=1&amp;wne=2&amp;ww=160" type="text/javascript"></script>	
    <!-- END feedjit-visitors Code -->


    Si tratta di due codici, in realtà: uno è la mappa, il mappamondino che vi segnala coi punti rossi le persone sul globo che entrano al vostro wiki; l'altro, la lista in dettaglio dei visitanti e di quello che leggono. Potete appiccicarli assieme, oppure separarli, spostandoli ogniuno in un luogo diverso.


    Per farli apparire entrambi al fondo, in basso a sinistra, noi li abbiamo appiccicati appena prima di questa stringa

    <?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>

    all'interno del file monobook.php; subito dopo, l'ultimo </div>.




    MediaWiki:Monobook.css


    ====
    Codice da inserire nella pagina del vostro Wiki
    chiamata, o che chiamerete:
    MediaWiki:Monobook.css
    ====

    /*********************************
     *      Leggi le istruzioni      *
     *  nella pagina di discussione  *
     * prima di fare delle modifiche *
     *********************************/
     
    /*****************
     * Seconda parte *
     *****************/
     
    .ns-1 #content, .ns-1 #p-cactions li,
    .ns-1 #p-cactions li a { background:#ffe; }
    .ns-1 div.thumb { border-color:#ffe; }
     
    .ns-3 #content, .ns-3 #p-cactions li,
    .ns-3 #p-cactions li a { background:#ffe; }
    .ns-3 div.thumb { border-color:#ffe; }
     
    .ns-4 #content, .ns-4 #p-cactions li,
    .ns-4 #p-cactions li a { background:#efe; }
    .ns-4 div.thumb { border-color:#efe; }
     
    .ns-5 #content, .ns-5 #p-cactions li,
    .ns-5 #p-cactions li a { background:#ffe; }
    .ns-5 div.thumb { border-color:#ffe; }
     
    .ns-6 #content, .ns-6 #p-cactions li,
    .ns-6 #p-cactions li a { background:#fff; }
    .ns-6 div.thumb { border-color:#fff; }
     
    .ns-7 #content, .ns-7 #p-cactions li,
    .ns-7 #p-cactions li a { background:#ffe; }
    .ns-7 div.thumb { border-color:#ffe; }
     
    .ns-8 #content, .ns-8 #p-cactions li,
    .ns-8 #p-cactions li a { background:#f1f1f1; }
    .ns-8 div.thumb { border-color:#eef; }
     
    .ns-9 #content, .ns-9 #p-cactions li,
    .ns-9 #p-cactions li a { background:#ffe; }
    .ns-9 div.thumb { border-color:#ffe; }
     
    .ns-11 #content, .ns-11 #p-cactions li,
    .ns-11 #p-cactions li a { background:#ffe; }
    .ns-11 div.thumb { border-color:#ffe; }
     
    .ns-12 #content, .ns-12 #p-cactions li,
    .ns-12 #p-cactions li a { background:#fee; }
    .ns-12 div.thumb { border-color:#fee; }
     
    .ns-13 #content, .ns-13 #p-cactions li,
    .ns-13 #p-cactions li a { background:#ffe; }
    .ns-13 div.thumb { border-color:#fee; }
     
    .ns-15 #content, .ns-15 #p-cactions li,
    .ns-15 #p-cactions li a { background:#ffe; }
    .ns-15 div.thumb { border-color:#ffe; }
     
    .ns-100 #content, .ns-100 #p-cactions li,
    .ns-100 #p-cactions li a { background:#f0eeff; }
    .ns-100 div.thumb { border-color:#ffe; }
     
    .ns-101 #content, .ns-101 #p-cactions li,
    .ns-101 #p-cactions li a { background:#ffe; }
    .ns-101 div.thumb { border-color:#ffe; }
     
    .ns-102 #content, .ns-102 #p-cactions li,
    .ns-102 #p-cactions li a { background:#F5FAFA; }
    .ns-102 div.thumb { border-color:#ffe; }
     
    .ns-103 #content, .ns-103 #p-cactions li,
    .ns-103 #p-cactions li a { background:#ffe; }
    .ns-103 div.thumb { border-color:#ffe; }
     
    /* Stile per i titoli di livello 3 */
    h3 { 
       border-bottom: dotted 1px #DDDDDD;
    }
     
    /* Stile del box del sitenotice */
    #mw-dismissable-notice {
       background-color: transparent;
    }
     
    /* Per scrivere sotto il titolo di ogni pagina "Da Wikipedia, l'enciclopedia libera" */
    #siteSub {
        display: inline;
        font-size: 90%;
        font-weight: normal;
        font-style:italic;
        border-bottom: none;
    }
     
    #bodyContent #siteSub a {
        color: #000;
        text-decoration: none;
        background-color: transparent;
        background-image: none;
        padding-right: 0;
    }
     
    /********************************************
    /* Set di icone con effetto rollover (40px) *
     ********************************************/
     
    #HILL40_dado a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/4/44/HILL40_dado_ROLLOVER.png);}
    #HILL40_dado a:hover { background-position: 0 -40px;}
    #HILL40_dado a:active { background-position: 0 -40px;}
     
    #HILL40_famiglia a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/8/8f/HILL40_famiglia_ROLLOVER.png);}
    #HILL40_famiglia a:hover { background-position: 0 -40px;}
    #HILL40_famiglia a:active { background-position: 0 -40px;}
     
    #HILL40_indici a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/a/a3/HILL40_indici_ROLLOVER.png);}
    #HILL40_indici a:hover { background-position: 0 -40px;}
    #HILL40_indici a:active { background-position: 0 -40px;}
     
    #HILL40_lente a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/4/44/HILL40_lente_ROLLOVER.png);}
    #HILL40_lente a:hover { background-position: 0 -40px;}
    #HILL40_lente a:active { background-position: 0 -40px;}
     
    #HILL40_libro a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/c/c4/HILL40_libro_ROLLOVER.png);}
    #HILL40_libro a:hover { background-position: 0 -40px;}
    #HILL40_libro a:active { background-position: 0 -40px;}
     
    #HILL40_meccanismo a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/a/a5/HILL40_meccanismo_ROLLOVER.png);}
    #HILL40_meccanismo a:hover { background-position: 0 -40px;}
    #HILL40_meccanismo a:active { background-position: 0 -40px;}
     
    #HILL40_molecola a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/a/a3/HILL40_molecola_ROLLOVER.png);}
    #HILL40_molecola a:hover { background-position: 0 -40px;}
    #HILL40_molecola a:active { background-position: 0 -40px;}
     
    #HILL40_mondo a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/4/40/HILL40_mondo_ROLLOVER.png);}
    #HILL40_mondo a:hover { background-position: 0 -40px;}
    #HILL40_mondo a:active { background-position: 0 -40px;}
     
    #HILL40_orologio a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/5/5b/HILL40_orologio_ROLLOVER.png);}
    #HILL40_orologio a:hover { background-position: 0 -40px;}
    #HILL40_orologio a:active { background-position: 0 -40px;}
     
    #HILL40_pigreco a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/a/a3/HILL40_pigreco_ROLLOVER.png);}
    #HILL40_pigreco a:hover { background-position: 0 -40px;}
    #HILL40_pigreco a:active { background-position: 0 -40px;}
     
    #HILL40_puzzle a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/a/aa/HILL40_puzzle_ROLLOVER.png);}
    #HILL40_puzzle a:hover { background-position: 0 -40px;}
    #HILL40_puzzle a:active { background-position: 0 -40px;}
     
    #HILL40_tavolozza a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/7/74/HILL40_tavolozza_ROLLOVER.png);}
    #HILL40_tavolozza a:hover { background-position: 0 -40px;}
    #HILL40_tavolozza a:active { background-position: 0 -40px;}
     
    #HILL40_w a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/it/c/c8/HILL40_w_ROLLOVER.png);}
    #HILL40_w a:hover { background-position: 0 -40px;}
    #HILL40_w a:active { background-position: 0 -40px;}
     
    #HILL40_stella a { display:block; height:40px; width:40px; background: url(http://upload.wikimedia.org/wikipedia/commons/6/63/HILL_stella_ROLLOVER.png);}
    #HILL40_stella a:hover { background-position: 0 -40px;}
    #HILL40_stella a:active { background-position: 0 -40px;}
     
     
    /**********************
    /* Immagini di sfondo *
     **********************/
     
    /* Visualizza una lente d'ingrandimento su sfondo viola chiaro */
    #HP_search { background-image: url(http://upload.wikimedia.org/wikipedia/it/3/3e/HP_search.png);}
     
    /* Visualizza una lente d'ingrandimento su sfondo marrone chiaro (#FFFBF7) */
    #BG_zoom { background-image: url(http://upload.wikimedia.org/wikipedia/commons/8/8c/BGzoom.png);}
     
    /* Visualizza il logo di Wikipedia su sfondo marrone chiaro (#FFFBF7) */
    #BG_wiki { background-image: url(http://upload.wikimedia.org/wikipedia/commons/6/6a/BGwikipedia_logo.png);}
     
    /* Visualizza una sfumatura marrone chiaro-bianco per aree di grandi dimensioni */
    #BG_sfum { background-image: url(http://upload.wikimedia.org/wikipedia/commons/a/a4/BG_sfum.jpg);}
     
    /* Visualizza una sfumatura marrone chiaro-trasparente*/
    .Sfum { background-image: url(http://upload.wikimedia.org/wikipedia/it/6/62/Sfum.png);}
     
    /* Visualizza una sfumatura marrone chiaro-bianco per browser Internet Explorer*/
    .Sfum2 { background-image: url(http://upload.wikimedia.org/wikipedia/commons/d/d0/Sfum.jpg);}
     
    /* Visualizza una sfumatura verticale azzurro-bianco */
    .BG_azzurro { background-image: url(http://upload.wikimedia.org/wikipedia/commons/2/27/BG_azzurro.jpg);}
     
    /* Visualizza una sfumatura verticale azzurro-bianco (E0F0FF-FFFFFF) */
    .E0F0FF-FFFFFF { background-image: url(http://upload.wikimedia.org/wikipedia/commons/b/b1/E0F0FF-FFFFFF.jpg); background-position:top; background-repeat:repeat-x;}
     
    /* Visualizza l'icona del portale comunità su sfondo bianco */
    .BG_comunità { background-image: url(http://upload.wikimedia.org/wikipedia/commons/f/f9/BG_comunit%C3%A0.jpg);}
     
    .BGblue1 { background-image: url("http://upload.wikimedia.org/wikipedia/commons/3/3e/BGblue1.jpg"); background-position:top; background-repeat:repeat-x;}
     
    .BGorange1 { background-image: url(http://upload.wikimedia.org/wikipedia/commons/0/02/BGorange1.jpg); background-position: top; background-repeat:repeat-x;}
     
    .BGorange2 { background-image: url(http://upload.wikimedia.org/wikipedia/commons/a/a7/BGorange2.jpg); background-position: top; background-repeat:repeat-x;}
     
    /* Visualizza una sfumatura su sfondo qualsiasi (solo firefox/mozilla) */
    .BGalpha { background-image: url(http://upload.wikimedia.org/wikipedia/it/5/55/BGalpha.png); background-position: top; background-repeat:repeat-x;}
     
    .PPcornerTop { background-image: url(http://upload.wikimedia.org/wikipedia/it/e/e4/PPcornerTop2.gif); background-position:top left; background-repeat:no-repeat; width:10px; height:10px;}
     
    .PPcornerBottom { background-image: url(http://upload.wikimedia.org/wikipedia/it/c/c1/PPcornerBottom.gif); background-position:bottom left; background-repeat:no-repeat; width:10px; height:10px;}
     
    .PPradiusTop {background-image: url(http://upload.wikimedia.org/wikipedia/it/7/70/PPradiusTop.gif);    
       background-position:top left; 
       background-repeat:no-repeat; 
       width:13px; 
       height:13px;
    }
     
    .PPradiusBottom {background-image: url(http://upload.wikimedia.org/wikipedia/it/7/70/PPradiusBottom.gif); 
       background-position:bottom left; 
       background-repeat:no-repeat; 
       width:13px; 
       height:13px;
    }
     
    .B-topright { background-image: url(http://upload.wikimedia.org/wikipedia/it/a/a8/B_topright.png); background-repeat:no-repeat; background-position: top right; 
       width: 13px; 
       height: 14px;
    }
     
    .B-topleft { background-image: url(http://upload.wikimedia.org/wikipedia/it/e/ea/B_topleft.png); background-repeat:no-repeat; background-position: top left; 
       width: 13px; 
       height: 14px;
    }
     
    .B-bottomright { background-image: url(http://upload.wikimedia.org/wikipedia/it/a/a9/B_bottomright.png); background-repeat:no-repeat; background-position: bottom right;
       width: 13px; 
       height: 14px;
    }
     
    .B-bottomleft { background-image: url(http://upload.wikimedia.org/wikipedia/it/f/f3/B_bottomleft.png); background-repeat:no-repeat; background-position: bottom left; 
       width: 13px; 
       height: 14px;
    }
     
    .obliquo { background-image: url(http://upload.wikimedia.org/wikipedia/it/7/76/Obliquo.gif); background-repeat:repeat;}
     
     
    /* Fix alla pagina principale */
    .interwiki-completelist {
        font-weight: bold;
    }
     
    /*
     Segnala con una stellina, accanto all'interwiki corrispondente, una voce da vetrina in un'altra lingua
    */
    .portlet li {
     list-style-image: url(http://upload.wikimedia.org/wikipedia/commons/1/18/Monobook-bullet.png);
    }
    li.FA {
      list-style-image: url("http://upload.wikimedia.org/wikipedia/commons/4/4c/Icone_AdQ.png");
    }
     
    /*
     Permette di scrivere le coordinate geografiche in alto a destra
    */
    #coordinates {  
    position:absolute;
    z-index:1;
    border:none;
    background:none;
    right:30px;
    top:3.7em;
    float:right;
    margin:0.0em;
    padding:0.0em;
    line-height:1.5em;
    text-align:right;
    text-indent:0;
    font-size:85%;
    text-transform:none;
    white-space:nowrap;
    }
     
     
    /* Stylesheet for the SelectCategory extension, an extension of the
     * edit box of MediaWiki to provide an easy way to add category links
     * to a specific page.
     *
     * @package MediaWiki
     * @subpackage Extensions
     * @author Leon Weber <leon@leonweber.de> & Manuel Schneider <manuel.schneider@wikimedia.ch>
     * @copyright © 2006 by Leon Weber & Manuel Schneider
     * @licence GNU General Public Licence 2.0 or later
    */
     
    #SelectCategoryBox {
    	width: 100%;
    	padding: .1em;
    }
     
    ul#SelectCategoryList {
      list-style-image: none;
      list-style-type: none;
    }





    MediaWiki:Monobook.js


    ====
    Codice da inserire nella pagina del vostro Wiki
    chiamata, o che chiamerete:
    MediaWiki:Monobook.js
    ====

    /* tooltips and access keys */
    ta = new Object();
    ta['pt-userpage'] = new Array('.','La mia pagina utente'); 
    ta['pt-anonuserpage'] = new Array('.','La pagina utente dell\'ip che stai usando'); 
    ta['pt-mytalk'] = new Array('n','Le mie discussioni'); 
    ta['pt-anontalk'] = new Array('n','Discussioni riguardo le modifiche fatte da questo ip'); 
    ta['pt-preferences'] = new Array('','Le mie preferenze'); 
    ta['pt-watchlist'] = new Array('l','La lista delle pagine che stai tenendo sotto sorveglianza.'); 
    ta['pt-mycontris'] = new Array('y','La lista dei miei contributi'); 
    ta['pt-login'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); 
    ta['pt-anonlogin'] = new Array('o','Ti consigliamo di registrarti, ma non è obbligatorio.'); 
    ta['pt-logout'] = new Array('o','Log out (esci)'); 
    ta['ca-talk'] = new Array('t','Vedi le discussioni relative alla voce'); 
    ta['ca-edit'] = new Array('e','Puoi modificare questa pagina. Per favore usa il bottone di anteprima prima di salvare.'); 
    ta['ca-addsection'] = new Array('+','Aggiungi un commento a questa discussione.'); 
    ta['ca-viewsource'] = new Array('e','Questa pagina è protetta, ma puoi vedere il suo codice sorgente.'); 
    ta['ca-history'] = new Array('h','Versioni precedenti di questa pagina.'); 
    ta['ca-protect'] = new Array('=','Proteggi questa pagina'); 
    ta['ca-delete'] = new Array('d','Cancella questa pagina'); 
    ta['ca-undelete'] = new Array('d','Ripristina la pagina com\'era prima della cancellazione'); 
    ta['ca-move'] = new Array('m','Sposta questa pagina ad un altro titolo'); 
    ta['ca-nomove'] = new Array('','Non hai il permesso di spostare questa pagina'); 
    ta['ca-watch'] = new Array('w','Aggiungi questa pagina all\'elenco delle pagine che tieni sotto sorveglianza'); 
    ta['ca-unwatch'] = new Array('w','Togli questa pagina dall\'elenco delle pagine che tieni sotto sorveglianza'); 
    ta['search'] = new Array('f','Cerca questa wiki'); 
    ta['p-logo'] = new Array('','Pagina Principale'); 
    ta['n-mainpage'] = new Array('z','Visita la Pagina principale'); 
    ta['n-portal'] = new Array('','Descrizione del progetto, cosa puoi fare, e dove trovare le cose'); 
    ta['n-sitesupport'] = new Array('','Aiutaci'); 
    ta['n-recentchanges'] = new Array('r','La lista delle ultime modifiche a questa wiki.'); 
    ta['n-randompage'] = new Array('x','Mostra una pagina a caso'); 
    ta['n-help'] = new Array('a','Pagine di aiuto, manuale, domande frequenti'); 
    ta['n-villagepump'] = new Array('b','Per discutere di Naturpedia'); 
    ta['n-naturpediano'] = new Array('','Per vedere gli ultimi avvenimenti di Naturpedia');
    ta['n-contact'] = new Array('','I contatti di Naturpedia e Wikimedia Italia'); 
    ta['n-vetrina'] = new Array('v','Le migliori voci di Naturpedia'); 
    ta['n-currentevents'] = new Array('','Eventi di attualità'); 
    ta['t-whatlinkshere'] = new Array('j','Lista di tutte le pagine che portano a questa'); 
    ta['t-recentchangeslinked'] = new Array('k','Lista delle ultime modifiche alle pagine linkate da questa.'); 
    ta['feed-rss'] = new Array('','feed RSS per questa pagina'); 
    ta['feed-atom'] = new Array('','feed Atom per questa pagina'); 
    ta['t-contributions'] = new Array('','Lista dei contributi di questo utente'); 
    ta['t-emailuser'] = new Array('','Manda un\'E.mail a questo utente'); 
    ta['t-upload'] = new Array('u','Carica immagini o file multimediali su Naturpedia'); 
    ta['t-specialpages'] = new Array('q','Lista di tutte le pagine speciali'); 
    ta['ca-nstab-main'] = new Array('c','Vedi la voce relativa'); 
    ta['ca-nstab-user'] = new Array('c','Vedi la pagina utente'); 
    ta['ca-nstab-media'] = new Array('c','Vedi la pagina del file multimediale'); 
    ta['ca-nstab-special'] = new Array('','Questa è una pagina speciale, non può essere modificata.'); 
    ta['ca-nstab-wp'] = new Array('','Vedi la pagina del progetto'); 
    ta['ca-nstab-image'] = new Array('c','Vedi la pagina dell\'immagine'); 
    ta['ca-nstab-mediawiki'] = new Array('c','Vedi il messaggio di sistema'); 
    ta['ca-nstab-template'] = new Array('c','Vedi il template'); 
    ta['ca-nstab-help'] = new Array('c','Vedi la pagina di aiuto'); 
    ta['ca-nstab-category'] = new Array('c','Vedi la pagina della categoria');
    ta['ca-nstab-portal'] = new Array('c','Vedi il portale');
     
     
     
    /*** Collegamento diretto alla pagina di upload di Commons nel menu di sinistra, da WP:PT */
    function linkUploadToCommons()
    {
        if (document.getElementById("carrega-para-commons")) return;
        var li_carrega = document.getElementById("t-upload");
        if (!li_carrega) return;
        var afegit = li_carrega.nextSibling;
        var ul_eines = li_carrega.parentNode;
        var li = document.createElement("li");
        li.id = "carrega-para-commons";
        li.innerHTML = '<a href="http://commons.wikimedia.org/wiki/Commons:Upload/it">Carica su Commons</a>';
        <!--li.innerHTML = '<a href="http://naturpedia.org/index.php?title=Speciale:MultipleUpload">Carica MultiUpload</a>';-->
        if (afegit) ul_eines.insertBefore(li, afegit);
        else ul_eines.appendChild(li);
    }
     
    addLoadEvent(linkUploadToCommons);
     
    /*** Fine del collegamento diretto alla pagina di upload di Commons */
     
     
     
    function LinkAdQ() 
    {
        if ( document.getElementById( "p-lang" ) ) {
            var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
     
            for ( var i = 0; i < InterwikiLinks.length; i++ ) {
                if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
                    InterwikiLinks[i].className += " FA"
                    InterwikiLinks[i].title = "La voce è in vetrina in questa lingua.";
                }
            }
        }
    }
     
    addLoadEvent( LinkAdQ );
     
    //============================================================
    // Menu caratteri speciali
    //============================================================
     
    /**
     * Aggiunge il menu a tendina per selezionare un sottoinsieme di caratteri speciali
     * Attenzione:        l'ordine della lista deve corrispondere a quello di MediaWiki:Edittools !
     */
    function aggiungiMenuSubsetCaratteri() {
      var specialchars = document.getElementById('specialchars');
     
      if (specialchars) {
        var menu = "<select style=\"display:inline\" onChange=\"scegliSubsetCaratteri(selectedIndex)\">";
        menu += "<option>Latino esteso</option>";
        menu += "<option>Wiki</option>";
        menu += "<option>Greco antico</option>";
        menu += "<option>Greco moderno</option>";
        menu += "<option>Cirillico</option>";
        menu += "<option>Arabo</option>";
        menu += "<option>Ebraico e yiddish</option>";
        menu += "<option>Armeno</option>";
        menu += "<option>Geroglifico</option>";
        menu += "<option>Vietnamita</option>";
        menu += "<option>IPA</option>";
        menu += "<option>Matematica</option>";
        menu += "</select>";
        specialchars.innerHTML = menu + specialchars.innerHTML;
     
        /* default subset - try to use a cookie some day */
        scegliSubsetCaratteri(0);
      }
    }
     
    /* select subsection of special characters */
    function scegliSubsetCaratteri(s) {
      var l = document.getElementById('specialchars').getElementsByTagName('p');
      for (var i = 0; i < l.length ; i++) {
        l[i].style.display = i == s ? 'inline' : 'none';
        l[i].style.visibility = i == s ? 'visible' : 'hidden';
      }
    }
     
    addLoadEvent(aggiungiMenuSubsetCaratteri);
     
    // END Menu caratteri speciali
     
    var mpTitle = "Pagina principale";
    var isMainPage = (wgPageName == "Pagina_principale");
    var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));
     
    if (isMainPage && !isDiff) 
    {
    document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>');
     
    var mpSmallEnabled;
    var mpMinWidth = 700;
     
    function mainPageTransform()
    {
           if ((isMainPage || /[\/=:]Pagina_principale/.test(document.location)) && document.getElementById('ca-nstab-main'))     
           document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Pagina principale';
    	var mpContentEl = document.getElementById("bodyContent");
    	var mpBrowseEl = document.getElementById("EnWpMpBrowse");
    	var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
    	var mpMarginEl = document.getElementById("EnWpMpMargin");
    	var mpEl = document.getElementById("EnWpMainPage");
     
    	if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl)
    		return;
     
    	if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth)
    	{
    		mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
    		mpBrowseEl.className = "EnWpMpBrowseBottom";
    		mpMarginEl.style.marginRight = 0;
    		mpSmallEnabled = true;
    	}
    	else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth)
    	{
    		mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
    		mpBrowseEl.className = "EnWpMpBrowseRight";
    		mpMarginEl.style.marginRight = "13.8em";
    		mpSmallEnabled = false;
    	}
    }
     
    var onloadFuncts = [ mainPageTransform ];
     
    if (window.addEventListener) 
      window.addEventListener("resize", mainPageTransform, false);
    else if (window.attachEvent) 
      window.attachEvent("onresize", mainPageTransform);
     
    }
     
    /* aggiunge un pulsante per i redirect nella toolbar della finestra di edit */
    if (mwCustomEditButtons) {
      mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
        "speedTip": "Redirect",
        "tagOpen": "#REDIRECT [[",
        "tagClose": "]]",
        "sampleText": "Inserisci nome della voce"};
    };
     
     /** "Technical restrictions" title fix *****************************************
      *
      *  Description:
      *  Maintainers: [[User:Interiot]], [[User:Mets501]]
      *  copiato da [[:en:MediaWiki:Common.js]]
      */
     
     // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
     //	(for instance [[iPod]]'s title is updated.  <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki>
     //
     // The function looks for a banner like this: <nowiki>
     // <div id="RealTitleBanner">    <!-- div that gets hidden -->
     //   <span id="RealTitle">title</span>
     // </div>
     // </nowiki>An element with id=DisableRealTitle disables the function.
     var disableRealTitle = 0;		// users can disable this by making this true from their monobook.js
     function correctTitle() {
     	try {
     		var realTitleBanner = document.getElementById("RealTitleBanner");
     		if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
     			var realTitle = document.getElementById("RealTitle");
     			if (realTitle) {
     				var realTitleHTML = realTitle.innerHTML;
     				realTitleText = pickUpText(realTitle);
     
     				var isPasteable = 0;
     				//var containsHTML = /</.test(realTitleHTML);	// contains ANY HTML
     				var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big|a)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
     					// in più, aggiunto ''a'' per mantenere funzionanti alcuni usi del vecchio Titolo errato - non è detto però che sia sempre voluto
     				// questo codice era in en.wiki, e se ho ben capito serviva per controllare che il nome nuovo fosse abbastanza simile all'originale, ma non è quello che vogliamo su it.wiki
     				// // calculate whether the title is pasteable
     				// var verifyTitle = realTitleText.replace(/^ +/, "");		// trim left spaces
     				// verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
     
     				// questo codice era in en.wiki, e aggiunge il prefisso del namespace se non presente, ma su it.wiki ci si aspetta che ciò non avvenga
     				// // if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
     				// if (wgNamespaceNumber != 0) {
     				// 	if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
     				// 		verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
     				// 	} else {
     				// 		realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
     				// 		realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
     				// 	}
     				// }
     
     				// come sopra, faceva controlli sul titolo
     				// // verify whether wgTitle matches
     				// verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, "");		// trim left and right spaces
     				// verifyTitle = verifyTitle.replace(/_/g, " ");		// underscores to spaces
     				// verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
     				// isPasteable = (verifyTitle == wgTitle);
     
     				var h1 = document.getElementsByTagName("h1")[0];
     				if (h1) {     // tolto il controllo isPasteable
     					h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
     					// if (!containsTooMuchHTML) // ancora, adattamento per it.wiki
     						realTitleBanner.style.display = "none";
     				}
     				document.title = realTitleText + " - Naturpedia";
     			}
     		}
     	} catch (e) {
     		/* Something went wrong. */
     	}
     }
     addOnloadHook(correctTitle);
     
     // similar to innerHTML, but only returns the text portions of the insides, excludes HTML
     function pickUpText(aParentElement) {
       var str = "";
     
       function pickUpTextInternal(aElement) {
         var child = aElement.firstChild;
         while (child) {
           if (child.nodeType == 1)		// ELEMENT_NODE 
             pickUpTextInternal(child);
           else if (child.nodeType == 3)	// TEXT_NODE
             str += child.nodeValue;
     
           child = child.nextSibling;
         }
       }
     
       pickUpTextInternal(aParentElement);
     
       return str;
     }
     
    /** Fix al layout della Pagina principale *********************************************************
      *
      *  Descrizione:        Alcuni al layout, fra cui un link alla lista completa di tutte
      *                      le Naturpedia in tutte le lingue disponibili.
      *  Da un codice di:    [[en:User:AzaToth]], [[en:User:R. Koot]]
      *  Sistemato da:       [[n:Utente:Tooby]] <--- liberi di giustiziarlo
      */
     function mainPageRenameNamespaceTab() {
         try {
             var Node = document.getElementById( 'ca-nstab-main' ).firstChild;
             if ( Node.textContent ) {      // Per DOM Level 3
                 Node.textContent = 'Pagina principale';
             } else if ( Node.innerText ) { // IE doesn't handle .textContent
                 Node.innerText = 'Pagina principale';
             } else {                       // Fallback
                 Node.replaceChild( Node.firstChild, document.createTextNode( 'Pagina principale' ) ); 
             }
         } catch(e) {
             // bailing out!
         }
     }
     
      function mainPageAppendCompleteListLink() {
         try {
             var node = document.getElementById( "p-lang" )
                                .getElementsByTagName('div')[0]
                                .getElementsByTagName('ul')[0];
     
             var aNode = document.createElement( 'a' );
             var liNode = document.createElement( 'li' );
     
             aNode.appendChild( document.createTextNode( 'Lista completa' ) );
             aNode.setAttribute( 'href' , 'http://meta.wikimedia.org/wiki/Lista_di_Wikipedie' );
             liNode.appendChild( aNode );
             liNode.className = 'interwiki-completelist';
             node.appendChild( liNode );
          } catch(e) {
            // lets just ignore what's happened
            return;
         }
     }
     
     if ( wgTitle == 'Pagina principale' && ( wgNamespaceNumber == 0 || wgNamespaceNumber == 1 ) ) {
            addOnloadHook( mainPageRenameNamespaceTab );
     }
     
     if ( wgTitle == 'Pagina principale' && wgNamespaceNumber == 0 ) {
            addOnloadHook( mainPageAppendCompleteListLink );
     }
     
    // Lista di voci trasferite ad altri progetti - caricato solo se si visualizza una pagina nel namespace principale
    if (wgNamespaceNumber == 0 && wgTitle != 'Pagina principale' && wgArticleId == 0)
        document.write('<script type="text/javascript" src="' 
                 + 'http://it.wikipedia.org/w/index.php?title=Wikipedia:Proposte di trasferimento/transferlist.js' 
                 + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
     
    function show_transfertext()
    {
        if (wgNamespaceNumber != 0 || (wgNamespaceNumber == 0 && wgTitle == 'Pagina principale') || wgArticleId != 0)
            return;
     
     setup_transferlist();
     var i;
     for(i = 0; i <= transferlist.length; i+=4)
     {
      if (document.title == 'Modifica di ' + transferlist[i] + ' - Naturpedia' || document.title == transferlist[i] + ' - Naturpedia')
      {
       var itm = document.getElementById('BoxTrasferimento');
       if (itm == null) return;
       txt = itm.innerHTML;
       if (transferlist[i+1] == 'b' || transferlist[i+1] == 'wb')
        transferlist[i+1] = 'http://it.wikibooks.org/wiki/';
       if (transferlist[i+1] == 's' || transferlist[i+1] == 'ws')
        transferlist[i+1] = 'http://it.wikisource.org/wiki/';
       if (transferlist[i+1] == 'q' || transferlist[i+1] == 'wq')
        transferlist[i+1] = 'http://it.wikiquote.org/wiki/';
       if (transferlist[i+1] == 'n' || transferlist[i+1] == 'wn')
        transferlist[i+1] = 'http://it.wikinews.org/wiki/';
       if (transferlist[i+1] == 'wikt')
        transferlist[i+1] = 'http://it.wiktionary.org/wiki/';
       if (transferlist[i+1] == 'v' || transferlist[i+1] == 'wv')
        transferlist[i+1] = 'http://it.wikiversity.org/wiki/';
       if (transferlist[i+1] == 'wikispecies' || transferlist[i+1] == 'wsp')
        transferlist[i+1] = 'http://species.wikimedia.org/wiki/';
       if (transferlist[i+1] == 'm' || transferlist[i+1] == 'meta')
        transferlist[i+1] = 'http://meta.wikimedia.org/wiki/';
       if (transferlist[i+1] == 'commons' || transferlist[i+1] == 'com')
        transferlist[i+1] = 'http://commons.wikimedia.org/wiki/';
       if (transferlist[i+3] == "")
        transferlist[i+3] = transferlist[i];
       txt = '<div class="AvvisoTrasferito">Una vecchia versione di questa pagina è stata <b>trasferita</b> ' +
             '<a href=' + transferlist[i+1] + transferlist[i+3].replace(/ /g, '_') + '>all\'interno di un altro progetto Wikimedia</a>' +
             (transferlist[i+2].length > 1 ? ' perché: <i>' + transferlist[i+2] + '</i>' : "") + //solo se la motivazione è fornita
             '. Se ritieni la voce enciclopedica puoi riscriverla, controllando che siano stati eliminati i motivi che ne hanno comportato ' +
             'la cancellazione.</div>' + txt;
       itm.innerHTML = txt;
       break;
      }
     }
    }
     
    addLoadEvent(show_transfertext);
     
    //****************** WIKI MINI ATLAS ******************
    document.write('<script type="text/javascript" src="' 
         + 'http://meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js' 
         + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
     
    /*
    Correzione della posizione del link [modifica] delle sezioni.
     
    Copyright 2006, Marc Mongenet
     
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.
     
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
     
    See http://www.gnu.org/licenses/gpl.html
     
    The function looks for <span class="editsection">, and move them
    at the end of their parent and display them inline in small font.
    var oldEditsectionLinks=true disables the function.
    */
     
    setModifySectionStyle = function()
    {
    try {
            if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
            var spans = document.getElementsByTagName("span");
            for (var s = 0; s < spans.length; ++s) {
                    var span = spans[s];
                    if (span.className == "editsection") {
                            span.style.fontSize = "x-small";
                            span.style.fontWeight = "normal";
                            span.style.cssFloat = span.style.styleFloat = "none";
                            span.parentNode.appendChild(document.createTextNode(" "));
                            span.parentNode.appendChild(span);
                    }
            }
    } catch (e) { /* something went wrong */ }
    }
    addOnloadHook(setModifySectionStyle);
     
     
    /*** CODICE PER IL TEMPLATE:GALLERIA ***/
    function toggleImage(group, remindex, shwindex) {
      document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
      document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
    }
    function ImageGroup(){
    	if (document.URL.match(/printable/g)) return;
    	var bc=document.getElementById("bodyContent");
    	var divs=bc.getElementsByTagName("div");
    	var i = 0, j = 0;
    	var units, search;
    	var currentimage;
    	var UnitNode;
    	for (i = 0; i < divs.length ; i++) {
    		if (divs[i].className != "ImageGroup") continue;
    		UnitNode=undefined;
    		search=divs[i].getElementsByTagName("div");
    		for (j = 0; j < search.length ; j++) {
    			if (search[j].className != "ImageGroupUnits") continue;
    			UnitNode=search[j];
    			break;
    		}
    		if (UnitNode==undefined) continue;
    		units=Array();
    		for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
    			var temp = UnitNode.childNodes[j];
    			if (temp.className=="center") units.push(temp);
    		}
    		for (j = 0 ; j < units.length ; j++) {
    			currentimage=units[j];
    			currentimage.id="ImageGroupsGr"+i+"Im"+j;
    			var imghead = document.createElement("div");
    			var leftlink;
    			var rightlink;
    			if (j != 0) {
    				leftlink = document.createElement("a");
    				leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
    				leftlink.innerHTML="◀";
    			} else {
    				leftlink = document.createElement("span");
    				leftlink.innerHTML="&nbsp;";
    			}
    			if (j != units.length - 1) {
    				rightlink = document.createElement("a");
    				rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
    				rightlink.innerHTML="▶";
    			} else {
    				rightlink = document.createElement("span");
    				rightlink.innerHTML="&nbsp;";
    			}
    			var comment = document.createElement("tt");
    			comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
    			with(imghead) {
    				style.fontSize="110%";
    				style.fontweight="bold";
    				appendChild(leftlink);
    				appendChild(comment);
    				appendChild(rightlink);
    			}
    			currentimage.insertBefore(imghead,currentimage.childNodes[0]);
    			if (j != 0) currentimage.style.display="none";
    		}
    	}
    }
    addOnloadHook(ImageGroup);
     
    // Toglie "Soggetto/Intestazione" nelle creazioni delle discussioni al Bar
    if (wgNamespaceNumber == 4 &&
        wgPageName.indexOf("Naturpedia:Bar/") == 0 &&
        wgAction == "edit" &&
        document.URL.indexOf("&section=new&preload=") != -1)
    addLoadEvent ( function ()
    {
      document.getElementById('wpSummaryLabel').style.display="none";
      document.getElementById('wpSummary').style.display="none";
    });
     
     
    // INIZIO Collegamenti Interprogetto (codice adattato da de:wikt:Mediawiki:monobook.js)
     
    document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
     function iProject() {
      if (document.getElementById("interProject")) {
       var iProject = document.getElementById("interProject").innerHTML;
       var interProject = document.createElement("div");
       interProject.style.marginTop = "0.7em";
       interProject.innerHTML = '<h5>altri progetti wiki<\/h5><div class="pBody">'+iProject+'<\/div>';
       document.getElementById("p-tb").appendChild(interProject);
      }
     }
     hookEvent("load", iProject);
     
    // FINE Collegamenti Interprogetto





    MediaWiki:Common.css


    ====
    Codice da inserire nella pagina del vostro Wiki
    chiamata, o che chiamerete:
    MediaWiki:Common.css
    ====

    /* Gli stili CSS inseriti qui si applicano a tutte le skin *//*
     * common.css
     * This file contains CSS settings common to Wikistandard, Nostalgia and CologneBlue
     * NOTA PER GLI ADMIN: Si prega di non modificare senza preventiva discussione!
     */
    /*<pre><nowiki>*/
    #footer { clear: both }
    /* images */
    div.floatright { float: right; margin: 0em 0.5em 0em 0.5em; }
    div.floatright p { font-style: italic; }
    div.floatleft { float: left; margin: 0em 0.5em 0em 0.5em; }
    div.floatleft p { font-style: italic; }
     
    .workflow {
    	width: 100px;
    	float: left;
    	border: 2px solid #ccc;
    	padding: 0;
    	margin: 0;
    }
    .workflow table { width: 100% }
    .workflow td { text-align: center }
    .workflow-state #content {
    	background: white;
    	width: 100px;
    	height: 80px;
    	border-bottom: 2px solid #ccc;
    	text-align: center;
    	vertical-align: center;
    	overflow: hidden;
    }
    .workflow-state #left,.workflow-state #right {
    	width: 20px;
    	height: 20px;
    	background: #bbb;
    	text-align: center;
    }
    .workflow-state #title {
    	background: #ccc;
    	text-align: center;
    }
    .workflow-state .menu a {
    	font-size: 10pt;
    	font-weight: bold;
    	color: white;
    	margin: 0;
    }
    #catlinks a, #catlinks b { padding: 0 5px; }
    #catlinks a.current {
    	background-color: #3D5270;
    	color: white;
    }
     
     
    /* Print-specific things to hide */
    .printfooter {
            display: none;
    }
     
    /* table standards */
    table {
        background-color:#FFFFFF;   /* bianco opaco, per evitare sovrapp. con le linee dei titoli di sezione */
    }
     
    table.rimage {
            float:right;
            margin-left:1em;
            margin-bottom:1em;
            text-align:center;
            font-size:smaller;
    }
     
    /* thumbnails */
    div.thumb {
        margin: 0.5em;
        text-align: center;
        width: auto;
    }
    div.thumb div {
        border: 1px solid #888888;
        background-color: #f7f7f7;
        padding: 2px;
        font-size: 95%;
        text-align: center;
        overflow: hidden;
    }
    div.thumb div * {
        border: none;
        background: none;
    }
    div.thumb img {
        border:1px solid #888888;
        margin-bottom:3px;
        background:#FFFFFF;
    }
    div.thumbcaption,
    div.thumbcaption * {
        border: none !important;
        background: none !important;
    }
    div.thumbcaption {
        padding: 0.2em 0 0.2em 0 !important;
        text-align: left !important;
    }
    div.tright {
        float: right;
        margin-left:0.5em;
    }
    div.tleft {
        float: left;
        margin-right:0.5em;
    }
     
    /* Page history styling */
    /* the auto-generated edit comments */
    .autocomment { color: #4b4b4b; }
    #pagehistory span.user {
        margin-left: 1.4em;
        margin-right: 0.4em;
    }
    #pagehistory span.minor { font-weight: bold; }
    #pagehistory li { border: 1px solid White; }
    #pagehistory li.selected {
        background-color:#f9f9f9;
        border:1px dashed #aaaaaa;
    }
     
    table.diff { background:white; }
    td.diff-otitle { background:#ffffff; }
    td.diff-ntitle { background:#ffffff; }
    td.diff-addedline {
        background:#ccffcc;
        font-size: 80%;
    }
    td.diff-deletedline {
        background:#ffffaa;
        font-size: 80%;
    }
    td.diff-context {
        background:#eeeeee;
        font-size: 80%;
    }
    span.diffchange { color: red; font-weight: bold; }
     
    img { border: none; }
    img.tex { vertical-align: middle; }
    span.texhtml { font-family: serif; }
     
     
    #toc,
    .toc {
    	border: 1px solid #bba;
    	background-color: #f7f8ff;
    	padding: 5px;
    	font-size: 95%;
    	text-align: center;
    }
    #toc h2,
    .toc h2 {
    	display: inline;
    	border: none;
    	padding: 0;
    	font-size: 100%;
    	font-weight: bold;
    }
    #toc ul,
    .toc ul {
    	list-style-type: none;
    	list-style-image: none;
    	margin-left: 0;
    	padding-left: 0;
    	text-align: left;
    }
    #toc ul ul,
    .toc ul ul {
    	margin: 0 0 0 2em;
    }
    #toc .toctoggle,
    .toc .toctoggle {
    	font-size: 94%;
    }
     
    .error {
    	color: red;
    	font-size: larger;
    }
     
    /* emulate center */
    .center {
        width: 100%;
        text-align: center;
    }
    *.center * {
        margin-left: auto;
        margin-right: auto;
    }
    /* small for tables and similar */
    .small, .small * { font-size: 94%; }
    table.small { font-size: 100% }
     
    /* use this instead of #toc for page content */
    .toccolours {
        border:1px solid #aaaaaa;
        background-color:#f9f9f9;
        padding:5px;
        font-size: 95%;
    }
    #siteNotice {
        border:none;
        padding-left: 0.5em;
        padding-right: 0.5em;
    }
    .redirectText {
    	font-size:150%;
    	margin:5px;
    }
    /* Makes redirects appear in italics on [[Special:Allpages]] */
    .allpagesredirect {
        font-style: italic;
    }
    .searchmatch {
    	color: red;
    	font-weight: bold;
    }
    .sharedUploadNotice {
    	font-style: italic;
    }
    span.unpatrolled {
    	font-weight:bold;
    	color:red;
    }
     
    span.updatedmarker {
    	color:black;
    	background-color:#00FF00;
    }
    span.newpageletter {
    	font-weight:bold;
    	color:black;
    	background-color:yellow;
    }
    span.minoreditletter {
    	color:black;
    	background-color:#C5FFE6;
    }
     
    table.gallery {
            border:  1px solid #cccccc;
            margin:  2px;
            padding: 2px;
            background-color:#ffffff;
    }
     
    table.gallery tr {
            vertical-align:top;
    }
     
    table.gallery td {
          vertical-align:top;
          background-color:#f9f9f9;
          border: solid 2px white;
    }
     
    div.gallerybox {
            margin: 2px;
            width:  150px;
    }
     
    div.gallerybox div.thumb {
            text-align: center;
            border: 1px solid #cccccc;
            margin: 2px;
    }
     
    div.gallerytext {
            font-size: 94%;
            padding: 2px 4px;
    }
     
    span.comment {
    	font-style: italic;
    }
     
    span.changedby {
    	font-size: 95%;
    }
     
    .previewnote {
    	text-align: center;
    	color: #cc0000;
    }
    .editExternally {
            border-style:solid;
            border-width:1px;
            border-color:gray;
            background: #ffffff;
            padding:3px;
            margin-top:0.5em;
            float:left;
            font-size:small;
            text-align:center;
    }
    .editExternallyHelp {
            font-style:italic;
            color:gray;
    }
     
    li span.deleted {
    	text-decoration: line-through;
    	color: #888;
    	font-style: italic;
    }
     
     
    /* Classes for EXIF data display */
    table.mw_metadata {
    	margin-left: 0.5em;
    }
     
    table.mw_metadata caption { font-weight: bold; }
    table.mw_metadata th { font-weight: normal; }
    table.mw_metadata td { padding: 0.1em; }
     
    table.mw_metadata {
    	border: none;
    	border-collapse: collapse;
    }
    table.mw_metadata td, table.mw_metadata th {
    	border: 1px solid #aaaaaa;
    	padding-left: 4px;
    	padding-right: 4px;
    }
    table.mw_metadata th {
    	background-color: #f9f9f9;
    }
    table.mw_metadata td {
    	background-color: #fcfcfc;
    }
    table.mw_metadata td.spacer {
    	background: inherit;
    	border-top: none;
    	border-bottom: none;
    }
    table.collapsed tr.collapsable {
    	display: none;
    }
     
    .visualClear {
        clear: both;
    }
     
    #mw_trackbacks {
    	border: solid 1px #bbbbff;
    	background-color: #eeeeff;
    	padding: 0.2em;
    }
     
    /* Allmessages table */
     
    #allmessagestable th {
    	background-color: #b2b2ff;
    }
     
    #allmessagestable tr.orig {
    	background-color: #ffe2e2;
    }
     
    #allmessagestable tr.new {
    	background-color: #e2ffe2;
    }
     
    #allmessagestable tr.def {
    	background-color: #f0f0ff;
    }
     
    #jump-to-nav {
      display: none;
    }
     
    /* caratteri per i template IPA, Unicode, polytonic */
    /* "Inherit" resetta i fonts per tutti i browser eccetto MSIE6. Il commento vuoto deve essere presente */
    .IPA {
            font-family: Chrysanthi Unicode, Doulos SIL, Gentium, GentiumAlt, Code2000, TITUS Cyberbit Basic, DejaVu Sans, Bitstream Vera Sans, Bitstream Cyberbit, Arial Unicode MS, Lucida Sans Unicode, Hiragino Kaku Gothic Pro, Matrix Unicode;
            font-family /**/:inherit;
    }
    .Unicode {
            font-family: TITUS Cyberbit Basic, Code2000, Doulos SIL, Chrysanthi Unicode, Bitstream Cyberbit, Bitstream CyberBase, Bitstream Vera, Thryomanes, Gentium, GentiumAlt, Visual Geez Unicode, Lucida Grande, Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode;
            font-family /**/:inherit;
    }
    .polytonic {
            font-family: Athena, Gentium, Palatino Linotype, Arial Unicode MS, Lucida Sans Unicode, Lucida Grande, Code2000; 
            font-family /**/:inherit;
    }
     
      /* Stili per Wikipedia:CommonsTicker */
     
      .tList ul,    .tickerList ul li    { list-style: none; text-indent:-2em; margin-left:2em;   text-align:left; }
      .tList ul ul, .tickerList ul ul li { list-style: none; text-indent:0;    margin-left:1.5em; text-align:left; }
     
      .tAction_deleted:before     { content:" [CANC] "; color: #FF0000; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_replaced:before    { content:" [SOST] "; color: #880088; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_addedTag:before    { content:" [+TAG] "; color: #DD6600; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_removedTag:before  { content:" [-TAG] "; color: #00AA00; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_addedBad:before    { content:" [+TAG] "; color: #DD6600; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_removedBad:before  { content:" [-TAG] "; color: #00AA00; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_addedGood:before   { content:" [+ OK] "; color: #00AA00; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_removedGood:before { content:" [- OK] "; color: #DD6600; font-family:monospace; font-weight:bold; font-size:100%; }
     
      .tAction_replacedOwn:before { content:" [INFO] "; color: #808080; font-family:monospace; font-weight:bold; font-size:100%; }  
      .tAction_deletedRev:before  { content:" [INFO] "; color: #808080; font-family:monospace; font-weight:bold; font-size:100%; }  
     
      .tUsage  { font-size:80%; }  /* ticker usage list */
      .tTemplateEntry    { font-weight: bold; } /* entry applies to a template used by multiple images */
     
    /* make the list of references look smaller */
    ol.references {
       font-size: 90%;
    }
     
    .references-small { font-size: 90%;}
     
    /* Class for links with loudspeaker icon next to them */
    /* copiata da en.wiki per fare link con l'icona di un altoparlante */
     
    .audiolink a{
        background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Loudspeaker.svg/11px-Loudspeaker.svg.png") center left no-repeat !important;
        padding-left: 16px !important;
        padding-right: 0 !important;
    }
     
    .AvvisoTrasferito
    {
        background-color: #EEF8FF;
        border: 1px solid black;
        margin: 5px;
        padding: 5px;
    }
     
    /* Geographical coordinates 
     
    To display coordinates using the notation in the source code, write this in your User:Username/monobook.css:
    .geo-default { display: inline } .geo-nondefault { display: none } 
    .geo-dec { display: inline } .geo-dms { display: inline }
     
    To display coordinates using decimal notation, write this in your User:Username/monobook.css:
    .geo-default { display: inline } .geo-nondefault { display: inline } 
    .geo-dec { display: inline } .geo-dms { display: none }
     
    To display coordinates using DMS notation, write this in your User:Username/monobook.css:
    .geo-default { display: inline } .geo-nondefault { display: inline } 
    .geo-dec { display: none }   .geo-dms { display: inline }
     
    To display coordinates in both decimal and DMS notation, write this in your User:Username/monobook.css:
    .geo-default { display: inline } .geo-nondefault { display: inline } 
    .geo-dec { display: inline }   .geo-dms { display: inline }
    .geo-multi-punct { display: inline }
     
    See [[Template:Coor link]] for how these are used.
     
    Note that the classes "geo", "longitude", and "latitude" are not just styles but also used by the [[Geo microformat]], so the names should not be changed.
     
    */
     
    .geo-default { display: inline; }
    .geo-nondefault { display: none; }
    .geo-dms { display: inline; }
    .geo-dec { display: inline; }
    .geo-multi-punct { display: none; }
     
    .longitude .latitude {
    white-space: nowrap;
    }
     
    /* This is used for the Geo microformat, but no style is needed for now other than .geo-dec. */
    .geo { }
    /***** end Geo-related */
     
    /* Classi originariamente per Ref usate anche dal template coord - risolvono alcuni problemi di visualizzazione e di stampa */
    /* per maggiori info vedere http://en.wikipedia.org/wiki/MediaWiki:Common.css */
    .plainlinksneverexpand {
        background: none ! important;
        padding: 0 ! important;
    }
    .plainlinksneverexpand .urlexpansion {
        display: none ! important;
    }
     
    .plainlinksneverexpand a {
        background: none !important;
        padding: 0 !important;
    }
     
    .plainlinksneverexpand a.external.text:after {
        display: none !important;
    }
    .plainlinksneverexpand a.external.autonumber:after {
        display: none !important;
    }
     
     
    /* Classe per template Arabo */
    .arabo{
       font-size:140%;
    }
     
    /* Classi per template Sinottici */
     
    .sinottico {
        border:1px solid #aaaaaa;
        background-color:#f9f9f9;
        padding:3px;
        font-size: 95%;
        clear:right;
        width:250px;
        float:right;
        margin: 0 0 1em .5em;
        vertical-align: top;
    }
     
    .sinottico th {
        background-color: #f2f2f2;
        padding: 0em 0.5em;
        text-align: right;
        vertical-align: top;
    }
     
    .sinottico td {
        padding: 0em 0.2em;
        vertical-align: top;
    }
     
    .sinottico_testata th {
        font-size: 120%;
        padding: 0em 0.5em;
        background-color: #dedede;
        text-align: center;
    }
     
    .sinottico_piede {
        text-align: center;
        font-size: 90%;
        background:#EFEFEF;
    }
     
    .sinottico_divisione th {
        color: black;
        font-size: 100%;
        padding: 0em 0.5em;
        background-color: #eeeeee;
        text-align: center;
    }
    /* Fine classi per template Sinottici */
     
    .messagebox {
        border: 1px solid #aaa;
        background-color: #f9f9f9;
        width: 80%;
        margin: 0 auto 1em auto;
        padding: .2em;
    }
     
    /*Classe necessaria per rendere non visibili parte dei contenuti */
    /*copiata qui perché presente solo in http://it.wikipedia.org/skins/monobook/main.css */
     
    .hiddenStructure {
        display: none;
    }
     
    /* wikitable/prettytable class for skinning normal tables */
     
    table.wikitable,
    table.prettytable {
      margin: 1em 1em 1em 0;
      background: #f9f9f9;
      border: 1px #aaa solid;
      border-collapse: collapse;
    }
     
    table.wikitable th, table.wikitable td,
    table.prettytable th, table.prettytable td {
      border: 1px #aaa solid;
      padding: 0.2em;
    }
     
    table.wikitable th,
    table.prettytable th {
      background: #f2f2f2;
      text-align: center;
    }
     
    table.wikitable caption,
    table.prettytable caption {
      margin-left: inherit;
      margin-right: inherit;
      font-weight: bold;
    }
     
    /* Stili del template avviso */
    table.avviso {
      margin: 0 10%;                           /* Non si sovrappone ad altri elementi */
      border-collapse: collapse; 
      background: #fbfbfb; 
      border: 1px solid #aaa; 
      border-left: 10px solid #1e90ff;         /* Colore blu di default */
    }
    table.avviso th.avviso-testo, table.avviso td.avviso-testo {      /* Corpo del messaggio */
      padding: 0.25em 0.5em;                   /* 0.5em sinistra/destra */
      width: 100%;                             /* Rende tutti i template della stessa lunghezza nonostante il testo interno */
    }
    table.avviso td.avviso-immagine {          /* Stile dell'immagine a sinistra */
      padding: 2px 0px 2px 0.5em;              /* 0.5em sinistra, 0px destra */
      text-align: center; 
    }
    table.avviso td.avviso-immaginedestra {    /* Stile dell'immagine a destra */
      padding: 2px 4px 2px 0px;                /* 0px sinistra, 4px destra */
      text-align: center; 
    }
    table.avviso-informazioni {
      border-left: 10px solid #1e90ff;         /* Blu */
    }
    table.avviso-cancella,
    table.avviso-importante {
      border-left: 10px solid #b22222;         /* Rosso */
    }
    table.avviso-contenuto {
      border-left: 10px solid #f28500;         /* Arancio */
    }
    table.avviso-stile {
      border-left: 10px solid #f4c430;         /* Giallo */
    }
    table.avviso-statico {
      border-left: 10px solid limegreen;       /* Verde */
    }
    table.avviso-struttura {
      border-left: 10px solid #9932cc;         /* Viola */
    }
    table.avviso-generico {
      border-left: 10px solid #bba;            /* Grigio */
    }
    table.avviso.avviso-mini {                 /* variante del box */
        float: right;
        clear: right;
        margin: 0 0 0 1em;
        width: 25%;
    }
     
    /***************
     * Prima parte *
     ***************/
     
    /************************
     * STILI PER I TEMPLATE *
     ************************/
     
    .itwiki_template_avviso {
      clear:both;
      text-align:left;
      background-color: #EEF8FF;
      padding-bottom: 0.5em;
    }
    .itwiki_template_avviso_v {
      clear:both;
      float:right;
      width:16em;
      background-color: #EEF8FF;
    }
    .itwiki_template_avviso .intestazione, .itwiki_template_avviso_v .intestazione {
      font-weight:bold;
    }
    .itwiki_template_disclaimer {
      clear:both;
      display:block; /* per allargare anche le tabelle (se servissero) alla
                        larghezza della pagina (NON specificare "width"!) */
      text-align:center;
      border:1px solid #C00000;
      background-color: #FFFFFF;
      font-size: 90%;
    }
    .itwiki_template_disclaimer_v {
      clear:both;
      float:right;
      border:1px solid #C00000;
      background-color: #FFFFFF;
    }
    .itwiki_template_copyright {
      clear:both;
      display:block;
      text-align:left;
      background-color:#F1F1DE;
    }
    .itwiki_template_wikimedia {
      float:right;
      clear:right;
      border:solid #aaa 1px; 
      width:22em;
      font-size:90%;
      background-color:#F9F9F9;
    }
    .itwiki_template_wikimedia .floatleft {
      border:.5em solid white;
    }
    .itwiki_template_wikimedia p {
      text-align:left;
    }
    .itwiki_template_babelbox {
      float:right; 
      margin:0 0 .5em 1em;
      width:20em; /* per evitare problemi con Opera e Safari */
      padding:5px 7px 5px 5px; /* questo lo farà apparire storto in MSIE
                                  ma non so che farci */
    }
    .itwiki_template_babelbox .intestazione {
      text-align:center;
      font-weight:bold;
      margin-left:2px;
    }
    .itwiki_template_babel {
      float:left;
      width:20em;
      background:#e0e8ff;
      border:solid #99b3ff 1px;
      margin:1px 1px 1px 0;
    }
    .itwiki_template_babel .sigla {
      background:#99b3ff;
      text-align:center;
      font-size:1.2em;
      font-weight:bold;
    }
    .itwiki_template_babel2 {
      float:left;
      width:20em;
      background:#c5fcdc;
      border:solid #6ef7a7 1px;
      margin:1px 1px 1px 0;
    }
    .itwiki_template_babel2 .sigla {
      background:#6ef7a7;
      text-align:center;
      font-size:1.2em;
      font-weight:bold;
    }
    .itwiki_template_babel .sigla,
    .itwiki_template_babel2 .sigla {
      width:4em;
    }
    .itwiki_template_babel td,
    .itwiki_template_babel2 td {
      font-size:.9em;
      line-height:1.2em;
      padding:5px;
    }
    .itwiki_template_babelbox .itwiki_template_babel,
    .itwiki_template_babelbox .itwiki_template_babel2 {
      clear:left; /* perché i singoli template nel babelbox
                     siano uno sotto l'altro */
    }
    .itwiki_template_toc {
        border: 1px solid #aaaaaa;
        background-color: #f9f9f9;
        padding: 0px;
        font-size: 95%;
    }
     
    /* classi per arrotondare i bordi dei div e delle tabelle */
    .radius {
    -moz-border-radius: 1em;
    }
    .radius_top {
    -moz-border-radius-topright: 1em;
    -moz-border-radius-topleft: 1em;
    }
    .radius_bottom {
    -moz-border-radius-bottomright: 1em;
    -moz-border-radius-bottomleft: 1em;
    }
    .rad {
    -moz-border-radius: .5em;
    }
     
     
    /***********************
     * FINE STILI TEMPLATE *
     ***********************/
     
    /* Per elementi che non vanno stampati */
    @media print {
        .noprint { display: none }
    }
     
    /**************************************
    /* Classi per dynamic navigation bars *
     **************************************/
     
    .NavToggle {
       font-size: 95%;
       float:right;
    }
     
    div.BoxenVerschmelzen,
    div.NavFrame {
            margin: 0.5em 0 0 0;
            padding: 2px;
            border: 1px solid #aaaaaa;
            text-align: center;
            border-collapse: collapse;
            font-size: 95%;
            clear:both;
    }
    div.BoxenVerschmelzen div.NavFrame {
            border-style: none;
            border-style: hidden;
            margin: 0;
    }
    div.NavFrame + div.NavFrame {
            border-top-style: none;
            border-top-style: hidden;
    }
    div.NavPic {
            background-color: #ffffff;
            margin: 0px;
            padding-right: 2px;
            float: left;
    }
    div.NavFrame div.NavHead {
            font-weight: bold;
            font-size: 100%;
            background-color: #efefef;
    }
    div.NavFrame p {
            font-size: 100%;
    }
    div.NavFrame div.NavContent {
            font-size: 100%;
    }
    div.NavFrame div.NavContent p {
            font-size: 100%;
    }
    div.NavEnd {
            margin: 0px;
            padding: 0px;
            line-height: 1px;
            clear: both;
    }
     
    #bodyContent .references sup{
           color:#002BB8 !important;
    }
     
    /* Highlight per le note */
     
    ol.references > li:target {
     background-color: #DEF;
    }
     
    sup.reference:target {
     background-color: #DEF;
    }
     
    /* BEGIN Template:Fumetto e animazione */
    table.sinossifumetti th{
     vertical-align: top;
     color: black;
     background-color: rgb(239, 239, 239);
     text-align: left;
     width: 35%; 
     min-width: 35%;
     max-width: 35%;
    }
    table.sinossifumetti td{
     color: black;
     background-color: white;
     vertical-align: bottom;
     width: 65%; 
     min-width: 65%; 
     max-width: 65%;
    }
    tr.sinossifumettibreak{
     border-top: 1px solid #AAA;
    }
     
    /* END   Template:Fumetto e animazione */
     
     
    /* Rende il form di cancellazione trasparente nelle pagine con sfondo "colorato"*/
    #deleteconfirm, #deleteconfirm>table {
        background: transparent;
    }
     
    /*
     Serve per simulare le sottosezioni
     nella sezione delle preferenze destinata ai gadgets,
     visto che non si possono fare normalmente
    */
    .tb-subsection {
        font-size: smaller;
    }
     
    /*
     Stili per i box che si visualizzano al passaggio del mouse
     Licenza: GFDL e Creative Commons Attribution 2.5
    */
    .HopContent
    {
     display:none;
    }
     
    .HopFrame:hover .HopContent
    {
     display:block;
    }
     
    /* CATEGORIE NASCOSTE */
    /* Se tutte le categorie di una voce sono nascoste, le mostra lo stesso (in modo da visualizzare il [altre] per poterci accedere) */
    .catlinks-allhidden { display: block; }
     
    /* Evita che i link vadano a capo */
    .nowraplinks a {
        white-space: nowrap;
    }
     
    /* classi legate al template navbox generic */
    table.navbox {            /* navbox container style */
      border:1px solid #aaa;
      width:100%; 
      margin:auto;
      clear:both;
      text-align:center;
      padding:1px;
    }
    table.navbox + table.navbox {
      margin-top:-1px;        /* single pixel border between adjacent navboxes (doesn't work for IE6, but that's okay) */
    }
    .navbox-title, .navbox-abovebelow, table.navbox th {
      text-align:center;      /* title and above/below styles */
      padding-left:1em;
      padding-right:1em;
    }
    .navbox-group {           /* group style */
      white-space:nowrap;
      text-align:right;
      font-weight:bold;
      padding-left:1em;
      padding-right:1em;
    }
    .navbox, .navbox-subgroup {
      background:#fdfdfd;     /* Background color */
    }
    .navbox-list {
      border-color:#fdfdfd;   /* Must match background color */
    }
    .navbox-title, table.navbox th {
      background:#ccccff;     /* Level 1 color */
    }
    .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title {
      background:#ddddff;     /* Level 2 color */
    }
    .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow {
      background:#e6e6ff;     /* Level 3 color */
    }
    .navbox-even {
      background:#f7f7f7;     /* Even row striping */
    }
    .navbox-odd {
      background:transparent; /* Odd row striping */
    }
     
    /*</nowiki></pre>*/
     
    <pre>
    .slideshow div {
      _position: absolute;
    }
     
    .slideshow div div {
      _position: static;
    }
    table.calendar          { margin: 0; padding: 10px; }
    table.calendar td       { margin: 0; padding: 2px; vertical-align: top; }
    table.month .heading td { padding:2px; background-color:#d4d4d4; color:#aaa; text-align:center; font-size:120%; font-weight:bold; }
    table.month .dow td     { color:#aaa; text-align:center; font-size:110%; }
    table.month td.today    { background-color:#ddd; }
    table.month td {
        border: none;
        margin: 0;
        padding: 1pt 1.5pt;
        font-weight: bold;
        font-size: 8pt;
        text-align: right;
        background-color: #eee;
        }
    #bodyContent table.month a { background:none; padding:0 }
    .day-active { color:#0000cc }
    .day-empty  { color:#ff8822 }





    MediaWiki:Common.js


    ====
    Codice da inserire nella pagina del vostro Wiki
    chiamata, o che chiamerete:
    MediaWiki:Common.js
    ====

    // Serve per "sabotare" www.wikipedia.it e tutti gli altri siti che ci includono in frame. "Salta fuori" dai frame.
    if (top !=self) top.location=self.location;
     
    // BEGIN Enable multiple onload functions
     
    // setup onload functions this way:
    // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
     
    if (!window.aOnloadFunctions) {
      var aOnloadFunctions = new Array();
    }
     
    window.onload = function() {
      if (window.aOnloadFunctions) {
        for (var _i=0; _i<aOnloadFunctions.length; _i++) {
          aOnloadFunctions[_i]();
        }
      }
    }
     
    // END Enable multiple onload functions
     
     
    function addLoadEvent(func) 
    {
      if (window.addEventListener) 
        window.addEventListener("load", func, false);
      else if (window.attachEvent) 
        window.attachEvent("onload", func);
    }
     
    /*** RICERCA ***/
    /** 
    *******************************************************
    *
    *  Descrizione: Cambia Speciale:Ricerca per usare un menu' a
    *  tendina, con come default il motore interno di MediaWiki
    *
    *  Creato e gestito da: [[:en:User:Gracenotes]]
    *  Importato in it.wiki da: [[Utente:Jalo]]
    */
     
     if (wgPageName == "Speciale:Ricerca") {
             var searchEngines = [];
             addOnloadHook(SpecialSearchEnhanced);
     }
     
     function SpecialSearchEnhanced() {
             var createOption = function(site, action, mainQ, addQ, addV) {
                     var opt = document.createElement('option');
                     opt.appendChild(document.createTextNode(site));
                     searchEngines[searchEngines.length] = [action, mainQ, addQ, addV];
                     return opt;
             }
             if (document.forms['powersearch'])
                 var searchForm = document.forms['powersearch'];
             if (document.forms['search'])
                 var searchForm = document.forms['search'];
     
             if (searchForm.lsearchbox) {
                 var searchBox = searchForm.lsearchbox;
             } else {
                 var searchBox = searchForm.search;
             }
     
             var selectBox = document.createElement('select');
             selectBox.id = 'searchEngine';
             searchForm.onsubmit = function() {
                     var optSelected = searchEngines[document.getElementById('searchEngine').selectedIndex];
                     searchForm.action = optSelected[0];
                     searchBox.name = optSelected[1];
                     searchForm.title.value = optSelected[3];
                     searchForm.title.name = optSelected[2];
             }
             selectBox.appendChild(createOption('MediaWiki', wgScriptPath + '/index.php', 'search', 'title', 'Speciale:Ricerca'));
             selectBox.appendChild(createOption('Google', 'http://www.google.com/search', 'q', 'sitesearch', 'it.wikipedia.org'));
             selectBox.appendChild(createOption('Yahoo', 'http://search.yahoo.com/search', 'p', 'vs', 'it.wikipedia.org'));
             selectBox.appendChild(createOption('Windows Live', 'http://search.live.com/results.aspx', 'q', 'q1', 'site:http://it.wikipedia.org'));
             selectBox.appendChild(createOption('Wikiwix', 'http://it.wikiwix.com/', 'action', 'lang', 'it'));
             selectBox.appendChild(createOption('Exalead', 'http://www.exalead.com/wikipedia/results', 'q', 'language', 'it'));
     
             searchBox.style.marginLeft = '0px';
             if (document.getElementById('loadStatus')) {
                 var lStat = document.getElementById('loadStatus');
             } else {
                 var lStat = searchForm.fulltext;
             }
             lStat.parentNode.insertBefore(selectBox, lStat);
    }
     
    // Serve per far funzionare il Cassetto2 con IE6.
    if (window.attachEvent && !window.XMLHttpRequest) window.attachEvent("onload", function() {
            var x=document.getElementById("bodyContent").getElementsByTagName("div");
            for (var i=0; i<x.length; i++) {
                    if (x[i].className != "HopFrame") continue;
                    var y=x[i].getElementsByTagName("div"); var j;
                    for (j=0; j<y.length; j++)
                            if (y[j].className == "HopContent") {x[i].hopContent = y[j]; break;}
                    if (j<y.length) {
                            x[i].onmouseover=function() { this.hopContent.style.display="block"; };
                            x[i].onmouseout=function() { this.hopContent.style.display="none"; };
                    }
            }
    });
     
    // BEGIN Dynamic Navigation Bars
     
     
    /* Test if an element has a certain class **************************************
     *
     * Description: Uses regular expressions and caching for better performance.
     * Maintainers: User:Mike Dillon, User:R. Koot, User:SG
     */
     
    var hasClass = (function () {
        var reCache = {};
        return function (element, className) {
            return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
        };
    })();
     
     
    // set up the words in your language
    var NavigationBarHide = '? Nascondi';
    var NavigationBarShow = '? Espandi';
     
    // set up max count of Navigation Bars on page,
    // if there are more, all will be hidden
    // NavigationBarShowDefault = 0; // all bars will be hidden
    // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
    var NavigationBarShowDefault = 0;
     
     
    // shows and hides content and picture (if available) of navigation bars
    // Parameters:
    //     indexNavigationBar: the index of navigation bar to be toggled
    function toggleNavigationBar(indexNavigationBar)
    {
       var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
       var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
     
       if (!NavFrame || !NavToggle) {
           return false;
       }
     
       // if shown now
       if (NavToggle.firstChild.data == NavigationBarHide) {
           for (
                   var NavChild = NavFrame.firstChild;
                   NavChild != null;
                   NavChild = NavChild.nextSibling
               ) {
               if (hasClass(NavChild, 'NavPic')) {
                   NavChild.style.display = 'none';
               }
               if (hasClass(NavChild, 'NavContent')) {
                   NavChild.style.display = 'none';
               }
               if (hasClass(NavChild, 'NavToggle')) {
                   NavChild.firstChild.data = NavigationBarShow;
               }
           }
     
       // if hidden now
       } else if (NavToggle.firstChild.data == NavigationBarShow) {
           for (
                   var NavChild = NavFrame.firstChild;
                   NavChild != null;
                   NavChild = NavChild.nextSibling
               ) {
               if (hasClass(NavChild, 'NavPic')) {
                   NavChild.style.display = 'block';
               }
               if (hasClass(NavChild, 'NavContent')) {
                   NavChild.style.display = 'block';
               }
               if (hasClass(NavChild, 'NavToggle')) {
                   NavChild.firstChild.data = NavigationBarHide;
               }
           }
       }
    }
     
    // adds show/hide-button to navigation bars
    function createNavigationBarToggleButton()
    {
       var indexNavigationBar = 0;
       // iterate over all < div >-elements
       for(
               var i=0; 
               NavFrame = document.getElementsByTagName("div")[i]; 
               i++
           ) {
           // if found a navigation bar
           if (hasClass(NavFrame, 'NavFrame')) {
     
               indexNavigationBar++;
               var NavToggle = document.createElement("a");
               NavToggle.className = 'NavToggle';
               NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
               NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
     
               var NavToggleText = document.createTextNode(NavigationBarHide);
               NavToggle.appendChild(NavToggleText);
     
               // add NavToggle-Button as first div-element 
               // in < div class="NavFrame" >
               NavFrame.insertBefore(
                   NavToggle,
                   NavFrame.firstChild
               );
               NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
           }
       }
       // if more Navigation Bars found than Default: hide all
       if (NavigationBarShowDefault < indexNavigationBar) {
           for(
                   var i=1; 
                   i<=indexNavigationBar; 
                   i++
           ) {
               toggleNavigationBar(i);
           }
       }
     
    }
     
    aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
     
    // END Dynamic Navigation Bars
     
     
    /** Collapsible tables *********************************************************
     *
     *  Taken from http://en.wikipedia.org/wiki/MediaWiki:Common.js
     *  Description: Allows tables to be collapsed, showing only the header. See
     *               Wikipedia:NavFrame.
     *  Maintainers: User:R. Koot
     */
     
    var autoCollapse = 2;
    var collapseCaption = "nascondi";
    var expandCaption = "espandi";
     
    function collapseTable( tableIndex )
    {
        var Button = document.getElementById( "collapseButton" + tableIndex );
        var Table = document.getElementById( "collapsibleTable" + tableIndex );
     
        if ( !Table || !Button ) {
            return false;
        }
     
        var Rows = Table.getElementsByTagName( "tr" ); 
     
        if ( Button.firstChild.data == collapseCaption ) {
            for ( var i = 1; i < Rows.length; i++ ) {
                Rows[i].style.display = "none";
            }
            Button.firstChild.data = expandCaption;
        } else {
            for ( var i = 1; i < Rows.length; i++ ) {
                Rows[i].style.display = Rows[0].style.display;
            }
            Button.firstChild.data = collapseCaption;
        }
    }
     
    function createCollapseButtons()
    {
        var tableIndex = 0;
        var NavigationBoxes = new Object();
        var Tables = document.getElementsByTagName( "table" );
     
        for ( var i = 0; i < Tables.length; i++ ) {
            if ( hasClass( Tables[i], "collapsible" ) ) {
                NavigationBoxes[ tableIndex ] = Tables[i];
                Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
     
                var Button     = document.createElement( "span" );
                var ButtonLink = document.createElement( "a" );
                var ButtonText = document.createTextNode( collapseCaption );
     
                Button.style.styleFloat = "right";
                Button.style.cssFloat = "right";
                Button.style.fontWeight = "normal";
                Button.style.textAlign = "right";
                Button.style.width = "6em";
     
                ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
                ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
                ButtonLink.appendChild( ButtonText );
     
                Button.appendChild( document.createTextNode( "[" ) );
                Button.appendChild( ButtonLink );
                Button.appendChild( document.createTextNode( "]" ) );
     
                var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
                /* only add button and increment count if there is a header row to work with */
                if (Header) {
                    Header.insertBefore( Button, Header.childNodes[0] );
                    tableIndex++;
                }
            }
        }
     
        for ( var i = 0;  i < tableIndex; i++ ) {
            if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
                collapseTable( i );
            }
        }
    }
     
    addOnloadHook( createCollapseButtons );
     
    //END Collapsible tables
     
    //HIDDENCAT (mostra le categorie nascoste). Scippato ai francesi
    function addClass(node, className) {
        if (hasClass(node, className)) {
            return false;
        }
        node.className += ' '+ className;
        return true;
    }
     
    function eregReplace(search, replace, subject) {
        return subject.replace(new RegExp(search,'g'), replace);
    }
     
    function removeClass(node, className) {
      if (!hasClass(node, className)) {
        return false;
      }
      node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
      return true;
    }
     
    function isClass(element, classe) {
        return hasClass(element, classe);
    }
     
    function hiddencat()
    {
     var cl = document.getElementById('catlinks');           if(!cl) return;
     var hc = document.getElementById('mw-hidden-catlinks'); if(!hc) return;
     var nc = document.getElementById('mw-normal-catlinks');
     if(!nc)
     {
      var ahc = '<div id="mw-normal-catlinks"><a href="/wiki/Categoria:Categorie" title="Categoria:Categorie">Categorie</a>&nbsp;:&#32;<span dir="ltr"><a onclick="javascript:toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:#002BB8;" title="Questa voce contiene categorie nascoste">[<span style="font-style:italic;">altre</span>]</a></span></div>';
      document.getElementById('catlinks').innerHTML = ahc + cl.innerHTML;
     }
     else if( isClass(hc, 'mw-hidden-cats-hidden') )
     {
      var ahc = ' | <a onclick="javascript:toggleHiddenCats();" id="mw-hidden-cats-link" style="cursor:pointer; color:#002BB8;" title="Questa voce contiene categorie nascoste">[<span style="font-style:italic;">altre</span>]</a>';
      document.getElementById('mw-normal-catlinks').innerHTML += ahc;
     }
    }
    function toggleHiddenCats()
    {
     var hc = document.getElementById('mw-hidden-catlinks');
     if( isClass(hc, 'mw-hidden-cats-hidden') )
     {
      removeClass(hc, 'mw-hidden-cats-hidden');
      addClass(hc, 'mw-hidden-cat-user-shown');
      document.getElementById('mw-hidden-cats-link').innerHTML = '[<span style="font-style:italic;">nascondi</span>]';
     }
     else
     {
      removeClass(hc, 'mw-hidden-cat-user-shown');
      addClass(hc, 'mw-hidden-cats-hidden');
      document.getElementById('mw-hidden-cats-link').innerHTML = '[<span style="font-style:italic;">altre</span>]';
     }
    }
     
    addOnloadHook(hiddencat);
     
    /* Layout pagina di modifica */
    addLoadEvent ( function ()
    {
      if (wgAction == "edit")
      {
        /* Allarga l'edittools a tutta pagina */
        document.getElementById("Standard").style.width = "100%";
      }
    })
     
    function includePage( name )
    {
     document.write('<script type="text/javascript" src="' + wgScript + '?title='
      + name 
      + '&action=raw&ctype=text/javascript"><\/script>' 
     );
    }
    /* End of includePage */
    /* Including extra .js pages */ 
     
    // switches for scripts
    // var load_extratabs = true;
    var load_edittools = true;
     
    // extra drop down menu on editing for adding special characters
    includePage( 'MediaWiki:Edittools.js' );




    Bottoni Extra "UserMarkS"

    E' possibile aggiungere dei bottoni extra nella parte alta della pagina di edit, che aggiungono funzionalità alla "bottoniera"già presente e permettono quindi di velocizzare l'attività nel modificare le voci.


    Tre Passaggi

    Attivare variabile sul LocalSettings.php

    La procedura è la seguente.


    Per prima cosa è necessario abilitare gli utenti all'uso di Javascript, inserendo nel file LocalSettings.php questa stringa:


    • $wgAllowUserJS = true;



    Utente MarkS di servizio

    Poi, creiamo un utente fittizio di nome "MarkS"


    Ora ci autentichiamo come utente MarkS e copiamo questo file

    Vai a: UserMarkSextraeditbuttons.js.


    e, opzionalmente, anche questo:


    nelle corrispondenti pagine del nuovo utente sul nostro wiki.


    Modifica al file Monobook.php

    Vai a: Gli Stili: esempi di Monobook modificato.

    Infine, modifichiamo via ftp il file Monobook.php (o comunque, quello relativo alla Skin che stiamo usando; il monobook è quello di default, almeno fino alla versione 1.15 del software, ma si può cambiarlo) che si trova nella cartella skins del nostro wiki, aggiungendo questa stringa:

    <script type="text/javascript"
    src="/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>
    

    subito prima della riga

    </head>
    

    adattando opportunamente il percorso, in base all'installazione del proprio wiki. Ad esempio, se il wiki è stato installato nella cartella "miowiki" anzichè nella root dello spazio web, la riga andrà modificata cosi:

    <script type="text/javascript"
    src="/miowiki/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>
    

    A questo punto, ed eventualmente dopo aver pulito la cache del browser, i bottoncini diventeranno visibili.


    Metodo veloce

    Se vi accontentate della disposizione data da altri, dei bottoncini, o data dall'Utente della wiki americana, MarkS appunto, che li ha creati, potete anche semplicemente copiarvi solo lo script corrispondente nel file monobook.php della vostra cartella Skin (o della Skin che usate insomma) col nome esatto del suo percorso (vedi esempio, sotto), e saltare il passaggio di creazione sulla vostra wiki del file "/extraeditbuttons.js", che vi servirebbe solamente se aveste intenzione in un futuro di cambiarne la disposizione, o di aggiungerne nuovi.

    Nota: L'Utente MarkS consiglia di modificare, per ottenere lo stesso effetto, la pagina Mediawiki:monobook.js della vostra wiki. Noi, invece, consigliamo di apportare la modifica sul file monobook.php, perchè, come spiegato più avanti, gli utenti meno esperti potrebbero sovraporre il codice delle altre impostazioni date in questo Manuale sulla stessa pagina, le quali smetterebbero di funzionare. Ciò non accade, se andate a toccare invece solo il file Monobook.php.


    Esempi di Script

    Lo script col percorso ufficiale dell'Utente MarKs, è:

    <script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>

    Ecco invece lo script col percorso url esatto, usato dalla wiki di Naturpedia

    <script type="text/javascript" src="http://www.naturpedia.org/index.php?title=Utente:MarkS/extraeditbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script>

    In questo successivo esempio, usato sulla wiki dell'Esopedia, trovate anche i "commenti"; ossia le linee: <!-- -->, che vanno tolte al momento di utilizzo

    <!-- <script type="text/javascript" src="http://www.esopedia.it/index.php?title=Utente:Athanor/extraeditingbuttons.js&action=raw&ctype=text/javascript&dontcountme=s"></script> -->

    Potete tranquillamente inserire questi script, e cominciare ad usare fin da subito le "bottoniere" (toolbar) ad esse associati, senza bisogno di fare alcunchè d'altro.


    Immagini

    Gli esempi sopra, vi produrranno queste bottoniere:

    Bottoniera usata dall'Utente MarkS sulla en.wiki

    Bottoniera usata sulla wiki di Esopedia

    Bottoniera usata sulla wiki di Naturpedia


    Link di riferimento

    Istruzioni più dettagliate, su en.wikipedia.

    Link Diretto: http://en.wikipedia.org/wiki/User:MarkS/Extra_edit_buttons



    Modificarne la disposizione, o la grafica

    Se volete disporre i bottoncini in un differente ordine, modificarne la grafica, o addirittura crearne di nuovi, ciò è possibile. Le istruzioni dettagliate in inglese, le trovate sempre a questo link:

    oppure, anche a questi altri:

    Vediamo ora, di darne anche noi un corrispettivo in italiano.


    Aggiungere un pezzo di codice

    il trucco è aggiungere queste tre righe:

    XEBOrder='A,B,C,D,F,TS,TC,TR,TE,AI,Z,I1,I2,K,L,M,H,O,R,T,V,FS,N,R1,R2,R3,R4,GEO';
     
    rmEditButtons=[];
     
    myButtons=[];

    all'inizio del codice dato prima, dell'Utente MarkS. (Utente:MarkS/extraeditbuttons.js)


    Quelle lettere nella XEBOrder, sono i corrispondenti dei pulsantini che vogliamo attivare, in base alla tabella che troviamo in questa pagina:


    Modificando "XEBOrder" possiamo quindi aggiungere, togliere e spostare di posizione i bottoncini, a nostro completo piacimento.


    La linea "rmEditButtons=[]" è invece l'elenco dei pulsantini standard della wikipedia, che si vogliono togliere. Dentro possiamo scriverci 'all' (così, con gli apicetti), oppure i numeri o le lettere dei pulsanti, sempre secondo la stessa tabella di prima.


    Infine, "myButtons" ci permette invece di definire dei nuovi pulsanti, secondo la sintassi descritta sempre in quella pagina, verso il fondo.


    Aggiunta (opzionale) al monobook.js

    A questo punto, se prevedete di voler cambiare la disposizione o altro dei bottoni, e non volete andare a toccare il codice UserMarkS dato sopra, potete farlo semplicemente modificando la stessa stringa nel Mediawiki:monobook.js del vostro wiki. All'inizio di questo, dovremo allora aggiungere:


    • {{subst:js|User:MarkS/extraeditbuttons.js}}


    e, appena sopra, la stringa; come spiegato più avanti. Tuttavia, è un metodo che vi sconsiglio, soprattutto se non siete esperti di codice; in quanto, se non lo posizionate bene, potreste andare a intaccare le altre delicate funzioni del monobook.js, rendendole inutilizzabili.


    Se per esempio utilizzate il template "Interprogetto", esso potrebbe smettere di funzionarvi bene:

    Per approfondire, vedi Utilizzo del Template "Interprogetto".


    Creare nuovi Bottoni

    Si agisce sul codice, e sulle immagini.


    Il primo è "da farsi"; il secondo, invece, rimane "opzionale"..

    Se infatti volete cambiare le immagini dei bottoncini per crearne di nuove, o semplicemente per assicurarvi che queste siano sempre sul vostro server, nel caso il sito di wikimedia vada in crash e li renda quindi così per voi irrangiungibili, dovete caricare queste ultime sul vostro sito wiki.


    Aggiunta al codice

    Va aggiunto all'extraeditbuttons.js (oppure, al Mediawiki:monobook.js appena sopra lo script {{subst:js|User:MarkS/extraeditbuttons.js}}; ma è meglio nel primo):

    myButtons={'NOME':['URL','Tooltip1','Codice prima','Codice dopo','Testo in mezzo'],
              'NOME-2':['URL-2','Tooltip-2','Codice prima-2','Codice dopo-2','Testo in mezzo-2']};

    dove, i valori corrisponderanno a

    • NOME: Nome del Nuovo Bottone (una o due lettere in maiuscolo, che non siano già date ai bottoni standard);
    • URL: link esatto del server su cui si trova l'immagine che volete dare al vostro nuovo bottone;
    • Tooltip: parola o parole visualizzate al passaggio del mouse sopra il bottone;
    • Codice prima: quello che vi appiccicherà il bottone una volta schiacciato, sul lato sinistro;
    • Codice dopo: quello che vi appiccicherà il bottone una volta schiacciato, sul lato destro;
    • Testo in mezzo: testo che vi apparirà in mezzo ai due codici, una volta schiacciato il bottone.


    come in questo successivo esempio:

    myButtons={'ZA':['http://upload.wikimedia.org/wikipedia/commons/9/99/Button_reflink_advanced_2.png','Nota','<ref>','Reference material','</ref>'],'R4C':['http://www.naturpedia.org/images/9/9a/Button_references.png','Note','\n==Note==\n','<references/>\n','']};

    nel quale si definiscono due bottoni extra.

    Ovviamente, per essere visibili, i nomi dei nuovi bottoni, in questo caso ZA e R4C, dovranno essere aggiunti alla linea XEBOrder= del codice extraeditbuttons.js, dato prima, nella posizione in cui si vuole che appaiano assieme agli altri.

    In questo nostro esempio, abbiamo modificato i bottoni delle Note a pie' pagina (Reference) perchè difettosi. Se li sostituite con questi, li avrete più funzionali all'esigenze della wiki italiana.


    Come fare il "ritorno a capo", all'interno dei bottincini

    Come avete visto nell'esempio appena dato, il ritorno a capo si scrive con questa formattazione:

    \n

    che è ben diversa dal <br> usato nelle pagine (questi infatti, funziona solo nelle pagine, non nel tag dei bottoncini).


    Link

    Per ulteriori esempi di bottoni extra, fare riferimento al link:


    Caricare i file immagini sul proprio server

    (Ricordiamo che, questo passaggio è "opzionale".)

    Potete farlo una per una, oppure, utilizzare la comoda Estensione di MultiUploader, che viene molto bene ora a questo scopo: vi è utile perchè le immagini dei bottoncini sono tante, e potrete così caricarle più facilmente tutte, in un solo passaggio.


    Ecco delle immagini per bottoncini, presenti su Commons wikimedia:


    File zip

    Vi forniamo in un unico file zippato le immagini più comuni ed usate, di questi famosi bottoncini User-MarkS.

    (Abbiamo messo quelli che noi reputiamo più utili).


    Modificare il percorso della cartella immagini

    Cercate poi, nel codice dell'Utente MarkS, la linea:


    • var Isrc='//upload.wikimedia.org/wikipedia/commons/';


    e, sostituite il percorso interno con quello della vostra cartella 'images' del vostro wiki, che è quella dove avete appunto uploadato le immagini.


    NOTA

    Oppure, potete lasciare quello di wikimedia, e sostituire i percorsi diretti solo per i singoli pulsanti, come abbiamo fatto noi, se sono pochi quelli che avete aggiunto e/o sostituito.


    Esempi

    Esempi di "Utente UserMarkS" modificato

    Vai a: UserMarkSextraeditbuttons.js - Esempio A.

    Vai a: UserMarkSextraeditbuttons.js - Esempio B.

    Vai a: UserMarkSextraeditbuttons.js - Esempio C.


    Esempi di "bottoniere" (toolbar) su Commons:



    UserMarkS ExtraEditButtons

    //Version: 3.1
    //============================================================
    // en: ADD SOME EXTRA BUTTONS TO THE EDITPANEL
    // de: FÜGE NEUE BUTTON IN DIE WERKZEUGLEISTE
    //============================================================
    // Vorschläge für neue Buttons werden gerne entgegengenommen
    // Die Reihenfolge und Anzahl der Buttons ist über die (alphabetische) Variable XEBOrder wählbar.
     
    //================================
    //Control Variables
    //
    //rmEditButtons - Removes standard toolbar buttons
    //XEBOrder - The order in which the buttons are displayed
     
    importStylesheetURI( '//en.wikipedia.org/w/index.php?title=User:MarkS/XEB/live.css&action=raw&ctype=text/css' );
     
    if(typeof XEBPopups== 'undefined')XEBPopups=true;
    if(typeof XEBHideDelay== 'undefined')XEBHideDelay=0.5; //Time before the popup disappears after the mouse moves out
    if(typeof XEBExtendEditSummary == 'undefined')XEBExtendEditSummary=true; // Is the edit summary extended after a popup
     
    //fills the variable mwCustomEditButtons (s. function in /wikibits.js), with buttons for the Toolbar  
    function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText){
    mwCustomEditButtons.push({
      "imageFile": imageFile,
      "speedTip": speedTip,
      "tagOpen": tagOpen,
      "tagClose": tagClose,
      "sampleText": sampleText});
    }
     
    if (typeof usersignature == 'undefined') var usersignature = '-- \~\~\~\~';
     
    var Isrc='//upload.wikimedia.org/wikipedia/commons/';
     
    // English Wikipedia creates 11 extra buttons which are stored in mwCustomEditButtons
    //  rather than mwEditButtons. However, there is no guarantee it will always be 11
    //  so we count them here. 
    var enExtraButtons=mwCustomEditButtons.length;
     
     
    var BDict={
    'A':['e/e9/Button_headline2.png','Secondary headline','\n===','===','Secondary headline'],
    'B':['1/13/Button_enter.png','Line break','<br />','',''],
    'C':['5/5f/Button_center.png','Center','<div style="text-align: center;">\n','\n<\/div>','Centred text'],
    'D':['e/ea/Button_align_left.png','Left-Align','<div style="text-align: left; direction: ltr; margin-left: 1em;">\n','\n<\/div>','Left-aligned text'],
    'D1':['a/a5/Button_align_right.png','Right-Align','<div style="text-align: right; direction: ltr; margin-left: 1em;">\n','\n<\/div>','Right-aligned text'],
    'E':['0/04/Button_array.png','Table','\n{| class="wikitable" \n|- \n| 1 || 2\n|- \n| 3 || 4','\n|}\n',''],
    'F':['1/1e/Button_font_color.png','Insert coloured text','<span style="color: ','">Coloured text<\/span>','ColourName'],
    'FS':['1/1b/Button_miss_signature.png','Unsigned post','{{subst:unsigned|','|date}}','user name or IP'],
    'G':['9/9e/Btn_toolbar_gallery.png','Picture gallery',"\n<gallery>\nImage:","|[[M63]]\nImage:Mona Lisa.jpg|[[Mona Lisa]]\nImage:Truite arc-en-ciel.jpg|Eine [[Forelle ]]\n<\/gallery>",'M63.jpg'],
    'H':['7/74/Button_comment.png','Comment',"<!--","-->",'Comment'],
    'I1':['6/6a/Button_sup_letter.png','Superscript','<sup>','<\/sup>','Superscript text'],
    'I2':['a/aa/Button_sub_letter.png','Subscript','<sub>','<\/sub>','Subscript text'],
    'J1':['5/58/Button_small.png','Small','<small>','<\/small>','Small Text'],
    'J2':['5/56/Button_big.png','Big text','<big>','<\/big>','Big text'],
    'K':['b/b4/Button_category03.png','Category',"[[Category:","]]",'Category name'],
    'L':['8/8e/Button_shifting.png','Insert tab(s)',':','',':'],
    'M':['f/fd/Button_blockquote.png','Insert block of quoted text','<blockquote style="border: 1px solid blue; padding: 2em;">\n','\n<\/blockquote>','Block quote'],
    'N':['4/4b/Button_nbsp.png','nonbreaking space','&nbsp;','',''],
    'O':['2/23/Button_code.png','Insert code','<code>','<\/code>','Code'],
    'P':['3/3c/Button_pre.png','Pre formatted Text','<pre>','<\/pre>','Pre formatted text'],
    'P1':['9/93/Button_sub_link.png','Insert link to sub-page','[[','/Sub_Page]]','Page'],
    'Q':['d/d3/Button_definition_list.png','Insert definition list','\n; ','\n: Item 1\n: Item 2','Definition'],
    'R':['7/79/Button_reflink.png','Insert a reference','<ref>','<\/ref>','Insert reference material'],
    'R1':['7/79/Button_reflink.png','Start a reference','<ref name="','','Reference name'],
    'R2':['9/99/Button_reflink_advanced_2.png','Insert reference material','">','</ref>','Reference material'],
    'R3':['1/1a/Button_reflink_advanced_3.png','No reference material','','"/>',''],
    'R4':['9/9a/Button_references.png','Reference footer',"\n==Notes==\n<!--See http://en.wikipedia.org/wiki/Wikipedia:Footnotes for an explanation of how to generate footnotes using the <ref(erences/)> tags-->\n<div class=\'references-small\'>\n<references/>\n</div>",'',''],
    'S':['c/c9/Button_strike.png','Strikeout','<s>','<\/s>','Struck out text'],
    'T':['e/eb/Button_plantilla.png','Template','{{','}}','Template name'],
    'TS':['a/a4/TableStart.png','Start a table','{|','',''],
    'TC':['7/71/TableCell.png','Table cell','|','',''],
    'TE':['0/06/TableEnd.png','End a table','','|}',''],
    'TR':['4/4c/TableRow.png','Start a table row','|-','',''],
    'T1':['3/30/Tt_icon.png','Teletype text','<tt>','<\/tt>','Teletype Text'],
    'TL':['3/37/Button_tl_template.png','Template link',"{{subst:"+"tl|",'}}','Template name'],
    'U':['f/fd/Button_underline.png','Underlined',"<u>","<\/u>",'Underlined text'],
    'V':['c/c8/Button_redirect.png','Redirect',"#REDIRECT [[","]]",'Article Name'],
    'W':['8/88/Btn_toolbar_enum.png','Numbering',"\n# ","\n# Element 2\n# Element 3",'Element 1'],
    'X':['1/11/Btn_toolbar_liste.png','List',"\n* ","\n* Element B\n* Element C",'Element A'],
    'Y1':['c/ce/Button_no_include.png','No Include',"<noinclude>","<\/noinclude>",'Text'],
    'Y2':['7/79/Button_include.png','Include only',"<includeonly>","<\/includeonly>",'Text'],
    'Z':['3/35/Button_substitute.png','Substitute',"{{subst:","}}",'Template'],
    'AI':['1/1c/Button_advanced_image.png','Advanaced Image',"[[Image:","|thumb|right|px|Caption]]",'FileName.jpg'],
    'GEO':['b/b8/Button_Globe.png','Geo location',"","",""],
    'TALK':['4/49/Button_talk.png','Add talk template',"","",""]
    };
     
    var XEBOrder2=[];
     
     
     
     
    addOnloadHook(initButtons);
    if(!wgIsArticle)// only if edit
    { 
     
    	if(XEBPopups)hookEvent("load", extendButtons);
    }
     
    function initButtons(){
     
    	var bc,d;
     
    	if (typeof XEBOrder!='string') // can be modified
    		XEBOrder2="A,D,C,D1,F,U,J1,E,G,Q,W,X,K,L,H,O,R,T".split(",");
    	else if (XEBOrder.toLowerCase()=='all') 
    		for (b in BDict) XEBOrder2.push(b);
    	else XEBOrder2=XEBOrder.toUpperCase().split(",");
     
    	for (b in BDict) BDict[b][0] = Isrc+BDict[b][0]; // // Add the start of the URL (Isrc) to the XEB buttons
    	// If the user has defined any buttons then add them into the available button lists 
     
    	if (typeof myButtons=='object')
    	  for (b in myButtons) BDict[b] = myButtons[b];	// custom user buttons
    	// Add the media wiki standard buttons into the available buttons 
     
    	for (b in mwEditButtons) { // add standard buttons for full XEB order changing
     
    	//	BDict[b]=[];
    BDict[b]=[mwEditButtons[b].imageFile,mwEditButtons[b].speedTip,mwEditButtons[b].tagOpen,mwEditButtons[b].tagClose,mwEditButtons[b].sampleText];
     
    //		for (d in mwEditButtons[b]) BDict[b].push(mwEditButtons[b][d]);
    	}
     
    	// Build the new buttons 
     
    	for (i=0;i<XEBOrder2.length;i++) {
    		bc = BDict[XEBOrder2[i]];
     
    		//Check if bc is an object 
    		// - protects if user specified a non-existant buttons
    		// - IE causes a javascript error when viewing a page
    		if(typeof bc=='object')
    		{
     
    			//Call addCustomButton in wikibits
    			addCustomButton(bc[0],bc[1],bc[2],bc[3],bc[4]);
    		}
    	}
     
    	// Remove the default buttons (if requested by the user)
    	eraseButtons();
    }
     
     
    /** en: Removes arbitrary standard buttons from the toolbar
    * @author: [[:de:User:Olliminatore]]
    * @version: 0.1 (01.10.2006) **/
     
    function eraseButtons(){
     
    	//Remove the buttons the user doesn't want
     
    	if(typeof rmEditButtons!='object') return;
     
    	if (typeof rmEditButtons[0] == 'string' && rmEditButtons[0].toLowerCase() == 'all') 
    	{
    		mwEditButtons=[];
    		for(i=0;i<enExtraButtons;i++){mwCustomEditButtons.shift();}
    	}
    	//Sort the user's requests so we remove the button with the highest index first
    	//- This ensures we remove the buttons the user expects whatever order he requested the buttons in
    	rmEditButtons.sort(sortit);
     
    	//Remove individual buttons the user doesn't want 
     
    	for(i=0;i<rmEditButtons.length;i++){
    		var n=rmEditButtons[i];
    		//Standard Wikimedia buttons
    		if(n>=0 && n<mwEditButtons.length){
    			if(n<mwEditButtons.length){
    				var x = -1;
    				while((++x)<mwEditButtons.length)
    					if(x>=n)
    						mwEditButtons[x] = mwEditButtons[x+1];
    			}
    		mwEditButtons.pop();
    		}
    		//Extra buttons in English Wikipedia
    		n=n-mwEditButtons.length;
    		if(n>0 && n<mwCustomEditButtons.length){
    		if(n<mwCustomEditButtons.length){
    				var x = -1;
    				while((++x)<mwCustomEditButtons.length)
    					if(x>=n)
    						mwCustomEditButtons[x] = mwCustomEditButtons[x+1];
    			}
    		mwCustomEditButtons.pop();
    		}
    	}
    };
     
    //Function:
    //	sortit
    //Purpose:
    //	Used to sort the rmEditButtons array into descending order
    function sortit(a,b){
    	return(b-a)
    }
     
     
    //Function:
    //Purpose:
    //	Adds extended onclick-function to some buttons 
    function extendButtons(){
     
    	if(!(allEditButtons = document.getElementById('toolbar'))) return false;
    	if(typeof editform != 'undefined')
    		if(!(window.editform = document.forms['editform'])) return false;
     
    	//  table
    	extendAButton(Isrc+"0/04/Button_array.png",XEBPopupTable)
    	extendAButton(Isrc+"7/79/Button_reflink.png",XEBPopupRef)
    	extendAButton(Isrc+"b/b8/Button_Globe.png",XEBPopupGeoLink)
    	extendAButton(Isrc+"4/49/Button_talk.png",XEBPopupTalk)
    	extendAButton(Isrc+"1/1c/Button_advanced_image.png",XEBPopupImage)
    	//extendAButton(Isrc+"6/6a/Button_sup_letter.png",XEBPopupFormattedText)
     
    	// redirect -##IE doesn't like this line. Object doesn't support this property or method
    	//c=XEBOrder2.getIndex('V');
     
    //	if(c != -1)
    //		allEditButtons[bu_len+c].onclick=function(){
    //		var a='#REDIRECT \[\['+prompt("Which page do you want to redirect to\?")+'\]\]';
    //		document.editform.elements['wpTextbox1'].value=a;
    //		document.editform.elements['wpSummary'].value=a;
    //		document.editform.elements['wpWatchthis'].checked=false
    //  };
    };
     
    function extendAButton(url,newfunc)
    {
    	if(!(allEditButtons = document.getElementById('toolbar'))) return false;
    	if(typeof editform != 'undefined')
    		if(!(window.editform = document.forms['editform'])) return false;
    	allEditButtons = allEditButtons.getElementsByTagName('img');
    	for(i=0;i<allEditButtons.length;i++)
    	{
    		if(allEditButtons[i].src==url)
    		{
    			allEditButtons[i].onclick=newfunc;
    		}
    	}
    }
     
    //==========================================================================================================
    // General purpose popup code
    //==========================================================================================================
     
    function getXEBPopupDiv(name)
    {
    	XEBMainDiv= document.getElementById("XEB");
    	if(XEBMainDiv==null){
    		XEBMainDiv=document.createElement("div");
    		document.body.appendChild(XEBMainDiv);
    		XEBMainDiv.id="XEB";
    	}
     
    	me= document.getElementById("XEBPopup" & name);
    	if(!(me==null))return me;
    	me=document.createElement("div");
    	XEBMainDiv.appendChild(me);
     
    	me.id="XEBPopup";
    	me.style.position='absolute';
    	me.display='none';
    	me.visibility='hidden';
    	me.onmouseout=CheckHideXEBPopup;
    	me.onmouseover=cancelHidePopup;
    	return me;
    }
     
    //Function:
    //	CheckHideXEBPopup
    //Purpose:
    //	Looks at the cursor position and if it has moved outside the popup it will close the popup
    //Called:
    //	When the onMouseEvent is fired on the popup
     
    function CheckHideXEBPopup(e){
    	m= document.getElementById("XEBmnu");
    	if(is_gecko)
    	{
    		ph=m.offsetHeight;
    		var x=e.clientX + window.scrollX;
    		var y=e.clientY + window.scrollY;;
    		s=window.getComputedStyle(m,"");
    		ph=s.height;
    		ph=Number(ph.substring(0,ph.length-2));
    	}
    	else
    	{
    		var x=event.clientX+ document.documentElement.scrollLeft + document.body.scrollLeft;
    		var y=event.clientY+ document.documentElement.scrollTop + document.body.scrollTop;
    		ph=m.offsetHeight;
    	}
    	pl=curPopup.x;
    	pt=curPopup.y;
    	pw=m.style.width;
    	pw=Number(pw.substring(0,pw.length-2));
     
    	if(x>(pl+2)&&x<(pl+pw-5)&&y>(pt+2)&&y<(pt+ph-5))return;
    	curPopup.hideTimeout=setTimeout('hideXEBPopup()',XEBHideDelay*1000);
    }
     
    function cancelHidePopup()
    {
    	clearTimeout(curPopup.hideTimeout)
    }
     
    function hideXEBPopup(){
    	XEBMainDiv= document.getElementById("XEB");
    	m= document.getElementById("XEBPopup");
    	XEBMainDiv.removeChild(m);
    }
     
    function XEBstartDrag(e)
    {
    	m=new GetPos(e||event);
    	curPopup.startDrag.mouse=m;
    	curPopup.startDrag.floatpopup.y=parseInt(curPopup.div.style.top);
    	curPopup.startDrag.floatpopup.x=parseInt(curPopup.div.style.left);
    	curPopup.dragging=true;
    }
     
    function XEBstopDrag(e)
    {
    	if(curPopup.dragging==false)return;
    	curPopup.dragging=false;
    }
     
    function XEBDrag(e)
    {
    	if(curPopup.dragging==false)return;
     
    	m=new GetPos(e||event);
    	x=parseInt(curPopup.startDrag.floatpopup.x+(m.x-curPopup.startDrag.mouse.x));
    	y=parseInt(curPopup.startDrag.floatpopup.y+(m.y-curPopup.startDrag.mouse.y));
     
    	curPopup.div.style.top=y+"px";
    	curPopup.div.style.left=x+"px";
     
    	curPopup.x=x;
    	curPopup.y=y;
    }
     
    //=============================================================================
    // Popup: Table
    //=============================================================================
     
    function XEBPopup(name,x,y)
    {
    	// Make sure the popup can appear on the screen
     
    	this.IESelectedRange=XEBgetIESelectedRange();
     
    	winW=(is_gecko)?window.innerWidth:document.body.offsetWidth;
    	if((winW-this.width)<x)x=(winW-this.width);
     
    	this.div=getXEBPopupDiv(name);
    	this.div.style.zIndex=2000;
    	this.div.display="inline";
    	this.div.visibility="visible";
    	this.div.style.top=y + "px";
    	this.x=x;
    	this.y=y;
    	this.name=name;
     
    	this.startDrag=new Object;
    	this.startDrag.floatpopup=new Object;
    }
     
    function setInnerHTML(text)
    {
    	winW=(is_gecko)?window.innerWidth:document.body.offsetWidth;
    	if((winW-this.width)<this.x)this.x=(winW-this.width);
    	this.div.style.left=this.x+ "px";
     
    	mt="<div id='XEBmnu' style='width:" + this.width + "px' >";
    	mt+='<div id="XEBmnuTitle" class="XEBPopupTitle" onmousedown="XEBstartDrag(event)" onmouseup="XEBstopDrag(event)" onmousemove="XEBDrag(event)">Title</div>'
    	mt+=text;
    	mt+="</div>";
    	this.div.innerHTML=mt;
    //Turn off autocomplete. If the mouse moves over the autocomplete popup then x,y in CheckHidePopup is relative to the
    // autocomplete popup and our popup is hidden
    	var InTexts = this.div.getElementsByTagName('input');
    	for (var i = 0; i < InTexts.length; i++) {
            	var theInput = InTexts[i];
    		if (theInput.type == 'text'){theInput.setAttribute('autocomplete','off');}
    	}
    //Add rollover features to menu items. Doing it here means we don't have to do it for each menu
    	x=XEBgetElementsByClassName(this.div,'XEBMnuItm','span');
    	for (var i = 0; i < x.length; i++) {
            	var theItm = x[i];
    		theItm.onmouseout=XEBMenuMouseOut;
    		theItm.onmouseover=XEBMenuMouseOver;
    	}
     
    	this.div.style.borderWidth='thin';
    	this.div.style.borderStyle='solid';
    	this.div.style.backgroundColor='#D0D0D0';
    }
    XEBPopup.prototype.width=250;
    XEBPopup.prototype.dragging=false;
    XEBPopup.prototype.setInnerHTML=setInnerHTML;
     
    var curPopup;
     
    function GetPos(e)
    {
    	this.x=e.clientX-10+ document.documentElement.scrollLeft + document.body.scrollLeft;
    	this.y=e.clientY-10+ document.documentElement.scrollTop + document.body.scrollTop;
    }
     
    function XEBPopupTable(e){
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("table",m.x,m.y);
     
    	mt='<p>Enter the table parameters below: <\/p>'
    		+'<form name="XEBPopupTableForm">'
    		+'Table caption: <input type="checkbox" name="inputCaption"><p\/>'
    		+'Table alignment: center<input type="checkbox" name="inputAlign"><p\/>'
    		+'Table headline: colored<input type="checkbox" name="inputHead"><p\/>'
    		+'Number of rows: <input type="text" name="inputRow" value="3" size="2"><p\/>'
    		+'Number of columns: <input type="text" name="inputCol" value="3" size="2"><p\/>'
    		//+'Alternating grey lines: <input type="checkbox" name="inputLine" checked="1" ><p\/>'
    		+'Item column: <input type="checkbox" name="inputItems" ><p\/>'
    		+'Sortable: <input type="checkbox" name="inputSort" ><p\/>'
    		+'<\/form>'
    		+'<i>The default table allows for fields and values only.<\/i><p\/>'
    		+'Check "Item column" to allow for the table to have fields, items, and values.<\/i><p\/>'
    		+'<p><button onClick="javascript:insertTableCode()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>'
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
     
    function insertTableCode(){
    	f=document.XEBPopupTableForm;
    	var caption = (f.inputCaption.checked)?"|+ TABLE CAPTION \n":""; 
    	var exhead = (f.inputHead.checked)?'|- style="background: #DDFFDD;"\n':""; 
    	var nbRow = parseInt(f.inputRow.value); 
    	var nbCol = parseInt(f.inputCol.value); 
    	var exfield = f.inputItems.checked; 
    	var align = (f.inputAlign.checked)?'align="center"':""; 
     
    	//generateTable(caption, exhead, nbCol, nbRow, exfield, align);
     
    	var code = "\n";
    	code += '{| {{prettytable}} ' + align + ' '; // en: class="wikitable"
    	code+=(f.inputSort.checked)?'class="sortable" \n':'\n';
    	code += caption + exhead;
    	if (exfield) code += '!\n';
    	for (i=1;i<nbCol+1;i++) code += '! FELD ' + i + '\n';
    	var items = 0;
    	for (var j=0;j<nbRow;j++){
    		if (exfield) { 
    			items++;
    			code += '|-\n! style="background: #FFDDDD;"|ITEM ' + items + '\n';
    		}	else code += '|-\n';
    		for (i=0;i<nbCol;i++) code += '| Element\n';
    	}
    	code += '|}\n';
    	hideXEBPopup();
    	insertTags('','', code);
    	extendSummary('table');
     
    	return false;
    }  
     
    // Get the text currently selected by user in the textAra
    // This code is based on part of the insertTags function in wikibits.js
     
    function XEBGetSelectedText()
    {
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
     
    		txtarea = areas[0];
    	}
    	// IE & Opera
    	if (document.selection  && !is_gecko)
    	{
    		var theSelection = document.selection.createRange().text;
    		if (!theSelection) theSelection='';
    	}
    	// Mozilla
    	else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
    		var replaced = false;
    		var startPos = txtarea.selectionStart;
    		var endPos = txtarea.selectionEnd;
    		var theSelection = (txtarea.value).substring(startPos, endPos);
    		if (!theSelection) theSelection='';
    	}
    	return theSelection;
    }
     
    //Notes:
    //	IE loses the cursor position in the textarea when the popup is used. 
    //	So we save the cursor position here
    function XEBgetIESelectedRange(){
    	var IESel=new Object;
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
     
    		txtarea = areas[0];
    	}
    	// IE & Opera
     
    	if (document.selection  && !is_gecko)
    	{
    		txtarea.focus();
    		IESel.Rng=document.selection.createRange();
    		return IESel;
    	}
    }
     
    function XEBinsertText(beforeText,selText,afterText,IESelectedRange) {
    	var newText=beforeText + selText + afterText;
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
    		txtarea = areas[0];
    	}
     
    	// IE
    	if (document.selection  && !is_gecko) {
     
    		tr=IESelectedRange.Rng;
    		tr.text=newText;
    		txtarea.focus();
    		//txtarea.caretpos=tr.duplicate();
    		tr.select();
     
    		return;
     
    	// Mozilla
    	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
    		var replaced = false;
    		var startPos = txtarea.selectionStart;
    		var endPos = txtarea.selectionEnd;
     
    		if (endPos-startPos) {
    			replaced = true;
    		}
    		var scrollTop = txtarea.scrollTop;
    //		var myText = (txtarea.value).substring(startPos, endPos);
    //		if (!myText) {
    //			myText=sampleText;
    //		}
    //		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
    //			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
    //		} else {
    //			subst = tagOpen + myText + tagClose;
    //		}
    		txtarea.value = txtarea.value.substring(0, startPos) + newText +
    			txtarea.value.substring(endPos, txtarea.value.length);
    		txtarea.focus();
    		//set new selection
    		if (!replaced) {
    			var cPos = startPos+(newText.length);
    			txtarea.selectionStart = cPos;
    			txtarea.selectionEnd = cPos;
    		} else {
    			txtarea.selectionStart = startPos+beforeText.length;
    			txtarea.selectionEnd = startPos+beforeText.length+selText.length;
    		}
    		txtarea.scrollTop = scrollTop;
     
    	// All other browsers get no toolbar.
    	// There was previously support for a crippled "help"
    	// bar, but that caused more problems than it solved.
    	}
    	// reposition cursor if possible
    	if (txtarea.createTextRange) {
     
    		txtarea.caretPos = document.selection.createRange().duplicate();
    //txtarea.caretPos =IESelectedRange.Rng;
    	}
    txtarea.focus();
    }
     
     
    //============================================================
    // Table generator 
    //============================================================
    /** en: Generate an array using Mediawiki syntax
    * @author: originally from fr:user:dake
    * @version: 0.2 */
    function generateTable(caption, exhead, nbCol, nbRow, exfield, align){
     
    };
     
     
    function XEBPopupRef(e){
     
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("ref",m.x,m.y);
    	curPopup.width=500;
    	mt='<p>Enter the reference parameters below: <\/p>'
    		+'<form name="XEBPopupRefForm">'
    		+'Name:<input type="text" name="refName" value="" size="10"><p\/>'
    		+'Material:<input type="text" name="refMaterial" value="' + XEBGetSelectedText() + '" size="20">'
    		+'<\/form>'
    		+'<p><button onClick="javascript:insertRef()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
    //	document.XEBPopupRefForm.refName.focus();
    	return true;
    }
     
    function insertRef(){
    	f=document.XEBPopupRefForm;
    	var refName = f.refName.value;
    	var refMaterial=f.refMaterial.value;
     
    	hideXEBPopup();
    	var code1='<ref';
    	code1+=(refName)?' name="'+refName+'">':'>'; 
    	code2=refMaterial;
    	code3='<\/ref>'
    	XEBinsertText(code1,code2,code3,curPopup.IESelectedRange);
     
    	extendSummary('ref');
    	return false;
    } 
     
    //===GEO LINK Function==================================================
     
    function XEBPopupGeoLink(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("geo",m.x,m.y);
    	curPopup.width=300;
    	mt='<p>Enter the location parameters below: <\/p>'
    		+'<form name="XEBPopupGeoLinkForm">'
    		+'Loction:<p\/>'
    		+'<table style="background: transparent;">'
    		+'<tr><td>Latitude:<\/td><td><input type="text" autocomplete="off" name="geoLatDeg" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLatMin" size="4"><\/td>'
    		+'<td><input type="text" name="geoLatSec" size="4"><\/td>'
    		+'<td><select name="geoLatNS"><option value="N">N<option value="S">S</select><\/td><\/tr>'
    		+'<tr><td>Longitude:<\/td><td><input type="text" name="geoLonDeg" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLonMin" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLonSec" value="" size="4"><\/td>'
    		+'<td><select name="geoLonEW"><option value="E">E<option value="W">W</select><\/td><\/tr>'
    		+'<\/table>'
    		+'Region:<input type="text" name="geoRegion" value="" size="4"><p\/>'
    		+'Type:'
    		+'<SELECT NAME="geoType" size="5">'
    		+'<OPTION VALUE="country">Country<OPTION VALUE="state">State'
    		+'<OPTION VALUE="adm1st">Admin unit, 1st level<OPTION VALUE="adm2st">Admin unit, 2nd level'
    		+'<OPTION VALUE="city">City<OPTION VALUE="airport">Airport'
    		+'<OPTION VALUE="mountain">Mountain<OPTION VALUE="isle">Isle'
    		+'<OPTION VALUE="waterbody">Waterbody<OPTION VALUE="landmark" SELECTED>Landmark'
    		+'<OPTION VALUE="forest">forest</SELECT><br>'
    		+'Title: <input type="checkbox" name="geoTitle" ><p\/>'
    		+'<\/form>'
    		+'<p><button onClick="javascript:insertGeoLink()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
    	document.paramForm.refName.focus();
    	return true;
     
    }
    function insertGeoLink()
    {
    	f=document.XEBPopupGeoLinkForm;
     
    	var code='{{Coor ';
    	if(f.geoTitle.checked)code+='title ';
    	ft='dms';
    	if(f.geoLatSec.value==''&&f.geoLonSec.value=='')ft='dm';
    	if(ft=='dm'&&f.geoLatMin.value==''&&f.geoLonMin.value=='')ft='d';
    	code+=ft;
    	code+='|'+f.geoLatDeg.value;
    	code+=(ft=='dm'||ft=='dms')?'|'+f.geoLatMin.value:'';
    	code+=(ft=='dms')?'|'+f.geoLatSec.value:'';
    	code+='|'+f.geoLatNS.value;
    	code+='|'+f.geoLonDeg.value;
    	code+=(ft=='dm'||ft=='dms')?'|'+f.geoLonMin.value:'';
    	code+=(ft=='dms')?'|'+f.geoLonSec.value:'';
    	code+='|'+f.geoLonEW.value;
    	code+='|type:'+f.geoType.value+'_region:'+f.geoRegion.value
    	code+='}}';
    	insertTags('','', code);
    	extendSummary('geo-location');
    	hideXEBPopup();
    	return false;
    }
     
    //===Talk Page entry Function===========================================
     
    function XEBPopupTalk(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("talk",m.x,m.y);
    	curPopup.width=200;
    	mt='<div style="font-size:medium"><p>Please choose:<\/p>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(1)">Test1<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(2)">Self Test<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(3)">Nonsense<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(4)">Please stop<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(5)">Last chance<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(6)">Blanking<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(7)">Blatant<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(8)">*BLOCKED*<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(9)">Spam<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(10)">Npov<\/span></div>'
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
     
    }
    function XEBInsertTalk(itm)
    {
    	hideXEBPopup();
    	if(itm==1)code='{{subst:test1-n|}}';
    	if(itm==2)code='{{subst:selftest-n|}}';
    	if(itm==3)code='{{subst:test2-n|}}';
    	if(itm==4)code='{{subst:test3-n|}}';
    	if(itm==5)code='{{subst:test4-n|}}';
    	if(itm==6)code='{{subst:test2a-n|}}';
    	if(itm==7)code='{{subst:bv-n|}}';
    	if(itm==8)code='{{subst:blantant|}}';
    	if(itm==9)code='{{subst:spam-n|}}';
    	if(itm==10)code='{{subst:NPOV user}}';
     
    	insertTags('','', code);
    	return false;
    }
    function XEBPopupImage(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("image",m.x,m.y);
    	curPopup.width=300;
     
    	mt='<p>Enter the image parameters below: <\/p>'
    		+'<form name="XEBPopupImageForm">'
    		+'File:<input type="text" name="imgFile" value="' + XEBGetSelectedText() + '" size="30"><br>'
    		+'Type:<SELECT NAME="imgType">'
    		+'<OPTION VALUE="thumb">Thumbnail'
    		+'<OPTION VALUE="frame">Frame'
    		+'<OPTION VALUE="none">[not specified]'
    		+'</SELECT><br>'
    		+'Location:<SELECT NAME="imgLocation">'
    		+'<OPTION VALUE="left">Left'
    		+'<OPTION VALUE="center">Centre'
    		+'<OPTION VALUE="right">Right'
    		+'<OPTION VALUE="none">None'
    		+'</SELECT><br>'
    		+'Size:<input type="text" name="imgSize" value="100" size="3">px<br>'
    		+'Caption:<input type="text" name="imgCaption" value="" size="30"><\/p>'
    		+'<\/form>'
    		+'<p><button onClick="javascript:XEBInsertImage()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
    function XEBInsertImage()
    {
    	f=document.XEBPopupImageForm;
    	hideXEBPopup();
    	var code='[[Image:';
    	code+=f.imgFile.value;
    	code+='|'+f.imgType.value;
    	code+='|'+f.imgLocation.value;
    	code+='|'+f.imgSize.value;
    	code+='|'+f.imgCaption.value;
    	code+=']]';
    	insertTags('','', code);
    	extendSummary('image');
     
    	return false;
    }
     
    function XEBPopupFormattedText(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("image",m.x,m.y);
    	curPopup.width=300;
     
    	mt='<form name="XEBPopupImageForm">'
    		+'<table  style="background: transparent;">'
    		+'<tr><td>Bold:<\/td><td><input type="checkbox" name="textBold"><\/td>'
    		+'<td>Superscript:<\/td><td><input type="checkbox" name="textSuperscript"><\/td><\/tr>'
    		+'<tr><td>Italic:<\/td><td><input type="checkbox" name="textItalic"><\/td>'
    		+'<td>Subscript:<\/td><td><input type="checkbox" name="textSubscript"><\/td><\/tr>'
    		+'<tr><td>Strike:<\/td><td><input type="checkbox" name="textStrike"><\/td>'
    		+'<td>&nbsp;<\/td><\/tr>'
    		+'</table>'
    		+'Size:<SELECT NAME="textSize">'
    		+'<OPTION VALUE="small">small'
    		+'<OPTION VALUE="normal">[Normal]'
    		+'<OPTION VALUE="big">big'
    		+'</SELECT><br><table style="background:transparent;"><tr><td>Colour:<\/td><td>'
    		+'<table width="100px">'
    		+'<tr><td colspan="4">None<\/td></tr>'
    		+'<tr><td bgcolor="aqua">&nbsp;<\/td><td bgcolor="gray"> &nbsp;<\/td>'
    		+'<td bgcolor="olive">&nbsp;<\/td><td bgcolor="navy">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="black">&nbsp;<\/td><td bgcolor="green"> &nbsp;<\/td>'
    		+'<td bgcolor="purple">&nbsp;<\/td><td bgcolor="teal">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="blue">&nbsp;<\/td><td bgcolor="lime">&nbsp;<\/td>'
    		+'<td bgcolor="red">&nbsp;<\/td><td bgcolor="white">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="fuchsia">&nbsp;<\/td><td bgcolor="maroon">&nbsp;<\/td>'
    		+'<td bgcolor="silver">&nbsp;<\/td><td bgcolor="yellow">&nbsp;<\/td><\/tr>'
    		+'</table><\/td><\/tr>'
    		+'<\/form>'
    		+'Sample:'
    		+'<span id="sampleText">Text</span>"'
    		+'<p><button onClick="javascript:XEBInsertFormattedText()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
     
    function XEBUpdateSampleText()
    {
    	f=document.XEBPopupImageForm;
    }
     
    //====================
     
    function XEBMenuMouseOut(e)
    {
    	var targ;
    	if (!e) var e = window.event;
    	if (e.target) targ = e.target;
    	else if (e.srcElement) targ = e.srcElement;
     
    	targ.style.color='black';
    }
     
    function XEBMenuMouseOver(e)
    {	var targ;
    	if (!e) var e = window.event;
    	if (e.target) targ = e.target;
    	else if (e.srcElement) targ = e.srcElement;
     
    	targ.style.color='red';
    }
     
    //=======================================================================
    // Other functions
    //=======================================================================
     
    function XEBgetElementsByClassName(parent,clsName,htmltag){ 
    	var arr = new Array(); 
    	var elems = parent.getElementsByTagName(htmltag);
    	for ( var cls, i = 0; ( elem = elems[i] ); i++ ){
    		if ( elem.className == clsName ){
    			arr[arr.length] = elem;
    		}
    	}
    	return arr;
    }
     
    function extendSummary(newText)
    {
    	if(!XEBExtendEditSummary)return;
    	s=document.editform.elements['wpSummary'].value;
    	s+=(s=='')?newText:' +'+newText;
    	document.editform.elements['wpSummary'].value=s;
    }
     
    function bug(msg)
    {
    	if(wgUserName=='MarkS')alert(msg);
    }



    Esempio di UserMarkS


    Se usate questo esempio, la Bottoniera vi apparirà così (clicca sull'immagine, per ingrandire):


    Bottoniera usata sulla wiki di Naturpedia


    Code

    //Version: 3.1
    //============================================================
    // en: ADD SOME EXTRA BUTTONS TO THE EDITPANEL
    // de: FÜGE NEUE BUTTON IN DIE WERKZEUGLEISTE
    //============================================================
    // Vorschläge für neue Buttons werden gerne entgegengenommen
    // Die Reihenfolge und Anzahl der Buttons ist über die (alphabetische) Variable XEBOrder wählbar.
     
    //================================
    //Control Variables
    //
    //rmEditButtons - Removes standard toolbar buttons
    //XEBOrder='0,1,2,3,4,5,6,7,8,9,10,A,B,D,C,D1,F,TS,TR,TE,AI,Z,I1,I2,K,L,M,H,O,R,R4,T,V,FS,N,GEO'; - The order in which the buttons are displayed
     
    XEBOrder='FS,L,J2,F,A,B,TC,T,Y2,Y1,H,O,P,D,C,D1,J1,I1,I2,S,U,K,W,X,M,R2,R4,E,G,N';
    rmEditButtons=['6'];
    myButtons=[];
     
    importStylesheetURI( 'http://en.wikipedia.org/w/index.php?title=User:MarkS/XEB/live.css&action=raw&ctype=text/css' );
     
    if(typeof XEBPopups== 'undefined')XEBPopups=true;
    if(typeof XEBHideDelay== 'undefined')XEBHideDelay=0.5; //Time before the popup disappears after the mouse moves out
    if(typeof XEBExtendEditSummary == 'undefined')XEBExtendEditSummary=true; // Is the edit summary extended after a popup
     
    //fills the variable mwCustomEditButtons (s. function in /wikibits.js), with buttons for the Toolbar  
    function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText){
    mwCustomEditButtons.push({
      "imageFile": imageFile,
      "speedTip": speedTip,
      "tagOpen": tagOpen,
      "tagClose": tagClose,
      "sampleText": sampleText});
    }
     
    if (typeof usersignature == 'undefined') var usersignature = '-- \~\~\~\~';
     
    var Isrc='//upload.wikimedia.org/wikipedia/commons/';
     
    // English Wikipedia creates 11 extra buttons which are stored in mwCustomEditButtons
    //  rather than mwEditButtons. However, there is no guarantee it will always be 11
    //  so we count them here. 
    var enExtraButtons=mwCustomEditButtons.length;
     
     
    var BDict={
    'A':['e/e9/Button_headline2.png','Paragrafo di secondo livello','\n===','===','Secondary headline'],
    'B':['1/13/Button_enter.png','Interruzione di linea','<br />','',''],
    'C':['5/5f/Button_center.png','Centrato','<div style="text-align: center;">\n','\n<\/div>','Centred text'],
    'D':['e/ea/Button_align_left.png','Allineato a sinistra','<div style="text-align: left; direction: ltr; margin-left: 1em;">\n','\n<\/div>','Left-aligned text'],
    'D1':['a/a5/Button_align_right.png','Allineato a destra','<div style="text-align: right; direction: ltr; margin-left: 1em;">\n','\n<\/div>','Right-aligned text'],
    'E':['0/04/Button_array.png','Tabella','\n{| class="wikitable" \n|- \n| 1 || 2\n|- \n| 3 || 4','\n|}\n',''],
    'F':['1/1e/Button_font_color.png','Inserisci testo colorato','<span style="color: ','">Coloured text<\/span>','ColourName'],
    'FS':['1/1b/Button_miss_signature.png','Post non firmato','{{subst:unsigned|','|date}}','user name or IP'],
    'G':['9/9e/Btn_toolbar_gallery.png','Galleria immagini',"\n<gallery>\nImage:","|[[M63]]\nImage:Mona Lisa.jpg|[[Mona Lisa]]\nImage:Truite arc-en-ciel.jpg|Eine [[Forelle ]]\n<\/gallery>",'M63.jpg'],
    'H':['7/74/Button_comment.png','Commento',"<!--","-->",'Comment'],
    'I1':['6/6a/Button_sup_letter.png','Soprascritto','<sup>','<\/sup>','Superscript text'],
    'I2':['a/aa/Button_sub_letter.png','Subscritto','<sub>','<\/sub>','Subscript text'],
    'J1':['5/58/Button_small.png','Testo piccolo','<small>','<\/small>','Small Text'],
    'J2':['5/56/Button_big.png','Testo grande','<big>','<\/big>','Big text'],
    'K':['b/b4/Button_category03.png','Category',"[[Category:","]]",'Category name'],
    'L':['8/8e/Button_shifting.png','Insert tab(s)',':','',':'],
    'M':['f/fd/Button_blockquote.png','Insert block of quoted text','<blockquote style="border: 1px solid blue; padding: 2em;">\n','\n<\/blockquote>','Block quote'],
    'N':['4/4b/Button_nbsp.png','nonbreaking space','&nbsp;','',''],
    'O':['2/23/Button_code.png','Insert code','<code>','<\/code>','Code'],
    'P':['3/3c/Button_pre.png','Pre formatted Text','<pre>','<\/pre>','Pre formatted text'],
    'P1':['9/93/Button_sub_link.png','Insert link to sub-page','[[','/Sub_Page]]','Page'],
    'Q':['d/d3/Button_definition_list.png','Insert definition list','\n; ','\n: Item 1\n: Item 2','Definition'],
    'R':['7/79/Button_reflink.png','Insert a reference','<ref>','<\/ref>','Insert reference material'],
    'R1':['7/79/Button_reflink.png','Start a reference','<ref name="','','Reference name'],
    'R2':['9/99/Button_reflink_advanced_2.png','Insert reference material','">','</ref>','Reference material'],
    'R3':['1/1a/Button_reflink_advanced_3.png','No reference material','','"/>',''],
    'R4':['9/9a/Button_references.png','Reference footer',"\n==Notes==\n<!--See http://en.wikipedia.org/wiki/Wikipedia:Footnotes for an explanation of how to generate footnotes using the <ref(erences/)> tags-->\n<div class=\'references-small\'>\n<references/>\n</div>",'',''],
    'S':['c/c9/Button_strike.png','Strikeout','<s>','<\/s>','Struck out text'],
    'T':['e/eb/Button_plantilla.png','Template','{{','}}','Template name'],
    'TS':['a/a4/TableStart.png','Start a table','{|','',''],
    'TC':['7/71/TableCell.png','Table cell','|','',''],
    'TE':['0/06/TableEnd.png','End a table','','|}',''],
    'TR':['4/4c/TableRow.png','Start a table row','|-','',''],
    'T1':['3/30/Tt_icon.png','Teletype text','<tt>','<\/tt>','Teletype Text'],
    'TL':['3/37/Button_tl_template.png','Template link',"{{subst:"+"tl|",'}}','Template name'],
    'U':['f/fd/Button_underline.png','Underlined',"<u>","<\/u>",'Underlined text'],
    'V':['c/c8/Button_redirect.png','Redirect',"#REDIRECT [[","]]",'Article Name'],
    'W':['8/88/Btn_toolbar_enum.png','Numbering',"\n# ","\n# Element 2\n# Element 3",'Element 1'],
    'X':['1/11/Btn_toolbar_liste.png','List',"\n* ","\n* Element B\n* Element C",'Element A'],
    'Y1':['c/ce/Button_no_include.png','No Include',"<noinclude>","<\/noinclude>",'Text'],
    'Y2':['7/79/Button_include.png','Include only',"<includeonly>","<\/includeonly>",'Text'],
    'Z':['3/35/Button_substitute.png','Substitute',"{{subst:","}}",'Template'],
    'AI':['1/1c/Button_advanced_image.png','Advanaced Image',"[[Image:","|thumb|right|px|Caption]]",'FileName.jpg'],
    'GEO':['b/b8/Button_Globe.png','Geo location',"","",""],
    'TALK':['4/49/Button_talk.png','Add talk template',"","",""]
    };
     
    var XEBOrder2=[];
     
     
     
     
    addOnloadHook(initButtons);
    if(!wgIsArticle)// only if edit
    { 
     
    	if(XEBPopups)hookEvent("load", extendButtons);
    }
     
    function initButtons(){
     
    	var bc,d;
     
    	if (typeof XEBOrder!='string') // can be modified
    		XEBOrder2="A,D,C,D1,F,U,J1,E,G,Q,W,X,K,L,H,O,R,T".split(",");
    	else if (XEBOrder.toLowerCase()=='all') 
    		for (b in BDict) XEBOrder2.push(b);
    	else XEBOrder2=XEBOrder.toUpperCase().split(",");
     
    	for (b in BDict) BDict[b][0] = Isrc+BDict[b][0]; // // Add the start of the URL (Isrc) to the XEB buttons
    	// If the user has defined any buttons then add them into the available button lists 
     
    	if (typeof myButtons=='object')
    	  for (b in myButtons) BDict[b] = myButtons[b];	// custom user buttons
    	// Add the media wiki standard buttons into the available buttons 
     
    	for (b in mwEditButtons) { // add standard buttons for full XEB order changing
     
    	//	BDict[b]=[];
    BDict[b]=[mwEditButtons[b].imageFile,mwEditButtons[b].speedTip,mwEditButtons[b].tagOpen,mwEditButtons[b].tagClose,mwEditButtons[b].sampleText];
     
    //		for (d in mwEditButtons[b]) BDict[b].push(mwEditButtons[b][d]);
    	}
     
    	// Build the new buttons 
     
    	for (i=0;i<XEBOrder2.length;i++) {
    		bc = BDict[XEBOrder2[i]];
     
    		//Check if bc is an object 
    		// - protects if user specified a non-existant buttons
    		// - IE causes a javascript error when viewing a page
    		if(typeof bc=='object')
    		{
     
    			//Call addCustomButton in wikibits
    			addCustomButton(bc[0],bc[1],bc[2],bc[3],bc[4]);
    		}
    	}
     
    	// Remove the default buttons (if requested by the user)
    	eraseButtons();
    }
     
     
    /** en: Removes arbitrary standard buttons from the toolbar
    * @author: [[:de:User:Olliminatore]]
    * @version: 0.1 (01.10.2006) **/
     
    function eraseButtons(){
     
    	//Remove the buttons the user doesn't want
     
    	if(typeof rmEditButtons!='object') return;
     
    	if (typeof rmEditButtons[0] == 'string' && rmEditButtons[0].toLowerCase() == 'all') 
    	{
    		mwEditButtons=[];
    		for(i=0;i<enExtraButtons;i++){mwCustomEditButtons.shift();}
    	}
    	//Sort the user's requests so we remove the button with the highest index first
    	//- This ensures we remove the buttons the user expects whatever order he requested the buttons in
    	rmEditButtons.sort(sortit);
     
    	//Remove individual buttons the user doesn't want 
     
    	for(i=0;i<rmEditButtons.length;i++){
    		var n=rmEditButtons[i];
    		//Standard Wikimedia buttons
    		if(n>=0 && n<mwEditButtons.length){
    			if(n<mwEditButtons.length){
    				var x = -1;
    				while((++x)<mwEditButtons.length)
    					if(x>=n)
    						mwEditButtons[x] = mwEditButtons[x+1];
    			}
    		mwEditButtons.pop();
    		}
    		//Extra buttons in English Wikipedia
    		n=n-mwEditButtons.length;
    		if(n>0 && n<mwCustomEditButtons.length){
    		if(n<mwCustomEditButtons.length){
    				var x = -1;
    				while((++x)<mwCustomEditButtons.length)
    					if(x>=n)
    						mwCustomEditButtons[x] = mwCustomEditButtons[x+1];
    			}
    		mwCustomEditButtons.pop();
    		}
    	}
    };
     
    //Function:
    //	sortit
    //Purpose:
    //	Used to sort the rmEditButtons array into descending order
    function sortit(a,b){
    	return(b-a)
    }
     
     
    //Function:
    //Purpose:
    //	Adds extended onclick-function to some buttons 
    function extendButtons(){
     
    	if(!(allEditButtons = document.getElementById('toolbar'))) return false;
    	if(typeof editform != 'undefined')
    		if(!(window.editform = document.forms['editform'])) return false;
     
    	//  table
    	extendAButton(Isrc+"0/04/Button_array.png",XEBPopupTable)
    	extendAButton(Isrc+"7/79/Button_reflink.png",XEBPopupRef)
    	extendAButton(Isrc+"b/b8/Button_Globe.png",XEBPopupGeoLink)
    	extendAButton(Isrc+"4/49/Button_talk.png",XEBPopupTalk)
    	extendAButton(Isrc+"1/1c/Button_advanced_image.png",XEBPopupImage)
    	//extendAButton(Isrc+"6/6a/Button_sup_letter.png",XEBPopupFormattedText)
     
    	// redirect -##IE doesn't like this line. Object doesn't support this propert<link rel="stylesheet" type="text/css" href="http://en.wikipedia.org/w/index.php?title=User:MarkS/XEB/live.css&action=raw&ctype=text/css&dontcountme=s">y or method
    	//c=XEBOrder2.getIndex('V');
     
    //	if(c != -1)
    //		allEditButtons[bu_len+c].onclick=function(){
    //		var a='#REDIRECT \[\['+prompt("Which page do you want to redirect to\?")+'\]\]';
    //		document.editform.elements['wpTextbox1'].value=a;
    //		document.editform.elements['wpSummary'].value=a;
    //		document.editform.elements['wpWatchthis'].checked=false
    //  };
    };
     
    function extendAButton(url,newfunc)
    {
    	if(!(allEditButtons = document.getElementById('toolbar'))) return false;
    	if(typeof editform != 'undefined')
    		if(!(window.editform = document.forms['editform'])) return false;
    	allEditButtons = allEditButtons.getElementsByTagName('img');
    	for(i=0;i<allEditButtons.length;i++)
    	{
    		if(allEditButtons[i].src==url)
    		{
    			allEditButtons[i].onclick=newfunc;
    		}
    	}
    }
     
    //==========================================================================================================
    // General purpose popup code
    //==========================================================================================================
     
    function getXEBPopupDiv(name)
    {
    	XEBMainDiv= document.getElementById("XEB");
    	if(XEBMainDiv==null){
    		XEBMainDiv=document.createElement("div");
    		document.body.appendChild(XEBMainDiv);
    		XEBMainDiv.id="XEB";
    	}
     
    	me= document.getElementById("XEBPopup" & name);
    	if(!(me==null))return me;
    	me=document.createElement("div");
    	XEBMainDiv.appendChild(me);
     
    	me.id="XEBPopup";
    	me.style.position='absolute';
    	me.display='none';
    	me.visibility='hidden';
    	me.onmouseout=CheckHideXEBPopup;
    	me.onmouseover=cancelHidePopup;
    	return me;
    }
     
    //Function:
    //	CheckHideXEBPopup
    //Purpose:
    //	Looks at the cursor position and if it has moved outside the popup it will close the popup
    //Called:
    //	When the onMouseEvent is fired on the popup
     
    function CheckHideXEBPopup(e){
    	m= document.getElementById("XEBmnu");
    	if(is_gecko)
    	{
    		ph=m.offsetHeight;
    		var x=e.clientX + window.scrollX;
    		var y=e.clientY + window.scrollY;;
    		s=window.getComputedStyle(m,"");
    		ph=s.height;
    		ph=Number(ph.substring(0,ph.length-2));
    	}
    	else
    	{
    		var x=event.clientX+ document.documentElement.scrollLeft + document.body.scrollLeft;
    		var y=event.clientY+ document.documentElement.scrollTop + document.body.scrollTop;
    		ph=m.offsetHeight;
    	}
    	pl=curPopup.x;
    	pt=curPopup.y;
    	pw=m.style.width;
    	pw=Number(pw.substring(0,pw.length-2));
     
    	if(x>(pl+2)&&x<(pl+pw-5)&&y>(pt+2)&&y<(pt+ph-5))return;
    	curPopup.hideTimeout=setTimeout('hideXEBPopup()',XEBHideDelay*1000);
    }
     
    function cancelHidePopup()
    {
    	clearTimeout(curPopup.hideTimeout)
    }
     
    function hideXEBPopup(){
    	XEBMainDiv= document.getElementById("XEB");
    	m= document.getElementById("XEBPopup");
    	XEBMainDiv.removeChild(m);
    }
     
    function XEBstartDrag(e)
    {
    	m=new GetPos(e||event);
    	curPopup.startDrag.mouse=m;
    	curPopup.startDrag.floatpopup.y=parseInt(curPopup.div.style.top);
    	curPopup.startDrag.floatpopup.x=parseInt(curPopup.div.style.left);
    	curPopup.dragging=true;
    }
     
    function XEBstopDrag(e)
    {
    	if(curPopup.dragging==false)return;
    	curPopup.dragging=false;
    }
     
    function XEBDrag(e)
    {
    	if(curPopup.dragging==false)return;
     
    	m=new GetPos(e||event);
    	x=parseInt(curPopup.startDrag.floatpopup.x+(m.x-curPopup.startDrag.mouse.x));
    	y=parseInt(curPopup.startDrag.floatpopup.y+(m.y-curPopup.startDrag.mouse.y));
     
    	curPopup.div.style.top=y+"px";
    	curPopup.div.style.left=x+"px";
     
    	curPopup.x=x;
    	curPopup.y=y;
    }
     
    //=============================================================================
    // Popup: Table
    //=============================================================================
     
    function XEBPopup(name,x,y)
    {
    	// Make sure the popup can appear on the screen
     
    	this.IESelectedRange=XEBgetIESelectedRange();
     
    	winW=(is_gecko)?window.innerWidth:document.body.offsetWidth;
    	if((winW-this.width)<x)x=(winW-this.width);
     
    	this.div=getXEBPopupDiv(name);
    	this.div.style.zIndex=2000;
    	this.div.display="inline";
    	this.div.visibility="visible";
    	this.div.style.top=y + "px";
    	this.x=x;
    	this.y=y;
    	this.name=name;
     
    	this.startDrag=new Object;
    	this.startDrag.floatpopup=new Object;
    }
     
    function setInnerHTML(text)
    {
    	winW=(is_gecko)?window.innerWidth:document.body.offsetWidth;
    	if((winW-this.width)<this.x)this.x=(winW-this.width);
    	this.div.style.left=this.x+ "px";
     
    	mt="<div id='XEBmnu' style='width:" + this.width + "px' >";
    	mt+='<div id="XEBmnuTitle" class="XEBPopupTitle" onmousedown="XEBstartDrag(event)" onmouseup="XEBstopDrag(event)" onmousemove="XEBDrag(event)">Title</div>'
    	mt+=text;
    	mt+="</div>";
    	this.div.innerHTML=mt;
    //Turn off autocomplete. If the mouse moves over the autocomplete popup then x,y in CheckHidePopup is relative to the
    // autocomplete popup and our popup is hidden
    	var InTexts = this.div.getElementsByTagName('input');
    	for (var i = 0; i < InTexts.length; i++) {
            	var theInput = InTexts[i];
    		if (theInput.type == 'text'){theInput.setAttribute('autocomplete','off');}
    	}
    //Add rollover features to menu items. Doing it here means we don't have to do it for each menu
    	x=XEBgetElementsByClassName(this.div,'XEBMnuItm','span');
    	for (var i = 0; i < x.length; i++) {
            	var theItm = x[i];
    		theItm.onmouseout=XEBMenuMouseOut;
    		theItm.onmouseover=XEBMenuMouseOver;
    	}
     
    	this.div.style.borderWidth='thin';
    	this.div.style.borderStyle='solid';
    	this.div.style.backgroundColor='#D0D0D0';
    }
    XEBPopup.prototype.width=250;
    XEBPopup.prototype.dragging=false;
    XEBPopup.prototype.setInnerHTML=setInnerHTML;
     
    var curPopup;
     
    function GetPos(e)
    {
    	this.x=e.clientX-10+ document.documentElement.scrollLeft + document.body.scrollLeft;
    	this.y=e.clientY-10+ document.documentElement.scrollTop + document.body.scrollTop;
    }
     
    function XEBPopupTable(e){
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("table",m.x,m.y);
     
    	mt='<p>Enter the table parameters below: <\/p>'
    		+'<form name="XEBPopupTableForm">'
    		+'Table caption: <input type="checkbox" name="inputCaption"><p\/>'
    		+'Table alignment: center<input type="checkbox" name="inputAlign"><p\/>'
    		+'Table headline: colored<input type="checkbox" name="inputHead"><p\/>'
    		+'Number of rows: <input type="text" name="inputRow" value="3" size="2"><p\/>'
    		+'Number of columns: <input type="text" name="inputCol" value="3" size="2"><p\/>'
    		//+'Alternating grey lines: <input type="checkbox" name="inputLine" checked="1" ><p\/>'
    		+'Item column: <input type="checkbox" name="inputItems" ><p\/>'
    		+'Sortable: <input type="checkbox" name="inputSort" ><p\/>'
    		+'<\/form>'
    		+'<i>The default table allows for fields and values only.<\/i><p\/>'
    		+'Check "Item column" to allow for the table to have fields, items, and values.<\/i><p\/>'
    		+'<p><button onClick="javascript:insertTableCode()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>'
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
     
    function insertTableCode(){
    	f=document.XEBPopupTableForm;
    	var caption = (f.inputCaption.checked)?"|+ TABLE CAPTION \n":""; 
    	var exhead = (f.inputHead.checked)?'|- style="background: #DDFFDD;"\n':""; 
    	var nbRow = parseInt(f.inputRow.value); 
    	var nbCol = parseInt(f.inputCol.value); 
    	var exfield = f.inputItems.checked; 
    	var align = (f.inputAlign.checked)?'align="center"':""; 
     
    	//generateTable(caption, exhead, nbCol, nbRow, exfield, align);
     
    	var code = "\n";
    	code += '{| {{prettytable}} ' + align + ' '; // en: class="wikitable"
    	code+=(f.inputSort.checked)?'class="sortable" \n':'\n';
    	code += caption + exhead;
    	if (exfield) code += '!\n';
    	for (i=1;i<nbCol+1;i++) code += '! FELD ' + i + '\n';
    	var items = 0;
    	for (var j=0;j<nbRow;j++){
    		if (exfield) { 
    			items++;
    			code += '|-\n! style="background: #FFDDDD;"|ITEM ' + items + '\n';
    		}	else code += '|-\n';
    		for (i=0;i<nbCol;i++) code += '| Element\n';
    	}
    	code += '|}\n';
    	hideXEBPopup();
    	insertTags('','', code);
    	extendSummary('table');
     
    	return false;
    }  
     
    // Get the text currently selected by user in the textAra
    // This code is based on part of the insertTags function in wikibits.js
     
    function XEBGetSelectedText()
    {
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
     
    		txtarea = areas[0];
    	}
    	// IE & Opera
    	if (document.selection  && !is_gecko)
    	{
    		var theSelection = document.selection.createRange().text;
    		if (!theSelection) theSelection='';
    	}
    	// Mozilla
    	else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
    		var replaced = false;
    		var startPos = txtarea.selectionStart;
    		var endPos = txtarea.selectionEnd;
    		var theSelection = (txtarea.value).substring(startPos, endPos);
    		if (!theSelection) theSelection='';
    	}
    	return theSelection;
    }
     
    //Notes:
    //	IE loses the cursor position in the textarea when the popup is used. 
    //	So we save the cursor position here
    function XEBgetIESelectedRange(){
    	var IESel=new Object;
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
     
    		txtarea = areas[0];
    	}
    	// IE & Opera
     
    	if (document.selection  && !is_gecko)
    	{
    		txtarea.focus();
    		IESel.Rng=document.selection.createRange();
    		return IESel;
    	}
    }
     
    function XEBinsertText(beforeText,selText,afterText,IESelectedRange) {
    	var newText=beforeText + selText + afterText;
    	var txtarea;
    	if (document.editform) {
    		txtarea = document.editform.wpTextbox1;
    	} else {
    		// some alternate form? take the first one we can find
    		var areas = document.getElementsByTagName('textarea');
    		txtarea = areas[0];
    	}
     
    	// IE
    	if (document.selection  && !is_gecko) {
     
    		tr=IESelectedRange.Rng;
    		tr.text=newText;
    		txtarea.focus();
    		//txtarea.caretpos=tr.duplicate();
    		tr.select();
     
    		return;
     
    	// Mozilla
    	} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
    		var replaced = false;
    		var startPos = txtarea.selectionStart;
    		var endPos = txtarea.selectionEnd;
     
    		if (endPos-startPos) {
    			replaced = true;
    		}
    		var scrollTop = txtarea.scrollTop;
    //		var myText = (txtarea.value).substring(startPos, endPos);
    //		if (!myText) {
    //			myText=sampleText;
    //		}
    //		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
    //			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
    //		} else {
    //			subst = tagOpen + myText + tagClose;
    //		}
    		txtarea.value = txtarea.value.substring(0, startPos) + newText +
    			txtarea.value.substring(endPos, txtarea.value.length);
    		txtarea.focus();
    		//set new selection
    		if (!replaced) {
    			var cPos = startPos+(newText.length);
    			txtarea.selectionStart = cPos;
    			txtarea.selectionEnd = cPos;
    		} else {
    			txtarea.selectionStart = startPos+beforeText.length;
    			txtarea.selectionEnd = startPos+beforeText.length+selText.length;
    		}
    		txtarea.scrollTop = scrollTop;
     
    	// All other browsers get no toolbar.
    	// There was previously support for a crippled "help"
    	// bar, but that caused more problems than it solved.
    	}
    	// reposition cursor if possible
    	if (txtarea.createTextRange) {
     
    		txtarea.caretPos = document.selection.createRange().duplicate();
    //txtarea.caretPos =IESelectedRange.Rng;
    	}
    txtarea.focus();
    }
     
     
    //============================================================
    // Table generator 
    //============================================================
    /** en: Generate an array using Mediawiki syntax
    * @author: originally from fr:user:dake
    * @version: 0.2 */
    function generateTable(caption, exhead, nbCol, nbRow, exfield, align){
     
    };
     
     
    function XEBPopupRef(e){
     
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("ref",m.x,m.y);
    	curPopup.width=500;
    	mt='<p>Enter the reference parameters below: <\/p>'
    		+'<form name="XEBPopupRefForm">'
    		+'Name:<input type="text" name="refName" value="" size="10"><p\/>'
    		+'Material:<input type="text" name="refMaterial" value="' + XEBGetSelectedText() + '" size="20">'
    		+'<\/form>'
    		+'<p><button onClick="javascript:insertRef()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
    //	document.XEBPopupRefForm.refName.focus();
    	return true;
    }
     
    function insertRef(){
    	f=document.XEBPopupRefForm;
    	var refName = f.refName.value;
    	var refMaterial=f.refMaterial.value;
     
    	hideXEBPopup();
    	var code1='<ref';
    	code1+=(refName)?' name="'+refName+'">':'>'; 
    	code2=refMaterial;
    	code3='<\/ref>'
    	XEBinsertText(code1,code2,code3,curPopup.IESelectedRange);
     
    	extendSummary('ref');
    	return false;
    } 
     
    //===GEO LINK Function==================================================
     
    function XEBPopupGeoLink(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("geo",m.x,m.y);
    	curPopup.width=300;
    	mt='<p>Enter the location parameters below: <\/p>'
    		+'<form name="XEBPopupGeoLinkForm">'
    		+'Loction:<p\/>'
    		+'<table style="background: transparent;">'
    		+'<tr><td>Latitude:<\/td><td><input type="text" autocomplete="off" name="geoLatDeg" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLatMin" size="4"><\/td>'
    		+'<td><input type="text" name="geoLatSec" size="4"><\/td>'
    		+'<td><select name="geoLatNS"><option value="N">N<option value="S">S</select><\/td><\/tr>'
    		+'<tr><td>Longitude:<\/td><td><input type="text" name="geoLonDeg" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLonMin" value="" size="4"><\/td>'
    		+'<td><input type="text" name="geoLonSec" value="" size="4"><\/td>'
    		+'<td><select name="geoLonEW"><option value="E">E<option value="W">W</select><\/td><\/tr>'
    		+'<\/table>'
    		+'Region:<input type="text" name="geoRegion" value="" size="4"><p\/>'
    		+'Type:'
    		+'<SELECT NAME="geoType" size="5">'
    		+'<OPTION VALUE="country">Country<OPTION VALUE="state">State'
    		+'<OPTION VALUE="adm1st">Admin unit, 1st level<OPTION VALUE="adm2st">Admin unit, 2nd level'
    		+'<OPTION VALUE="city">City<OPTION VALUE="airport">Airport'
    		+'<OPTION VALUE="mountain">Mountain<OPTION VALUE="isle">Isle'
    		+'<OPTION VALUE="waterbody">Waterbody<OPTION VALUE="landmark" SELECTED>Landmark'
    		+'<OPTION VALUE="forest">forest</SELECT><br>'
    		+'Title: <input type="checkbox" name="geoTitle" ><p\/>'
    		+'<\/form>'
    		+'<p><button onClick="javascript:insertGeoLink()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
    	document.paramForm.refName.focus();
    	return true;
     
    }
    function insertGeoLink()
    {
    	f=document.XEBPopupGeoLinkForm;
     
    	var code='{{Coor ';
    	if(f.geoTitle.checked)code+='title ';
    	ft='dms';
    	if(f.geoLatSec.value==''&&f.geoLonSec.value=='')ft='dm';
    	if(ft=='dm'&&f.geoLatMin.value==''&&f.geoLonMin.value=='')ft='d';
    	code+=ft;
    	code+='|'+f.geoLatDeg.value;
    	code+=(ft=='dm'||ft=='dms')?'|'+f.geoLatMin.value:'';
    	code+=(ft=='dms')?'|'+f.geoLatSec.value:'';
    	code+='|'+f.geoLatNS.value;
    	code+='|'+f.geoLonDeg.value;
    	code+=(ft=='dm'||ft=='dms')?'|'+f.geoLonMin.value:'';
    	code+=(ft=='dms')?'|'+f.geoLonSec.value:'';
    	code+='|'+f.geoLonEW.value;
    	code+='|type:'+f.geoType.value+'_region:'+f.geoRegion.value
    	code+='}}';
    	insertTags('','', code);
    	extendSummary('geo-location');
    	hideXEBPopup();
    	return false;
    }
     
    //===Talk Page entry Function===========================================
     
    function XEBPopupTalk(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("talk",m.x,m.y);
    	curPopup.width=200;
    	mt='<div style="font-size:medium"><p>Please choose:<\/p>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(1)">Test1<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(2)">Self Test<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(3)">Nonsense<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(4)">Please stop<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(5)">Last chance<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(6)">Blanking<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(7)">Blatant<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(8)">*BLOCKED*<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(9)">Spam<\/span><br>'
    	mt+='<span class="XEBMnuItm" onclick="XEBInsertTalk(10)">Npov<\/span></div>'
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
     
    }
    function XEBInsertTalk(itm)
    {
    	hideXEBPopup();
    	if(itm==1)code='{{subst:test1-n|}}';
    	if(itm==2)code='{{subst:selftest-n|}}';
    	if(itm==3)code='{{subst:test2-n|}}';
    	if(itm==4)code='{{subst:test3-n|}}';
    	if(itm==5)code='{{subst:test4-n|}}';
    	if(itm==6)code='{{subst:test2a-n|}}';
    	if(itm==7)code='{{subst:bv-n|}}';
    	if(itm==8)code='{{subst:blantant|}}';
    	if(itm==9)code='{{subst:spam-n|}}';
    	if(itm==10)code='{{subst:NPOV user}}';
     
    	insertTags('','', code);
    	return false;
    }
    function XEBPopupImage(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("image",m.x,m.y);
    	curPopup.width=300;
     
    	mt='<p>Enter the image parameters below: <\/p>'
    		+'<form name="XEBPopupImageForm">'
    		+'File:<input type="text" name="imgFile" value="' + XEBGetSelectedText() + '" size="30"><br>'
    		+'Type:<SELECT NAME="imgType">'
    		+'<OPTION VALUE="thumb">Thumbnail'
    		+'<OPTION VALUE="frame">Frame'
    		+'<OPTION VALUE="none">[not specified]'
    		+'</SELECT><br>'
    		+'Location:<SELECT NAME="imgLocation">'
    		+'<OPTION VALUE="left">Left'
    		+'<OPTION VALUE="center">Centre'
    		+'<OPTION VALUE="right">Right'
    		+'<OPTION VALUE="none">None'
    		+'</SELECT><br>'
    		+'Size:<input type="text" name="imgSize" value="100" size="3">px<br>'
    		+'Caption:<input type="text" name="imgCaption" value="" size="30"><\/p>'
    		+'<\/form>'
    		+'<p><button onClick="javascript:XEBInsertImage()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
    function XEBInsertImage()
    {
    	f=document.XEBPopupImageForm;
    	hideXEBPopup();
    	var code='[[Image:';
    	code+=f.imgFile.value;
    	code+='|'+f.imgType.value;
    	code+='|'+f.imgLocation.value;
    	code+='|'+f.imgSize.value;
    	code+='|'+f.imgCaption.value;
    	code+=']]';
    	insertTags('','', code);
    	extendSummary('image');
     
    	return false;
    }
     
    function XEBPopupFormattedText(e)
    {
    	m=new GetPos(e||event);
     
    	curPopup=new XEBPopup("image",m.x,m.y);
    	curPopup.width=300;
     
    	mt='<form name="XEBPopupImageForm">'
    		+'<table  style="background: transparent;">'
    		+'<tr><td>Bold:<\/td><td><input type="checkbox" name="textBold"><\/td>'
    		+'<td>Superscript:<\/td><td><input type="checkbox" name="textSuperscript"><\/td><\/tr>'
    		+'<tr><td>Italic:<\/td><td><input type="checkbox" name="textItalic"><\/td>'
    		+'<td>Subscript:<\/td><td><input type="checkbox" name="textSubscript"><\/td><\/tr>'
    		+'<tr><td>Strike:<\/td><td><input type="checkbox" name="textStrike"><\/td>'
    		+'<td>&nbsp;<\/td><\/tr>'
    		+'</table>'
    		+'Size:<SELECT NAME="textSize">'
    		+'<OPTION VALUE="small">small'
    		+'<OPTION VALUE="normal">[Normal]'
    		+'<OPTION VALUE="big">big'
    		+'</SELECT><br><table style="background:transparent;"><tr><td>Colour:<\/td><td>'
    		+'<table width="100px">'
    		+'<tr><td colspan="4">None<\/td></tr>'
    		+'<tr><td bgcolor="aqua">&nbsp;<\/td><td bgcolor="gray"> &nbsp;<\/td>'
    		+'<td bgcolor="olive">&nbsp;<\/td><td bgcolor="navy">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="black">&nbsp;<\/td><td bgcolor="green"> &nbsp;<\/td>'
    		+'<td bgcolor="purple">&nbsp;<\/td><td bgcolor="teal">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="blue">&nbsp;<\/td><td bgcolor="lime">&nbsp;<\/td>'
    		+'<td bgcolor="red">&nbsp;<\/td><td bgcolor="white">&nbsp;<\/td><\/tr>'
    		+'<tr><td bgcolor="fuchsia">&nbsp;<\/td><td bgcolor="maroon">&nbsp;<\/td>'
    		+'<td bgcolor="silver">&nbsp;<\/td><td bgcolor="yellow">&nbsp;<\/td><\/tr>'
    		+'</table><\/td><\/tr>'
    		+'<\/form>'
    		+'Sample:'
    		+'<span id="sampleText">Text</span>"'
    		+'<p><button onClick="javascript:XEBInsertFormattedText()">Insert</button>'
    		+'<button onClick="hideXEBPopup()">Cancel</button>';
     
    	curPopup.setInnerHTML(mt);
     
    	return true;
    }
     
    function XEBUpdateSampleText()
    {
    	f=document.XEBPopupImageForm;
    }
     
    //====================
     
    function XEBMenuMouseOut(e)
    {
    	var targ;
    	if (!e) var e = window.event;
    	if (e.target) targ = e.target;
    	else if (e.srcElement) targ = e.srcElement;
     
    	targ.style.color='black';
    }
     
    function XEBMenuMouseOver(e)
    {	var targ;
    	if (!e) var e = window.event;
    	if (e.target) targ = e.target;
    	else if (e.srcElement) targ = e.srcElement;
     
    	targ.style.color='red';
    }
     
    //=======================================================================
    // Other functions
    //=======================================================================
     
    function XEBgetElementsByClassName(parent,clsName,htmltag){ 
    	var arr = new Array(); 
    	var elems = parent.getElementsByTagName(htmltag);
    	for ( var cls, i = 0; ( elem = elems[i] ); i++ ){
    		if ( elem.className == clsName ){
    			arr[arr.length] = elem;
    		}
    	}
    	return arr;
    }
     
    function extendSummary(newText)
    {
    	if(!XEBExtendEditSummary)return;
    	s=document.editform.elements['wpSummary'].value;
    	s+=(s=='')?newText:' +'+newText;
    	document.editform.elements['wpSummary'].value=s;
    }
     
    function bug(msg)
    {
    	if(wgUserName=='MarkS')alert(msg);
    }





    L'Edittools


    Se guardate l'immagine .png qui sopra, capirete subito cos'e un Edittools


    le istruzioni dettagliate per creare degli Edittools con le vostre personali combinazioni
    le trovate qua: MediaWiki_talk:Edittools


    Aprite la seguente pagina del vostro wiki:



    o createla, se necessario (dovrete essere loggati come Amministratori per poterlo fare)
    e copiatevi dentro questi contenuti (dopo aver attivato l' Estension:CharInsert anche nel File LocalSetting.php)

    (al posto della parola Naturpedia, mettete ovviamente il nome del vostro progetto.)

    In generale, potete copiarvi l'Edittools di qualsiasi wiki che vi piace, andando alla stessa pagina indicatavi.


    Primo esempio

    =======
    Primo esempio.
    (Più in basso, ve ne diamo altri).
    COPIATEVI IL CONTENUTO, QUI DI SEGUITO:
    ======

    <!-- Testo che appare sotto quando si fa modifica e upload. -->
    <div class="plainlinks, toccolours" style="margin-top:0.5em; background:#f4f4f4; width:45%; float:right;">
    Per inserire del testo tra questi segni selezionalo e clicca sul link:<br/>
    <charinsert> «+» "+" '+' [+] [[+]] {{+}}</charinsert> &nbsp;
    <charinsert> [[Categoria:+]] #REDIRECT[[+]] [[Immagine:+|thumb|]]</charinsert> &nbsp;
    <charinsert> <ref>+</ref> <ref<nowiki> </nowiki>name=>+</ref> <poem>+</poem> </charinsert> &nbsp; <br />
    <charinsert> <sup>+</sup> <sub>+</sub> <!--+--> <del>+</del> <small>+</small></charinsert> &nbsp; <br />
    <charinsert> <center>+</center></charinsert> &nbsp; <br />
    Per inserire nel testo un [[Aiuto:Caratteri speciali|carattere speciale]], cliccalo:<br />
    <charinsert> ~~~~  <references<nowiki> </nowiki>/> <br<nowiki> </nowiki>/></charinsert> &nbsp;
    <charinsert> – — … </charinsert> &nbsp;
    <charinsert> ~ | ° § ? # </charinsert> &nbsp;
    <charinsert> À à È è Ì ì Ò ò Ù ù </charinsert> &nbsp;<br />
    <charinsert> Á á É é Í í Ó ó Ú ú </charinsert> &nbsp;
    <charinsert> Â â Ê ê Î î Ô ô Û û </charinsert> &nbsp;
    <charinsert> Ä ä Ë ë Ï ï Ö ö Ü ü </charinsert> &nbsp;
    <charinsert> ß </charinsert> &nbsp;
    <charinsert> Ã ã Ñ ñ Õ õ </charinsert> &nbsp;
    <charinsert> Ç ç G, g, K, k, L, l, N, n, R, r, S, s, T, t, </charinsert> &nbsp;
    <charinsert> C' c' L' l' N' n' R' r' S' s' Ý ý Z' z' </charinsert> &nbsp;
    <charinsert> ? ? </charinsert> &nbsp;
    <charinsert> U* u* </charinsert> &nbsp;
    <charinsert> C( c( D( d( L( l( N( n( R( r( Š š T( t( Ž ž </charinsert> &nbsp;
    <charinsert> A( a( E( e( I( i( O( o( U( u( </charinsert> &nbsp;
    <charinsert> A- a- E- e- I- i- O- o- U- u- </charinsert> &nbsp;
    <charinsert> u"- u"' u"( u"` </charinsert> &nbsp;
    <charinsert> C^ c^ G^ g^ H^ h^ J^ j^ S^ s^ W^ w^ Y^ y^ </charinsert> &nbsp;
    <charinsert> A( a( G( g( U( u( </charinsert> &nbsp;
    <charinsert> C. c. E. e. G. g. I. ? Z. z. </charinsert> &nbsp;
    <charinsert> A; a; E; e; I; i; U; u; </charinsert> &nbsp;
    <charinsert> ? ? </charinsert> &nbsp;
    <charinsert> O" o" U" u" </charinsert> &nbsp;
    <charinsert> L. l. </charinsert> &nbsp;
    <charinsert> Ð ð Þ þ </charinsert> &nbsp;
    <charinsert> Œ œ </charinsert> &nbsp;
    <charinsert> Æ æ Ø ø Å å </charinsert> &nbsp;
    <charinsert> ± - × ¹ ² ³ ½ 1/3 ¾</charinsert> &nbsp;
    <charinsert> £ € </charinsert> &nbsp;
    </div>
    <div style="margin:0.1em; background:none; width:48%; float:left;"><br>
    '''I cambiamenti apportati saranno visibili immediatamente!'''
    * Per favore, usa la [[Naturpedia:Pagina delle prove|Pagina delle prove]] per fare le tue prove.
    * Nota che tutti i contributi a questo [[Wiki]] si considerano rilasciati sotto licenza di tipo '''[[GNU Free Documentation License]]''' (vedi [[Aiuto:Copyright]] per maggiori dettagli).
    * Se non vuoi che il tuo materiale possa essere modificato e ridistribuito da chiunque senza pietà e senza limiti, allora non inserirlo sul [[Naturpedia (storia)|Naturpedia]], ma realizza piuttosto un tuo sito web personale. Oppure, '''abbi l'accortezza d'inserire il giusto [[Tag licenza]]''': il più adatto e appropriato alle tue esigenze (soprattutto, nel caso tu facessi copia incolla da altri siti).<br />
    </div>
    <div style="margin:0.1em; background:none; width:52%; float:left;">
    '''<span style="color:red;">La responsabilità civile e penale su quanto stai per inviare resterà sempre tua</span>; per ogni modifica effettuata verrà registrato il tuo indirizzo IP.'''<br><br>
    *<div style="border: solid 1px #6F6FFF; padding-left:3px;">Per favore, '''[[Aiuto:Fonti|cita sempre le fonti]]''' dalle quali sono tratti i tuoi contributi (anche se <u>tradotte da Wiki in lingua straniera</u>), perché siano verificabili. '''L'inserimento di nuovi contenuti senza fonti, di solito viene annullato.'''</div>
    *<div style="border: solid 2px red; padding-left:2px;">Citazioni tratte materiale protette dal [[diritto d'autore]] devono essere sempre accompagnate dalla menzione del '''titolo''', dei nomi dell''''autore''', dell''''editore''' e, se si tratti di traduzione, del '''traduttore''', qualora tali indicazioni figurino sull'opera; sono permesse solo nei limiti degli scopi del progetto e purché non costituiscano una violazione delle norme vigenti sul [[Copyright]].</div> 
    </div>
    <br style="clear:both;" />


    Secondo esempio

    ===
    Altro esempio di Edittools.
    COPIATE IL CONTENUTO, QUI DI SEGUITO:
    ===

    <div class="plainlinks, toccolours" style="margin-top:0.5em; background:#f4f4f4; width:45%; float:right;">
    Per inserire del testo tra questi segni selezionalo e clicca sul link:<br/>
    <charinsert> «+» "+" '+' [+] [[+]] {{+}}</charinsert> &nbsp;
    <charinsert> [[Categoria:+]] #REDIRECT[[+]] [[Immagine:+|thumb|]]</charinsert> &nbsp;
    <charinsert> <ref>+</ref> <ref<nowiki> </nowiki>name=>+</ref> <poem>+</poem> </charinsert> &nbsp; <br />
    <charinsert> <sup>+</sup> <sub>+</sub> <!--+--> <del>+</del> <small>+</small></charinsert> &nbsp; <br />
    Per inserire nel testo un [[w:Aiuto:Caratteri speciali|carattere speciale]], cliccalo:<br />
    <charinsert> ~~~~  <references<nowiki> </nowiki>/> <br<nowiki> </nowiki>/></charinsert> &nbsp;
    <charinsert> – — … </charinsert> &nbsp;
    <charinsert> ~ | ° § ? # </charinsert> &nbsp;
    <charinsert> À à È è Ì ì Ò ò Ù ù </charinsert> &nbsp;<br />
    <charinsert> Á á É é Í í Ó ó Ú ú </charinsert> &nbsp;
    <charinsert> Â â Ê ê Î î Ô ô Û û </charinsert> &nbsp;
    <charinsert> Ä ä Ë ë Ï ï Ö ö Ü ü </charinsert> &nbsp;
    <charinsert> ß </charinsert> &nbsp;
    <charinsert> Ã ã Ñ ñ Õ õ </charinsert> &nbsp;
    <charinsert> Ç ç G, g, K, k, L, l, N, n, R, r, S, s, T, t, </charinsert> &nbsp;
    <charinsert> C' c' L' l' N' n' R' r' S' s' Ý ý Z' z' </charinsert> &nbsp;
    <charinsert> ? ? </charinsert> &nbsp;
    <charinsert> U* u* </charinsert> &nbsp;
    <charinsert> C( c( D( d( L( l( N( n( R( r( Š š T( t( Ž ž </charinsert> &nbsp;
    <charinsert> A( a( E( e( I( i( O( o( U( u( </charinsert> &nbsp;
    <charinsert> A- a- E- e- I- i- O- o- U- u- </charinsert> &nbsp;
    <charinsert> u"- u"' u"( u"` </charinsert> &nbsp;
    <charinsert> C^ c^ G^ g^ H^ h^ J^ j^ S^ s^ W^ w^ Y^ y^ </charinsert> &nbsp;
    <charinsert> A( a( G( g( U( u( </charinsert> &nbsp;
    <charinsert> C. c. E. e. G. g. I. ? Z. z. </charinsert> &nbsp;
    <charinsert> A; a; E; e; I; i; U; u; </charinsert> &nbsp;
    <charinsert> O" o" U" u" </charinsert> &nbsp;
    <charinsert> L. l. </charinsert> &nbsp;
    <charinsert> Ð ð Þ þ </charinsert> &nbsp;
    <charinsert> Œ œ </charinsert> &nbsp;
    <charinsert> Æ æ Ø ø Å å </charinsert> &nbsp;
    <charinsert> ± - × ¹ ² ³ ½ 1/3 ¾</charinsert> &nbsp;
    <charinsert> £ € </charinsert> &nbsp;
    </div>
    <div style="margin:0.1em; background:none; width:48%; float:left;"><br>
    '''I cambiamenti apportati saranno visibili immediatamente!'''
    * Per favore, usa la [[Esopedia:Sandbox|sandbox]] per fare le tue prove.
    * Nota che tutti i contributi a questo Wiki si considerano rilasciati sotto licenza di tipo '''[[GNU Free Documentation License]]''' (vedi [[Aiuto:Copyright]] per maggiori dettagli).
    * Se non vuoi che il tuo materiale possa essere modificato e ridistribuito da chiunque senza pietà e senza limiti, allora non inserirlo sul [[Esopedia (storia)|Esopedia]], ma realizza piuttosto un tuo sito web personale. Oppure, '''abbi l'accortezza d'inserire il giusto [[Tag licenza]]''': il più adatto e appropriato alle tue esigenze (soprattutto, nel caso tu facessi copia incolla da altri siti).<br />
    </div>
    <div style="margin:0.1em; background:none; width:52%; float:left;">
    '''<span style="color:red;">La responsabilità civile e penale su quanto stai per inviare resterà sempre tua</span>; per ogni modifica effettuata verrà registrato il tuo indirizzo IP.'''<br><br>
    *<div style="border: solid 1px #6F6FFF; padding-left:3px;">Per favore, '''[[Aiuto:Fonti|cita sempre le fonti]]''' dalle quali sono tratti i tuoi contributi (anche se <u>tradotte da Wiki in lingua straniera</u>), perché siano verificabili. '''L'inserimento di nuovi contenuti senza fonti viene annullato.'''</div>
    *<div style="border: solid 2px red; padding-left:2px;">Citazioni tratte materiale protette dal [[diritto d'autore]] devono essere sempre accompagnate dalla menzione del '''titolo''', dei nomi dell''''autore''', dell''''editore''' e, se si tratti di traduzione, del '''traduttore''', qualora tali indicazioni figurino sull'opera; sono permesse solo nei limiti degli scopi del progetto e purché non costituiscano una violazione delle norme vigenti sul [[Copyright]].</div> 
    </div>
    <br style="clear:both;" />


    Terzo esempio

    ======
    Altro esempio di Edittools.
    COPIATE IL CONTENUTO, QUI DI SEGUITO:
    ======

    <!-- Testo che appare al di sotto del modulo di modifica e di upload. -->
    <!-- Testo che appare sotto quando si fa modifica e upload. -->
    <div class="plainlinks, toccolours" style="margin-top:0.5em; background:#f4f4f4; width:45%; float:right;">
    Per inserire del testo tra questi segni selezionalo e clicca sul link:<br/>
    <charinsert> <protec>+</protec> [[:w:|+]] [[it:+]] [[eso:+]] [[wb:+]] [[comm:+]] [[ana:+]] [[eko:+]] <poem>+</poem> |testo= {{articolo}} {{articolosezione}} {{recensione}} <center>+</center> {{Wikipedia}} {{Cat}} {{w||}} {{c||}} {{u||}} {{F||}} {{print}} {{PDiSimple}} {{protetta}}{{nomove}} {{semiprotetta}} {{S}} {{S sezione}} {{PDCs}} {{ArtL}} <noinclude>{{wikilibri}}</noinclude> {{cc-by-sa-3.0}} </charinsert>   <br />
    <charinsert> {{TOCright}} {{TOCleft}} {{voce principale|+}} {{torna a|+}} __FORCETOC__ </charinsert>   <br />
    <charinsert> [[Categoria:Immagini di servizio]] [[Categoria:Immagini stub]] </charinsert>  
    <charinsert> {{cancellare|+}} {{cancella subito|+}} {{FreeUse}} {{PDA}} {{TLUi}}{{Copyrightmaybei}} </charinsert>  <br />
    <charinsert> <ref>+</ref> <references /> {{C0-1.0}} {{Copyright}} {{PDself}} {{PDself2}} {{#calendar:month=3|dayformat=%a}} {{vedi anche|+|etichetta1=}} {{vai a|+|testo=}} </charinsert>   <br />
    <charinsert> {{Print2}} {{Print}} {{Printall}} <anchor url='http://' target='_blank'>Text</anchor> </charinsert>   <br />
    <charinsert> <videoflash>+</videoflash> {{Albero categorie‎}} {{Indice categorie}} </charinsert>   <br />
    <charinsert> <youtube v="+" /> {{#ev:service|id|width|align|desc}} {{Trademarked}} </charinsert>   <br />
    <charinsert> {{#widget:|=|||}} {{VC}} {{cl}} {{cc}} {{ccimm}} <blockquote>+</blockquote> <!-- + --> </charinsert>   <br />
    <charinsert> #REDIRECT [[+]] <source lang="php">+</source> {{avanzamento|00%}} {{avanzamento|100%}} {{avanzamento|75%}} {{avanzamento|25%}} </charinsert>   <br />
    Per inserire nel testo un [[:it:Aiuto:Caratteri speciali|carattere speciale]], cliccalo:<br />
    <charinsert> - Copyright © + - ~~~~ <br /></charinsert>  
    <charinsert> – — … «+» </charinsert>  
    <charinsert> © ~ | ° § → # </charinsert>  
    <charinsert> À à È è Ì ì Ò ò Ù ù </charinsert>  <br />
    <charinsert> Á á É é Í í Ó ó Ú ú </charinsert>  
    <charinsert> Â â Ê ê Î î Ô ô Û û </charinsert>  
    <charinsert> Ä ä Ë ë Ï ï Ö ö Ü ü </charinsert>  
    <charinsert> ß </charinsert>  
    <charinsert> Ã ã Ñ ñ Õ õ </charinsert>  
    <charinsert> Ç ç Ģ ģ Ķ ķ Ļ ļ Ņ ņ Ŗ ŗ Ş ş Ţ ţ </charinsert>  
    <charinsert> Ć ć Ĺ ĺ Ń ń Ŕ ŕ Ś ś Ý ý Ź ź </charinsert>  
    <charinsert> Đ đ </charinsert>  
    <charinsert> Ů ů </charinsert>  
    <charinsert> Č č Ď ď Ľ ľ Ň ň Ř ř Š š Ť ť Ž ž </charinsert>  
    <charinsert> Ǎ ǎ Ě ě Ǐ ǐ Ǒ ǒ Ǔ ǔ </charinsert>  
    <charinsert> Ā ā Ē ē Ī ī Ō ō Ū ū </charinsert>  
    <charinsert> ǖ ǘ ǚ ǜ </charinsert>  
    <charinsert> Ĉ ĉ Ĝ ĝ Ĥ ĥ Ĵ ĵ Ŝ ŝ Ŵ ŵ Ŷ ŷ </charinsert>  
    <charinsert> Ă ă Ğ ğ Ŭ ŭ </charinsert>  
    <charinsert> Ċ ċ Ė ė Ġ ġ İ ı Ż ż </charinsert>  
    <charinsert> Ą ą Ę ę Į į Ų ų </charinsert>  
    <charinsert> Ł ł </charinsert>  
    <charinsert> Ő ő Ű ű </charinsert>  
    <charinsert> Ŀ ŀ </charinsert>  
    <charinsert> Ħ ħ </charinsert>  
    <charinsert> Ð ð Þ þ </charinsert>  
    <charinsert> Œ œ </charinsert>  
    <charinsert> Æ æ Ø ø Å å </charinsert>  
    <charinsert> Ə ə </charinsert>  
    <charinsert> ≈ ± − × ¹ ² ³ ½ ⅓ ¾</charinsert>  
    <charinsert> £ € </charinsert>  
    <charinsert> Α α Β β Γ γ Δ δ </charinsert>  
    <charinsert> Ε ε Ζ ζ Η η Θ θ </charinsert>  
    <charinsert> Ι ι Κ κ Λ λ Μ μ </charinsert>  
    <charinsert> Ν ν Ξ ξ Ο ο Π π </charinsert>  
    <charinsert> Ρ ρ Σ σ ς Τ τ Υ υ </charinsert>  
    <charinsert> Φ φ Χ χ Ψ ψ Ω ω </charinsert>  
    <charinsert> ά έ ή ί ό ύ ώ</charinsert>  
    </div>
    <div style="margin:0.1em; background:none; width:48%; float:left;"><br>
    '''I cambiamenti apportati saranno visibili immediatamente!'''
    * Per favore, usa la [[Naturpedia:Pagina delle prove|Pagina delle prove]] per fare le tue prove.
    * Nota che tutti i contributi a questo [[Wiki]] si considerano rilasciati sotto licenza di tipo '''[[GNU Free Documentation License]]''' (vedi [[Aiuto:Copyright]] per maggiori dettagli).
    * Se non vuoi che il tuo materiale possa essere modificato e ridistribuito da chiunque senza pietà e senza limiti, allora non inserirlo sul [[Naturpedia (storia)|Naturpedia]], ma realizza piuttosto un tuo sito web personale. Oppure, '''abbi l'accortezza d'inserire il giusto [[Tag licenza]]''': il più adatto e appropriato alle tue esigenze (soprattutto, nel caso tu facessi copia incolla da altri siti).<br />
    </div>
    <div style="margin:0.1em; background:none; width:52%; float:left;">
    '''<span style="color:red;">La responsabilità civile e penale su quanto stai per inviare resterà sempre tua</span>; per ogni modifica effettuata verrà registrato il tuo indirizzo IP.'''<br><br>
    *<div style="border: solid 1px #6F6FFF; padding-left:3px;">Per favore, '''[[Aiuto:Fonti|cita sempre le fonti]]''' dalle quali sono tratti i tuoi contributi (anche se <u>tradotte da Wiki in lingua straniera</u>), perché siano verificabili. '''L'inserimento di nuovi contenuti senza fonti, di solito viene annullato.'''</div>
    *<div style="border: solid 2px red; padding-left:2px;">Citazioni tratte materiale protette dal [[diritto d'autore]] devono essere sempre accompagnate dalla menzione del '''titolo''', dei nomi dell''''autore''', dell''''editore''' e, se si tratti di traduzione, del '''traduttore''', qualora tali indicazioni figurino sull'opera; sono permesse solo nei limiti degli scopi del progetto e purché non costituiscano una violazione delle norme vigenti sul [[Copyright]].</div> 
    </div>
    <br style="clear:both;" />
    <noinclude>[[Category:Pagine_di_servizio]][[Category:voci da exp]]</noinclude>
    






    Barra Laterale

    Per modificare la Barra Laterale sinistra,


    cercate la pagina

    all'interno del vostro wiki;


    da lì, potrete cambiare la disposizione, oppure il nome

    degli elementi. Per farlo cliccate su "Modifica pagina",

    come quando modificate una qualsiasi altra voce.


    Dovrete essere loggati come amministratori pero', per poterlo fare.

    Vai a: Esempi di Sidebar modificate.


    Come modificare le voci più in basso

    Come avete visto, la pagina MediaWiki:Sidebar vi consente di modificare solo le prime voci, ma non quelle più in basso; per quest'ultime infatti, dovrete essere esperti di codice e Php, ed andare a modificarle direttamente dal file Monobook.php (o comunque, quello relativo alla Skin che stiamo usando), che si trova all'interno della Cartella 'Skins', dove avrete installato il vostro software mediawiki (come abbiamo fatto noi, per esempio, per mettere il collegamento a "Pdf Joliprint"), con un programma via Ftp.

    Vedi, Lista software Ftp.


    Aggiungere collegamenti a Servizi esterni Pdf online

    Ecco i codici, per aggiungere sulla barra laterale questi servizi:

    Vai a: Barra Laterale: Pdfonline.
    Vedi, Estensioni: Servizio esterno Pdf online.


    Come spostare in alto, il BOX di Ricerca

    Per spostare in alto per esempio il Search Box (Box di Ricerca), dovete andare a modificare sempre nel Monobook.php (cartella 'Skins' del nostro wiki), questo pezzettino di Codice:

    Vai a: Barra Laterale: il "SearchBox".

    Ovviamente, dovete togliere anche da Mediawiki:Sidebar:

    • SEARCH
    • TOOLBOX
    • LANGUAGES

    (che stanno di default), se non volete che ve ne appaiano due
    (oltre a disattivare quello principale, come spiegato nelle istruzioni).


    Come mettere i Collegamenti interlingua, e ad altri wiki (interwiki)

    Si parla di interwiki quando, in un wiki, si collegano all'interno di un articolo, delle parole ad un altro articolo presente su di un altro wiki; e, si parla di collegamenti interlingua, quando, questi interlink", corrispondono a dei wiki stranieri che, generalmente, fanno parte di uno stesso "progetto" comune e traducono il proprio principale.

    Gli "interlink", sono presenti solo all'interno delle voci; mentre, i collegamenti interlingua, si ritrovano sulla barra laterale sinistra, in fondo. Qui di seguito spiegheremo, come utilizzare questi "collegamenti" a sinistra per "gemellare" più wiki assieme, non necesariamente per la traduzione della lingua, e ..non necessariamente facenti parte di uno stesso "progetto".

    1 - Creare le Tabelle

    Se volete che nella vostra Barra Laterale sinistra siano presenti i collegamenti alle varie versioni linguistiche internazionali di wikipedia, gemellandovi per così dire con essa, potete creare velocemente le Tabelle andando semplicemente a pescare i file che terminano in .sql presenti all'interno della vostra cartella "maintenance", dove avrete installato il wiki;

    Vai a: Manuali: Tabelle interlink.

    attenzione perché, oltre a quelli di wikipedia, sono presenti anche quelli di wikizionario. Scegliete solo quelli di wikipedia, oppure solo quelli di wikizionario, ma non tutt'e due assieme altrimenti entrano in conflitto (uno sovrascrive l'altro).

    Dovrete agire sulle Tabelle del vostro Database MySQL, con PhAdmin, dal pannello di controllo del vostro sito.

    Se invece volete, personalizzare e creare da voi le Tabelle ad altri progetti wiki, nel senso che, non ve ne frega niente di "gemellarvi" con wikipedia, allora potete anche saltare questo primo passaggio, e andare subito a modificarle e crearle avvalendovi dell'estensione "Special interwiki".

    Vai a: Manuali: Estensione interwiki.

    2 - Modificare il file "Names.php"

    Dopodichè, per fare apparire i collegamenti che avete appena creato appunto sulla barra laterale, dovrete agire sul file "Names.php", che trovate dentro la cartella /Languages/ (nella root del vostro wiki). Per cambiarne i prefissi, e mettere e organizzare nella barra laterale sinistra solo quelli corrispondenti ai nostri bisogni, invece che lasciare quelli per la lingua.

    Successivamente, non dovremmo fare altro che mantenere aggiornato il file Names.php, con soli quei prefissi che vorremmo avere a sinistra, come interlink, scartando gli altri.


    Ovviamente, bisogna agire sulle 'Tabelle' per far corrispondere un 'prefisso' con il collegamento Url, del sito che vogliamo associarvici.

    Ecco perché, viene molto utile a questo scopo l'estensione 'Special Interwiki', che oltre ad aiutarci a creare i prefissi senza dover andar a toccare le Tabelle tramite pannello PhAdmin, ce ne offre anche una vista d'insieme che aiuta a non farci dimenticare i prefissi creati ed associati.

    3 - Cambiare il messaggio: "Altre Lingue"

    Infine, per cambiare il messaggio "Altre Lingue" (che si trova di Default, sulla Barra Laterale sinistra) si agisce sul file Monobook.php (o comunque, quello relativo alla Skin che stiamo usando), che trovate dentro alla cartella "/Skin/" (sempre nella root d'installazione del vostro wiki).

    Code

    Vedi, Manual Skinning: Interlanguage Links.

    Dentro al File Monobook.php, cercate questo pezzo di codice

    --------------------------------------------------------------------
    	function languageBox() {
    		if( $this->data['language_urls'] ) {
    ?>
    	<div id="p-lang" class="portlet">
    		<h5><?php $this->msg('jumpto') ?></h5>
    		<div class="pBody">
    			<ul>
    <?php		foreach($this->data['language_urls'] as $langlink) { ?>
    				<li class="<?php echo htmlspecialchars($langlink['class'])?>"><?php
    				?><a href="<?php echo htmlspecialchars($langlink['href']) ?>"><?php echo $langlink['text'] ?></a></li>
    <?php		} ?>
    			</ul>
    		</div>
    	</div>
    <?php
    		}
    	}
    -------------------------------------------------------------------


    e andate a modificare la scritta dentro le parentesi ('otherlanguages'), appena dopo 'MSG', qui cambiata per 'JUMPTO'.

    Il risultato sarà che, al posto di "Altre Lingue", vi ritroverete sulla barra laterale un generico "VAI A".

    Oppure, per i più esperti: andata a modificare con le parole che volete voi, via Ftp, la traduzione di 'otherlanguages' nel file MessagesIt.php, presente nella sottocartella messages, sotto Languages.


    Utilizzo del Template "Interprogetto"

    Per approfondire, vedi Gli Stili: Template.

    Code2

    // INIZIO Collegamenti Interprogetto (codice adattato da de:wikt:Mediawiki:monobook.js)
     
    document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
     function iProject() {
      if (document.getElementById("interProject")) {
       var iProject = document.getElementById("interProject").innerHTML;
       var interProject = document.createElement("div");
       interProject.style.marginTop = "0.7em";
       interProject.innerHTML = '<h5>altri progetti wiki<\/h5><div class="pBody">'+iProject+'<\/div>';
       document.getElementById("p-tb").appendChild(interProject);
      }
     }
     hookEvent("load", iProject);
     
    // FINE Collegamenti Interprogetto


    Fonti di riferimento su MediaWiki


    Collegamento di "Carica su Commons"

    sulla Barra Laterale a sinistra

    se v'interessasse solamente il Collegamento di "Carica su Commons" sulla Barra Laterale a sinistra, copiatevi allora nel monobook.js solo questo pezzettino:

    Per approfondire, vedi Gli Stili e Ulteriori aggiunte alla Sidebar.
    /*** Collegamento diretto alla pagina di upload di Commons nel menu di sinistra, da WP:PT */
    function linkUploadToCommons()
    {
        if (document.getElementById("carrega-para-commons")) return;
        var li_carrega = document.getElementById("t-upload");
        if (!li_carrega) return;
        var afegit = li_carrega.nextSibling;
        var ul_eines = li_carrega.parentNode;
        var li = document.createElement("li");
        li.id = "carrega-para-commons";
        li.innerHTML = '<a href="http://commons.wikimedia.org/wiki/Commons:Upload/it">Carica su Commons</a>';
        if (afegit) ul_eines.insertBefore(li, afegit);
        else ul_eines.appendChild(li);
    }
     
    addLoadEvent(linkUploadToCommons);
     
    /*** Fine del collegamento diretto alla pagina di upload di Commons */

    nel Local Settings.php, dovrete anche aggiungere questo codice

    (che è quello che permette alla vostra wiki, di visualizzare le immagini esterne, caricate su altre wiki, e non sulla vostra):

    $wgForeignFileRepos[] = array(
       'class'                   => 'ForeignAPIRepo',
       'name'                    => 'shared',
       'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
       'fetchDescription'        => true, // Opzionale: visualizza le descrizioni sotto le immagini (la Licenza, e tutto)
       'descriptionCacheExpiry'  => 43200, // 12 hours, optional (values are seconds)
       'apiThumbCacheExpiry'     => 43200, // 12 hours, optional, but required for local thumb caching
    );
    

    Una variante dei dati di default, potrebbe essere questa:

       'name'                    => 'shared',
       'hashLevels'              => '2',
       'hasSharedCache'          => $wgCacheSharedUploads, 
       'descriptionCacheExpiry'  => 604800, // hours, (values are seconds)
       'apiThumbCacheExpiry'     => 86400000, // hours, optional, but required for local thumb caching
    
    Per approfondire, vedi il Local Settings:Configurare i permessi.

    Come aggiungere un diverso "Contenitore d'immagini" esterno

    Si possono anche aggiungere "altri siti" diversi da commons.

    Per esempio, per le immagini da it.wiki, aggiungere al Local Settings.php:

    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'sharedwp',
       'apibase'          => 'http://it.wikipedia.org/w/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc).
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    

    Similmente, si può fare per altri siti che svolgono un servizio simile, se si conosce la loro root corretta per l'apibase.

    Ecco il codice per Ekopedia:

    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://base.ekopedia.org/w/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc).
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    

    Ed ecco infine, quello di Naturpedia e Anarchopedia:

    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://naturpedia.org/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc).
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    
    $wgForeignFileRepos[] = array(
       'class'            => 'ForeignAPIRepo',
       'name'             => 'shared',
       'apibase'          => 'http://meta.anarchopedia.org/api.php',
       'fetchDescription' => true, // Opzionale: visualizza la descrizione delle immagini (Licenza, ecc).
       'descriptionCacheExpiry'  => 60480000000, // ore, opzionale (valori in secondi)
       'apiThumbCacheExpiry'     => 8640000000000, // ore, opzionale, ma richiesto per la cache di thumb locale
    );
    
    Nota

    se il nome dell'immagine è presente uguale sui diversi progetti specificati, sarà visualizzata la prima:
    ossia, il sistema darà la precedenza al primo progetto specificato nella lista scritta sul LocalSettings.php.

    Approfondimenti:




    Collegamenti Pdf-online



    IMPORTANTE: Ovviamente, dovete disattivare sul Local Settings che vi diamo la nostra Estensione di Pdf Button, se usate il primo codice "Web2PdfConvert"; trattasi infatti della medesima; altrimenti, vi appariranno due stessi identici bottoni in due posizioni diverse.


    Servizio di "Web2PdfConvert"


    In questo codice, potrete cambiare sia l'url dell'immagine del bottoncino che vi apparirà a sinistra sulla barra laterale, sia quello del servizio esterno di Pdf online (noi abbiamo usato quello di Web2PdfConvert.com), come anche la dicitura "Scarica in Pdf" per un'altra che preferite.


    Nel file Monobook.php (cartella 'Skins', del vostro wiki -via Ftp-), cercate questa stringa:


    function languageBox() {


    e, appena prima del

    <?php
      }

    ma, dopo il

    </div>


    incollate, il seguente pezzo di codice:

              <!-- BEGIN pdf Code -->	
    	        <div class="generated-sidebar portlet" id="p-Scarica_in_PDF">
    		<h5>Scarica in PDF</h5>
    		<div class="pBody">
          <a href="http://www.web2pdfconvert.com/convert" target="_blank">
          <img src="http://www.naturpedia.org/images/a/af/Pdfbutton.gif">Salva in PDF</a>		</div>
    	  <!-- END pdf Code -->

    Se siete esperti di codice, potrete ovviamente anche cambiarne la posizione; altrimenti, procedete per tentativi. Noi l'abbiamo messo al fondo, come vedete. Ossia: il bottone vi apparirà in fondo a sinistra sulla barra laterale, poco prima dei collegamenti alle altre lingue. (Nota: se usate invece la nostra estensione, esso vi apparirà appena sotto la sidebar modificabile.)

    L'immagine che abbiamo usato noi per questo codice, che vi apparirà, è questa qui:

    • Pdfbutton.gif


    Altre Immagini

    Altre immagini carine che potete usare e che trovate nel nostro pacchetto zippato che vi diamo, sono queste:

    File:Download as pdf button.pngFile:Pdficon.gif ButonPDF25.png Pdfs.jpeg


    Download e Esempi

    Vedere gli esempi che vi abbiamo dato, per avere un'idea più precisa:

      • download - (esempio di Monobook modificato)
    Vai a: Gli Stili: esempi di Monobook modificato.
    Per approfondire, vedi Estensioni per PDF più altri tipi di documenti e Gli Stili.





    Box di Ricerca, in alto


    Il seguente codice,

    <!--Inizio Codice BOX-RICERCA spostato più in ALTO-->
    <div id="p-search" class="portlet">
                    <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
                    <div id="searchBody" class="pBody">
                            <form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
                                    <input id="searchInput" name="search" type="text"<?php echo $skin->tooltipAndAccesskey('search');
                                            if( isset( $this->data['search'] ) ) {
                                                    ?> value="<?php $this->text('search') ?>"<?php } ?> />
                                    <input type='submit' name="go" class="searchButton" id="searchGoButton"        value="<?php $this->msg('searcharticle') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
                                    <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
                            </div></form>
                    </div>
            </div>
    <!--FINE Codice BOX-RICERCA spostato in ALTO-->

    va messo (se volete che il box appaia proprio in alto, appena sotto il Logo del vostro wiki) in corrispondenza di queste linee:

    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
     
     
    <!--Inizio Codice BOX-RICERCA spostato più in ALTO-->
     
    <div id="p-search" class="portlet">
                    <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>
                    <div id="searchBody" class="pBody">
                            <form action="<?php $this->text('searchaction') ?>" id="searchform"><div>
                                    <input id="searchInput" name="search" type="text"<?php echo $skin->tooltipAndAccesskey('search');
                                            if( isset( $this->data['search'] ) ) {
                                                    ?> value="<?php $this->text('search') ?>"<?php } ?> />
                                    <input type='submit' name="go" class="searchButton" id="searchGoButton"        value="<?php $this->msg('searcharticle') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-go' ); ?> />&nbsp;
                                    <input type='submit' name="fulltext" class="searchButton" id="mw-searchButton" value="<?php $this->msg('searchbutton') ?>"<?php echo $skin->tooltipAndAccesskey( 'search-fulltext' ); ?> />
                            </div></form>
                    </div>
            </div>
     
    <!--FINE Codice BOX-RICERCA spostato in ALTO-->
     
     
    <?php
    		$sidebar = $this->data['sidebar'];
    		//if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;

    Cioè, appena sopra la linea: <?php $sidebar = $this->data['sidebar'];

    <?php
    		$sidebar = $this->data['sidebar'];

    e, appena dopo il precedente comando Php che sta sopra di esso. Nel nostro caso:

    <?php			} ?>
    			</ul>
    		</div>
    	</div>
    	<div class="portlet" id="p-logo">
    		<a style="background-image: url(<?php $this->text('logopath') ?>);" <?php
    			?>href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>"<?php
    			echo $skin->tooltipAndAccesskey('n-mainpage') ?>></a>
    	</div>
    	<script type="<?php $this->text('jsmimetype') ?>"> if (window.isMSIE55) fixalpha(); </script>
     
    <!--Inizio Codice BOX-RICERCA spostato più in ALTO-->
    <div id="p-search" class="portlet">
                    <h5><label for="searchInput"><?php $this->msg('search') ?></label></h5>

    Ricordandosi anche che, come da esempio riportato, la linea dove si travava il box di prima, va disabilitata (anteponendo i due caratteri // alla stessa):

    • //if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    <?php
    		$sidebar = $this->data['sidebar'];
    		//if ( !isset( $sidebar['SEARCH'] ) ) $sidebar['SEARCH'] = true;
    		if ( !isset( $sidebar['TOOLBOX'] ) ) $sidebar['TOOLBOX'] = true;
    		if ( !isset( $sidebar['LANGUAGES'] ) ) $sidebar['LANGUAGES'] = true;

    Altrimenti, appariranno due box: il vostro nuovo e, assieme, ancora quello di default.

    Ovviamente, dovete anche togliere da Mediawiki:Sidebar:

    * SEARCH
    * TOOLBOX
    * LANGUAGES
    

    che stanno di default, altrimenti vi apparirà lo stesso.

    Nota: Disattivando il $sidebar['SEARCH'], verrà disattivato anche il box relativo sottostante, nel codice; per cui, se vi apporrete il bottone del pdf online, non verrà visualizzato in quella posizione.


    Download Monobook di Esempio

    Potete scaricarvi dal nostro progetto, il file Monobook.php della versione 1.14 di wiki, già modificato e pronto per essere utilizzato nel caso utilizziate la stessa versione (ricordate di rinominare quello vecchio, invece di cancellarlo, nel caso voleste poi tornare indietro):

    Vai a: Gli Stili: esempi di Monobook modificato.





    Cancellare vandalismi


    Come cancellare i vandalismi da "Ultime Modifiche"

    Dunque; se nonostante tutti i vostri filtri Antispam, le modifiche dei vandali vi intasassero la pagina dove vi vengono visualizzate le Ultime Modifiche del vostro wiki, e voleste cancellarle, potete farlo andando nelle Tabelle del database relative al software, da dentro il phpMyAdmin [29] del pannello principale Administrator del dominio del vostro sito.


    Una volta dentro, vi troverete una grafica simile a questa:

    File:Recent changes.jpg

    la Tabella che vogliamo andare a modificare si chiama: "recentchanges".


    Cliccateci su, lì a sinistra, e poi andate qui:

    File:Ultima riga recentchanges.jpg

    dovete ora riportarvi all'ultima pagina; schiacciate col mouse sopra la doppia freccetta, oppure cliccate la linguetta dove dice appunto "Numero pagina" e scegliete l'ultima. (Di default, infatti, vi viene visualizzata la prima).


    Ok. Adesso che siete nell'ultima, visualizzerete facilmente gli ultimi cambi commessi dai vandali. Come da esempio in figura

    File:Delete recentchanges.jpg


    spuntate le caselle di quelle che vorrete cancellare (attenzione, l'operazione è irreversibile!) e poi, sotto, cliccate dove dice elimina.

    Vi verrà richiesta un'ulteriore conferma, già che non potrete più tornare indietro, e dopodichè tornando in Ultime Modifiche vedrete che quelle dei vandali saranno sparite.

    Attenzione a non cancellare cose che invece volete siano visualizzate!! Non c'è modo infatti di recuperarle.


    Nota: la cancellazione è relativa solo alla pagina di Ultime Modifiche e non alla voce stessa vandalizzata, o alla cronologia eventualmente del log utente. Quindi, se vorrete ripulire anche quella dovrete andare su un'altra Tabella chiamata "logging" (le voci, meglio cancellarle invece manualmente direttamente dal wiki, magari con l'Estensione DeletePerm che agisce sul Database elimandole in maniera definitiva).


    Cancellare gli Utenti Fantasma..

    Infine, se volete cancellare tutti quegli Utenti chiaramente vandali, o comunque "fantasma" (nel senso che non scrivono mai, o lo fanno solo per mettere spamming), dovrete invece andare sulla Tabella che dice "user". Le istruzioni sono le stesse.





    Note conclusive

    Cambio dellla password di WikiSysop
    Vai a: Cambio password WikiSysop.


    Panoramica Sommario completo
    Vai a: Sommario completo.




    Cambio password

    esempio di testo

    Nel caso vi dimenticaste la vostra Password di Amministratore (cioè, quella dell'Utente WikySysop), ecco come procedere.

    In Locale

    Per cambiare la password di wikisysop, in una "installazione in locale" sul nostro Pc, nelle istruzioni dice di procedere da linea di comando.

    Si apre cioè una finestra comandi nella sottocartella "maintenance"

    cd /var/www/naturtest/maintenance

    e si digita, poi

    php changePassword.php --user=WikiSysop --password=qualunque

    in questo modo, la password di WikiSysop adesso sarà "qualunque"; ma, naturalmente, non possiamo usare la linea di comando su di una "installazione pubblica" (non è concesso dai provider); quindi, le istruzioni forniscono un comando sql.

    Su Server pubblico

    Bisogna andare in phpMyAdmin, cliccare su "SQL" e immettere quest'altro codice:

    UPDATE user SET user_password = MD5(CONCAT(user_id, '-', 
       MD5('qualunque'))) WHERE user_name = 'WikiSysop';

    Cliccando su "esegui", la password di WikiSysop sarà sempre stata cambiata in "qualunque", nel nostro esempio.

    Uso delle Estensioni

    1. Password Reset
    2. Maintenance

    Ovviamente lo stesso comando varrà per qualunque altro utente; tuttavia, in quest'ultimo caso, vi ricordiamo che potete comodamente usare le Estensioni, per farlo (vedi capitolo dedicato). Queste istruzioni, cioè, sono solamente utili qualora perdeste proprio la "password principale" del vostro wiki, quella che vi permetterebbe, appunto, di cambiare poi tutte le altre.

    Link

    Questo è il link delle istruzioni "ufficiali" su MediaWiki, per fare il "reset", da cui abbiamo tratto spunto per fare questo articolo:




    INDICE







    esempio di testo

    esempio di testo

    Strumenti personali
    to PDF
    Crea un libro
    Spagnolo
    Non esiste ancora una traduzione in Spagnolo.
    Inglese
    Non esiste ancora una traduzione in Inglese.
    Francese
    Non esiste ancora una traduzione in Francese.