Hello world¶
Ce tutoriel vous montre comment créer un nouveau plugin qui consiste en une nouvelle page qui affiche le texte « Hello world ».
Avant toute chose, vous devez installer Elgg.
Dans ce tutoriel, nous allons supposer que l’URL de votre site est https://elgg.example.com
.
Tout d’abord, créez un répertoire qui va contenir les fichiers du plugin. Il devrait être placé dans le répertoire mod/
situé dans le répertoire d’installation d’Elgg. Dans notre cas, créez mod/hello/
.
Fichier Manifest¶
Elgg a besoin que votre plugin dispose d’un fichier manifest qui contient des informations sur le plugin. A cette fin, créez un fichier nommé manifest.xml
dans le répertoire de votre plugin, et collez ce code dedans :
<?xml version="1.0" encoding="UTF-8"?>
<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Hello world</name>
<id>hello</id>
<author>Your Name Here</author>
<version>0.1</version>
<description>Hello world, testing.</description>
<requires>
<type>elgg_release</type>
<version>2.0</version>
</requires>
</plugin_manifest>
Voici le minimum d’informations qui doivent être présentes dans un fichier manifest :
<name>
est le nom du plugin tel qu’il sera affiché<id>
doit correspondre au nom du répertoire que vous venez de créer<requires>
doit indiquer la version minimum d’Elgg dont votre plugin a besoin<author>
,<version>
et<description>
devraient avoir des valeurs appropriées mais peuvent être renseignés librement
Initialiseur¶
Puis créez start.php
dans le répertoire mod/hello/
et copiez ce code dedans :
<?php
elgg_register_event_handler('init', 'system', 'hello_world_init');
function hello_world_init() {
}
Le code ci-dessus indique à Elgg qu’il devrait appeler la fonction hello_world_init()
une fois que le coeur du système Elgg est initialisé.
Enregistrer une route¶
L’étape suivante est d’enregistrer une route dont l’objectif est de traiter les requêtes que les utilsiateurs font vers l’URL https://elgg.example.com/hello
.
Modifiez elgg-plugin.php
pour qu’il ressemble à ceci :
<?php
return [
'routes' => [
'default:hello' => [
'path' => '/hello',
'resource' => 'hello',
],
],
];
Cet enregistrement indique à Elgg d’appeler la vue ressource hello
quand un utilisateur navigue vers https://elgg.example.com/hello
.
Voir le fichier¶
Créez mod/hello/views/default/resources/hello.php
avec ce contenu :
<?php
$body = elgg_view_layout('content', [
'title' => 'Hello world!',
'content' => 'My first page!',
'filter' => '',
]);
echo elgg_view_page('Hello', $body);
Le code crée un tableau de paramètres à passer à la fonction elgg_view_layout()
, comprenant :
- Le titre de la page
- Le contenu de la page
- Un filter qui est laissé vide puisqu’il n’y a pour le moment rien à filtrer
Ceci crée l’agencement général (layout) de base pour la page. Cet agencement est ensuite passé à travers elgg_view_page()
qui assemble et génère la page complète.
Dernière étape¶
Pour terminer, activez le plugin depuis la page d’administration d’Elgg : https://elgg.example.com/admin/plugins` (le nouveau plugin apparaît en bas)
Vous pouvez maintenant vous rendre sur l’adresse https://elgg.example.com/hello/
et vous deviriez voir votre nouvelle page !