SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 232 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?
  • [Connettersi]

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) Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • (fr) Adaptive Images

    15 novembre 2013 – 66 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • (fr) Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

  • (fr) Brownie

    6 juillet 2012 – 43 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 (...)

  • (fr) Métas +

    3 décembre – 13 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là