SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 213 visiteurs en ce moment

Home > Strumenti per i Plugin > Tutoriaux pour Plugins > Creazione di un Plug-in

Creazione di un Plug-in

24 settembre 2007 – di mmmx – commentaire

Tutte le versioni di questo articolo: [français] [italiano]

2 votes

La scrittura di plugins è per me soltanto un mezzo per scoprire le nuove funzionalità di Spip dalla sua versione 1.9.
Esistono già diversi plugins certamente più perfomanti che fanno ciò che i miei plugins propongono.
Al momento stabilito, mi dedicherò a plugins sviluppati sulla «zona» e che hanno per vocazione di essere arricchiti in modo collettivo.

Feedback dell’esperienza di creazione di un plugin.

Vedere in linea: http://spip.jermer.fr

Nel settembre scorso, mi sono lanciato nella creazione di un plugin. Poiché avevo appena provato un blog proposto da mio host ed azionato da wordpress, mi sono detto che sarebbe stato interessante avere uno strumento di istallazione di temi, un po’ come quello proposto da detto blog.
(A volte è più difficile definire le necessità che sviluppare il codice)

  1. Primi passi
  2. il file plugin.xml
  3. file utilizzato nel plugin admin_themes & modelli di spip
  4. inserire un bottone
  5. inserire unghie
  6. conclusione

Primi passi


Trovare documentazione sulla creazione di plugins
-  gli esempi/spiegazioni sulla creazione di plugins sono da ricercare su:
-  http://www.spip-contrib.net/-Tutoriaux-pour-Plugins-
-  http://www.spip-contrib.net/SPIP-1-9-Les-Plugin
-  http://www.spip.net/fr_article3448.html
-  http://www.spip.net/fr_article3458.html
Ormai è possibile trovare altri link.

Un intervento di F. Ducas sullo stesso argomento
su Spip-Dev del 13 settembre 2006 mi ha realmente illuminato.

Lo metterò sul doc. dei plugins quando ho tempo.

Io sono partito di là: http://www.spip-contrib.net/SPIP-1-...

È vero che è un po’ contotrto come sistema.

In realtà, hai quattro modi di fare un plugin:


1. Ricrei nella tua cartella di plugin l’architettura originale di spip.

Ad esempio, puoi modificare (è un esempio) il file ecrire/exec/articles_forum.php e lo metti in plugins/TonPlugin/exec/articles_forum.php: quando il tuo plugin sarà attivato, è questo file che sarà letto e non il file indigeno di SPIP. Quando i progettisti di spip modificheranno il file ecrire/exec/articles_forum.php nella versione di sviluppo, dovrai adattare il tuo file plugins/TonPlugin/exec/articles_forum.php perché sia identico (a parte le tue modifiche) al nuovo file ecrire/exec/articles_forum.php: si tratta di «seguire la SVN» (inserire le modifiche apportate dalla versione di sviluppo di SPIP al tuo file di plugin, sempre che il tuo file - quello che porta lo stesso nome - sia stato modificato nella versione di sviluppo).


2. Utilizzare le pipeline

Riconosco di essermi rotto i denti sull’organizzazione delle pipeline. Ciò che ne ho compreso, è che tu definisci nel tuo file plugin.xml la pipeline che vuoi utilizzare, quindi metti in un file php, di cui hai dato il nome a plugin.xml per la pipeline in questione, la funzione che inserisce ciò che vuoi in una pipeline.
In breve, un’analogia sarà meglio...
una pipeline è come la posta pneumatica di qualche tempo fa: metti una lettera in un cilindro che infili in un tubo e quello arriva dall’altra parte del condotto, dove la tua posta arriva al destinatario.
Oppure: hai una porta d’entrata su un mondo parallelo che ti porta in un altro mondo quando tu la attraversi.
In altri termini, i progettisti hanno incluso nel codice di SPIP una variabile «machin» (una «pipeline» machin), e la variabile machin è definita esclusivamente nel tuo plugin e da nessuna parte: se un plugin definisce «machin», «machin» sarà inserito nel core di SPIP, lì dove compare il nome della variabile (da cui l’incompatibilità di due plugins definiscono se entrambe definiscono «machin»);
se nessun plugin definisce «machin», il codice di SPIP non è modificato. Ho compreso questo leggendo questo doc e provando inizialmente ad inserire una nuova icona nello spazio privato (un buon esempio per capire come funziona): http://www.spip-contrib.net/SPIP-1-...


3. Utilizzare il tuo script del tutto nuovo e quasi indipendente dal codice di SPIP

Per far ciò, occorre comprendere come si aggiunge un bottone e come questo bottone genera una pagina (più o meno basta inserire un bottone per generare una nuova pagina - vedere il link dato al punto 2).
La pagina allora conterrà una funzione che viene eseguita, e a quel punto puoi fare quasi tutto ciò che vuoi. È così che i miei plugin «habillage» inseriscono una nuova unghia, e queste unghie eseguono uno script delle cartella exec del mio plugin.


4. indichi in plugin.xml il file di opzioni

(caricato ogni a chiamata, esegue quindi il suo contenuto a ogni chiamata.
-  attenzione: tutte le opzioni classiche di mes_options.php come la ridefinizione dell’img_pack non funzionano in questo file.

Il file plugin.xml

La presenza di questo file è indispensabile. Deve seguire una sintassi particolare.
I punti indispensabili:
Cf spip.net-http://www.spip.net/fr_art...

<plugin>
        <nom>Il mio primo plugin</nom>
        <version>1.0</version>
        <prefix>demo</prefix>
</plugin>

File utilizzato nel plugin admin_themes & modelli di spip

<plugin>

   <nom>Admin themes</nom>
   <auteur>Jacques Jermer </auteur>
        <version> Novembre 2006</version>
   <etat>test</etat>
   <description>Permet à l'administrateur de selectionner l'apparence du site a l'aide des themes<br />
        Activer ou desactiver/choisir son squelette.<br />
        Il est preferable d'activer le plugin desactiver_cache<br />
        Ajoute un bouton dans le sous menu Configuration<br />
        Affiche une copie d'ecran par theme/squelette, si image presente<br />
        sinon une image par defaut                
        Pour la mise en place, lire le fichier alire.txt
        </description>
   <prefix>admin_themes</prefix>
        <options> <!-- fichier charge a chaque hit -->
                admin_themes_options.php
        </options>
        <pipeline>
                <nom>ajouter_boutons</nom>
                <action>ajouter_boutons</action>
                <inclure>admin_themes_boutons.php</inclure>
        </pipeline>
        <pipeline>
                <nom>ajouter_onglets</nom>
                <action>ajouter_onglets</action>
                <inclure>admin_themes_boutons.php</inclure>
        </pipeline>
   
</plugin>

Più dettagli - su doc.spip

inserire di un bottone

Nel file di creazione di un bottone avrete un codice simile a quest’ultimo:

$boutons_admin[{{’naviguer’}}]->sousmenu["gestion"]= new Bouton(
"../"._DIR_PLUGIN_GESTION."/img_pack/gestion_base-24.gif", // icone
_T("gestion:Gestion des tables") //titre
);

Bisogna decidere dove il nuovo bottone (sottomenù) apparirà. Nell’esempio dato, sarà aggiunto alle opzioni di «Redazione del Sito» grazie al valore `naviguer’ di $boutons_admin

Piccolo quadro riassuntivo:
-  $boutons_admin[’accueil’] => Pannello di controllo
-  $boutons_admin[’naviguer’] => Redazione del Sito
-  $boutons_admin[’forum’] => Forum
-  $boutons_admin[’auteurs’] => Autori
-  $boutons_admin[’statistiques_visites’] => Statistiche
-  $boutons_admin[’configuration’] => Configurazione
-  $boutons_admin[’aide_index’] => Aiuto
-  $boutons_admin[’visiter’] => Visita il sito

La creazione di bottoni o di unghie implica la creazione di una cartella /exec nella cartella del plugin, di un file php che contiene una funzione exec_prefix utilizzata dal plugin, nel nostro caso function exec_admin_themes().
In questa funzione sarà messo il codice d’esecuzione del nostro plugin, o almeno una parte del codice, e il resto in altri file che saranno inclusi o chiamati.

Inserire unghie

Per vedere un’unghia, basta premere su «configurazione»: si tratta ad esempio di ’contenuto del sito’, ’interattività ’, ’funzioni avanzate’.
Nel nostro esempio, l’unghia crea una pagina nella parte privata del sito per pubblicare una scelta di temi.
Un tema è composto almeno da due file:
-  plugin.xml
-  habillage.css

a questi possono aggiungersi
-  impression.css
-  immagini...

Da parte mia, aggiungo un file png, con lo stesso nome del tema, che mi permette di pubblicare un’etichetta che rappresenta il tema.
Se questo file è assente, un’immagine di default è pubblicata.

Così si può facilitare la selezione di un tema.

Estratto del codice:

function admin_themes_ajouter_onglets($flux) {
 if($flux['args'] == 'configuration')
        return $flux;
       
 if($flux['args'] == 'plugin'){
                $flux['data']['themes']= new Bouton(
                "../"._DIR_PLUGIN_ADMIN_THEMES."/img_pack/
gestion-themes-24.gif", 'Th&egrave;mes',
                                                                                          generer_url_ecrire("admin_themes"));
        $flux['data']['squelette']= new Bouton(
                "../"._DIR_PLUGIN_ADMIN_THEMES."/img_pack/
gestion-squelette-24.gif", 'Squelette',
                                                                                          generer_url_ecrire("admin_squelette"));
 return $flux;

 
 }

La funzione riprende il ’prefix’ del plugin al quale si aggiunge _ajouter_onglets (il nome dell’azione dichiarata in plugin.xml). Il parametro $flux rappresenta il flusso (nel nostro caso vuoto) al quale si aggiungono le informazioni per la visualizzazione dell’unghia (bottone) come l’immagine, il titolo pubblicato ed il link a un file php di cui si dà soltanto il nome senza l’estensione. Questo file sta nella cartella /exec del plugin.
Se ad esempio volete aggiungere un’unghia a ’configurazione’, questa funzione aggiungerà nel flusso un’unghia con le sue proprietà (immagine, titolo, link).

Conclusione

Sperando che queste spiegazioni vi avranno ispirato il desiderio di passare alla creazione di plugins, vi raccomando, se esitate ancora, di osservare il codice dei plugins proposti.
Ad esempio, dopo essere rimasto nella parte privata del sito, mi sono ispirato al plugin jQuery per «pluginizzare» un codice javascript che permette di arrotondare gli angoli di una div, di un form e di incorporare un’immagine in fondo nella parte pubblica del sito.
Il plugin admin_themes&squelettes è scaricabile qui
la sua documentazione

Dernière modification de cette page le 18 novembre 2007

Retour en haut de la page

Tuoi commenti

Rispondere all’articolo

Chi sei?

Per mostrare qui il tuo avatar, registralo prima su gravatar.com (gratis e indolore). Non dimenticare di fornire il tuo indirizzo email.

Inserisci qui il tuo commento Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Aggiungi un documento

Retour en haut de la page

Ça discute par ici

  • (fr) Champs Extras 3

    16 janvier 2012 – 563 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • (fr) Réservation d’événements

    16 mars 2015 – 241 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • (fr) Moulinette

    17 juillet 2015 – 34 commentaires

    Un squelette qui monte et qui descend ! Moulinette est un squelette basé sur le thème Grayscale (documentation) pour Bootstrap 3. Le type de site attendu est un site en une seule page : une rubrique avec quelques articles, des titres courts, des (...)

  • (fr) Formulaire de contact avancé

    23 mars 2009 – 1372 commentaires

    Un formulaire de contact configurable, avec de multiples options.

  • (fr) Plugin « Agrandir la largeur de page »

    3 août 2015 – 21 commentaires

    Ce plugin permet d’agrandir la largeur de la page dans l’espace privé de SPIP. Vous pourrez personnaliser cette largeur si besoin. Préambule Dans l’espace privé de SPIP, lorsque nous sommes connectés, nous pouvons choisir dans nos préférences (...)