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é.
Définir un gestionnaire de page¶
La prochaine étape est d’enregistrer un gestionnaire de page qui a pour objectif de gérer les requêtes que les utilisateurs font sur l’URL https://elgg.example.com/hello
.
Modifiez start.php
pour qu’il ressemble à ceci :
<?php
elgg_register_event_handler('init', 'system', 'hello_world_init');
function hello_world_init() {
elgg_register_page_handler('hello', 'hello_world_page_handler');
}
function hello_world_page_handler() {
echo elgg_view_resource('hello');
}
L’appel de elgg_register_page_handler()
indique à Elgg qu’il devrait appeler la fonction hello_world_page_handler()
quand un utilisateur navigue sur https://elgg.example.com/hello/*
.
La fonction hello_world_page_handler()
confie l’affichage de la page à un fichier de vue appelé hello.php
.
Voir le fichier¶
Créez mod/hello/views/default/resources/hello.php
avec ce contenu :
<?php
$params = array(
'title' => 'Hello world!',
'content' => 'My first page!',
'filter' => '',
);
$body = elgg_view_layout('content', $params);
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 !