Documentation

Light-weight, fast, simple and powerful!
 
Translations of this page?:

Créer un plugin

Ce tutoriel va vous apprendre à créer un plugin simple pour Wolf CMS.

Les bases

Une première chose importante avec l'API des plugins de Wolf CMS : vous pouvez à tout moment faire planter l'application entière !

Wolf CMS se voulant souple, il offre la possibilité au développeur de faire ce qu'il veut. C'est cette même raison qui vous permet intégrer du code PHP directement dans vos pages, par conséquent, vos nouveaux plugins ont besoin d'être bien sécurisés.

Ce qu'il faut savoir sur les standards.

  1. Le nom du dossier contenant le plugin et celui-ci doivent être strictement identiques et doivent être en minuscules_avec_des_underscores.
  2. Utilisez votre propre id de plugin avant chaque nom de fonction, afin d'éviter les re-déclarations de fonctions.
  3. Vous pouvez utiliser des classes (POO), mais n'oubliez pas que tout plugin est chargé à la fois dans la partie visible (site web) et invisible (administration) de Wolf CMS par rapport au visiteur nornal de votre site.

Le plugin "Hello World"

Maintenant que vous connaissez les standards, allons créer un plugin ! Le meilleur moyen d'apprendre est de commencer par créer un plugin simple que nous allons baptiser “Hello World Plugin”.

  • Créer le dossier du plugin et le nommer “hello_world” dans le dossier wolf/plugins.
  • Ajouter un fichier index.php dans ce même dossier,
  • Il vous faudra placer les infos du plugin dans votre “index.php”. Voici un exemple :
Plugin::setInfos(array(
    'id'          => 'hello_world',
    'title'       => 'Hello world!', 
    'description' => 'Permet d\'afficher "hello_world" ou vous voullez !', 
    'version'     => '1.0', 
    'website'     => 'http://www.wolfcms.org/')
);
 
function hello() {
    echo 'Hello World!';
}

Ne pas oublier d'ouvrir la balise php ! (<?php)

  • Maintenant, sauvegardez votre fichier index.php
  • Connectez vous dans l'espace d'administration de Wolf CMS et activez le plugin 'Hello World' en cochant la boîte.
  • Créez une une nouvelle page et exécutez votre fonction hello() avec <?php hello(); ?>.
  • Sauvegardez et publiez la page.
  • Maintenant, regardez-là. Vous verrez un “Hello World!” venant de votre plugin sur l'écran.

Essayez d'ajouter ce code dans des extraits ou des gabarits !

C'était la base des bases de la création de plugins, voyez comme il est simple d'ajouter vos propres fonctions globales dans Wolf CMS ! (d’où l'importance d'utiliser un préfixe spécifique aux fonctions de vos plugins).

More advanced topics

Options de //setInfos//

Voici un exemple assez complet d'utilisation de la méthode setInfos :

Plugin::setInfos(array(
    'id'          => 'hello_world',
    'title'       => 'Hello world!',
    'description' => 'Affiche "Hello World!" où vous voulez !',
    'version'     => '1.0',
    'license'     => 'GPL',
    'author'      => 'Martijn van der Kleijn',
    'website'     => 'http://www.wolfcms.org/',
    'update_url'  => 'http://www.wolfcms.org/plugin-versions.xml',
    'require_wolf_version' => '0.5.0',
    'type' => 'both'
));

Encore une fois, n'oubliez pas d'ouvrir le tag PHP (<?php)

The options explained

  • id – obligatoire - Le nom du dossier, toujours en minuscules, de préférence avec un seul mot ou séparés par des traits de soulignement “_”.
  • title – obligatoire - Le nom du plugin tel qu'il sera affiché dans le panneau d'administration.
  • description – obligatoire - Description du plugin pour le panneau d'administration.
  • version – obligatoire - Indique la version du plugin, de préférence au format x.y.z.
  • license – obligatoire - La licence s'appliquant au plugin. Note : celle-ci doit être compatible avec la licence de Wolf CMS.
  • author – Votre nom.
  • website – Votre site.
  • update_url – Doit pointer vers un fichier xml contenant la liste des dernières mises à jours de votre plugin. Strucure du fichier XML (en).
  • require_version – La version minimale de Wolf CMS pour pouvoir exécuter convenablement le plugin.
  • type – Needs to be included when the plugin is intended to work in the front-end of the website as well instead of just the admin section. FIXME

Cette page est incomplète et en cours de traduction. Revenez plus tard ! FIXME

Adding javascript files to your plugin

Sometimes you will need to be able to add external javascript files to the generated page an end-user sees. Currently there are two options:

  1. Add your javascript code to an automatically included file.
  2. Specifically add one or more javascript files. (backend only)

Using the automatically included file

Wolf CMS automatically detects the presence of and includes a javascript file using the naming convention: .js

So if your plugin is called “tinymce”, the file that automatically gets included is: “tinymce.js”

Specifically adding one or more files

This function is currently only available for the backend. But since most plugins will generally be for the backend, this should not be a huge problem. To add a javascript file, simply use the following code in your plugin’s index.php file:

Plugin::addJavascript('myplugin', 'myCustomJavascript.js');

or:

Plugin::addJavascript('myplugin', 'asubdirectory/myCustomJavascript.js');

Adding filters to your plugin

First of all, you need to know that a filter is only used in the backend of Wolf CMS. It will never be loaded in the frontend of the website. A filter is intended to provide content editors and the like with a an easy Wiki/WYSIWYG/WYSIWYM style editor. The exact style varies between filter implementations.

A filter can be linked to a toolbar like the Markdown and Textile Filter, that extends the Control.TextArea.ToolBar. Take a look at the markdown.js file in the Markdown plugin. It is easy to create your own ToolBar.

To add your filter to the filters list, you have to call Filter::add and pass the Plugin Id and the filter file path.

Filter::add('hello_world', 'hello_world/filter_hello_world.php');

In your filter_hello_world.php file you need to code the HelloWorld class (camelized name of hello_world); this is the convention used. When a page part filter is set to your filter, the function applied will be called with the text of the part in parameter. Let’s create a simple HelloWorld filter.

class HelloWorld {
    function apply($text) {
        return "<p>Hello World!</p>\n\n".$text;
    }
}

Never forget to start your file with the php tag: <?php

This filter will return the text prefixed by a Hello World! paragraph.

 
fr/tutorials/plugin.txt · Last modified: 2011-09-12 00:46 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2
Copyright 2010 wolfcms.org / design by yello studio / Wolf CMS Inside