Comment créer un plugin / module simple sur cpanel

Créer un plugin pour votre interface cPanel n’est pas aussi compliqué que ce que nous pourrions penser, bien sûr cela dépend du type de plugin que nous voulons créer, mais ici nous allons voir comment créer une simple page, vous pourrez appliquer ce que vous apprendrez ici à un formulaire de contact ou autre..

Étape 1 : Créer le fichier du plugin cPanel dans le WHM

Rendez-vous dans votre WHM, et cherchez « plugin » dans la barre de recherche de gauche, vous trouverez ainsi le lien suivant : cPanel Plugin File Generator

Cliquez sur ce lien et vous arriverez sur une page qui va vous permettre de créer un plugin / module cPanel, avec la possibilité de choisir une icône et un nouveau groupe pour vos liens / pages du plugin.

Nous allons renseigner des informations d’exemple pour le tutoriel, mais entrez ce que vous souhaitez. 

Dans cet exemple, nous allons faire comme si nous souhaitions créer un plugin qui ajoutera une page qui expliquera comment créer un WordPress.

Il faut donc remplir les champs suivants :

  • Unique Identifier : Choisissez un identifiant unique pour ce plugin ( N’utilisez que des lettres, nombres et les tirets, pas d’espaces)
  • Name : Choisissez un nom pour ce plugin, vous n’avez pas de restrictions par rapport aux caractères
  • Featured Manager Support : Cochez cette option si vous souhaitez pouvoir activer et désactiver ce plugin selon le « package » dans le « Feature Manager » de WHM.
  • Group : Sélectionnez un groupe existant, ou créer-en un nouveau en cliquant sur le bouton + à droite.
  • Priority : Choisissez la priorité de ce plugin, ce n’est utile que si vous souhaitez en créer plusieurs dans le même groupe (Nous en reparlerons plus bas), en attendant vous pouvez mettre « 1 ».
  • URI : Entrez l’url du plugin concerné, ce sera l’URL qui sera utilisée pour accéder à la page du plugin dans le cPanel. Par exemple : mon-plugin/index.live.php (Je mets volontairement index.live.php au lieu de index.php car c’est ce que préconise cPanel afin de pouvoir faire des appels de différentes parties de cpanel comme le header et le footer, et utiliser l’API pour créer des plugins plus complexes)
  • URI Target : Laissez vide par défaut, cela permet de créer un lien externe, par exemple si vous souhaitez que l’icône redirige vers la page de Google, ou d’un outil comme GTMetrix..
  • Icon : Sélectionnez une icône sur votre ordinateur, elle doit être au format .png ou .svg et mesurer 48px*48px (c’est ce qui es recommandé).

Une fois les champs remplis, cliquez sur le bouton « Add item », et vous allez voir que cela a été ajouté dans un bloc à droite.

Pour le moment le plugin n’est pas créé, cela a juste enregistré une partie.

Vous pouvez soit de nouveau remplir le formulaire afin de créer un deuxième plugin, dans le même groupe, ou dans un autre, soit cliquer sur le bouton bleu « Generate » pour générer le fichier du plugin et pouvoir l’installer.

Si vous cliquez sur le bouton bleu « Generate », cela va donc créer un « package » qui contiendra tous les plugins que vous venez d’ajouter.

Le fichier du plugin sera donc automatiquement généré dans le dossier /var/cpanel/cpanel_plugin_generator/ de votre serveur.

Nous allons donc maintenant pouvoir installer le plugin 

Étape 2 : Installer le plugin sur cPanel

Pour installer le plugin, connectez-vous en SSH à votre serveur cPanel, et avant tout, rendez-vous dans le dossier /var/cpanel/cpanel_plugin_generator/ afin de vérifier que le fichier du plugin a bien été généré :

[root@ ~]# cd /var/cpanel/cpanel_plugin_generator/
[root@ cpanel_plugin_generator]# ls
mon-nouveau-plugin.tar.gz

En tapant les deux premières commandes, vous devriez donc voir votre fichier de plugin compressé au format .tar.gz

Installer le plugin cPanel
Installer le plugin cPanel

Nous pouvons donc l’installer en tapant la commande suivante :

/usr/local/cpanel/scripts/install_plugin /var/cpanel/cpanel_plugin_generator/mon-nouveau-plugin.tar.gz --theme paper_lantern

Remplacez le nom du fichier (mon-nouveau-plugin)par le vôtre bien sûr, et vous devriez voir cela :

info [install_plugin] Installing to paper_lantern
info [install_plugin] Installing creer-wordpress in feature manager ...
info [install_plugin] Done
info [install_plugin] Running sprite_generator
info [install_plugin] Queueing task to update API spec files
Plugin installed ok
Installation du plugin
Installation du plugin

Votre plugin est donc correctement installé, il ne reste plus qu’à aller voir dans le cPanel !

Plugin dans cPanel
Plugin dans cPanel

Et voilà, le lien est bien ajouté, dans mon nouveau groupe, tout en bas de la page !

C’est super, mais lorsque vous allez cliquer sur le lien, vous allez tomber sur une erreur 404, car le plugin est bien enregistré sur cPanel, mais aucune page n’est réellement créée !

Nous allons donc nous rendre dans les fichiers du cPanel et créer notre page.

Étape 3 : Création de la page

Vous pouvez créer le dossier du plugin et le fichier de la page via SSH, mais c’est beaucoup plus simple de passer par SFTP pour gérer les fichiers, avec un accès Root. Personnellement j’utilise MobaXterm, je vous le conseille vivement, il est très pratique et puissant, pour en savoir plus, c’est par ici : https://mobaxterm.mobatek.net/

Son avantage est qu’il permet de se connecter en SSH et SFTP en même temps, vous pouvez donc utiliser la ligne de commande et naviguer dans les dossier avec la souris tout comme FileZilla par exemple 

Avant tout, vous devez donc vous rendre dans le dossier cPanel de votre thème, généralement ce sera le dossier de Paper_Lantern : 

/usr/local/cpanel/base/frontend/paper_lantern/

Une fois ici, créez un dossier dont le nom sera celui que vous avez spécifié lors de la création du plugin, précédemment nous avions mis que le plugin serait appelé à l’adresse suivante : mon-plugin/index.live.php

Donc créez un dossier nommé « mon-plugin » et créer un fichier à l’intérieur de celui-ci, nommé « index.live.php ».

Si vous vous rendez sur votre cPanel et que vous cliquez maintenant sur la nouvelle icône de notre plugin pour accéder à la page, vous devriez voir le message suivant : Child failed to make LIVEAPI connection to cPanel.

Cela est normal car notre page est vide. Nous allons donc maintenant passer au contenu de notre page !

Étape 4 : Le contenu de la page du plugin cPanel

Tout d’abord, vous devez savoir trois choses intéressantes :

  • cPanel utilise Bootstrap 3, donc la plupart des composants de Bootstrap que vous souhaiterez, utiliser comme les « panels », les « tableaux », les « modals » etc fonctionneront. cPanel propose aussi un site qui montre le « Style Guide » de cPanel, et vous pouvez y récupérer des bouts de code pour l’interface de votre plugin : https://styleguide.cpanel.net/
  • cPanel propose deux dossiers dans lesquels il y a des fichiers d’exemple de pages de plugins que vous pouvez réutiliser, ils se trouvent dans les dossier « integration » et « integration_examples » de /usr/local/cpanel/base/frontend/paper_lantern/. Vous pouvez donc les éditer pour voir le contenu de ces fichiers et vous en inspirer.
  • La dernière chose intéressante est que vous n’êtes pas obligé de faire vos pages en PHP, vous pouvez aussi utiliser le Template Toolkit de cPanel, bien plus compliqué pour ceux qui ne connaissent pas vraiment, je vous conseille donc de rester en PHP, surtout que vous pouvez créer du contenu uniquement statique aussi.

Vous retrouverez des liens utiles en bas de la page pour approfondir vos connaissances sur la création de plugins cPanel 

Ouvrez le fichier index.live.php que vous avez précédemment créé et insérez ceci au début :

<?php
include("/usr/local/cpanel/php/cpanel.php");
$cpanel = new CPANEL();
print $cpanel->header( "Comment créer un WordPress" );
?>

C’est ce bout de code qui va appeler le header de l’interface de votre cPanel.

Vous avez remarqué qu’il y a mon titre « Comment créer un WordPress », remplacez-le par ce que vous souhaitez. Attention tout de même, comme vous pouvez le voir, au lieu de « é », j’ai mis le code HTML du e avec accent aigü, car si vous mettez un accent, un apostrophe ou autre caractère de ce genre en brut, votre plugin ne fonctionnera plus, il faut donc mettre le code HTML pour que cela s’affiche correctement sans avoir l’erreur « Child failed to make LIVEAPI connection to cPanel« .

Pour en savoir plus sur les codes HTML à utiliser : http://www.commentcamarche.net…-caracteres-speciaux-html

Nous allons maintenant ajouter le bout de code qui va appeler le footer de la page, le voici :

<?php
print $cpanel->footer();
$cpanel->end();
?>

Copiez et collez-le à la suite, puis sauvegardez et allez voir votre page de plugin, voici ce que vous devriez avoir :

Plugin cPanel
Plugin cPanel

Et voilà votre page de plugin fonctionne et vous pouvez ajouter tout le contenu que vous souhaitez entre les deux bouts de code que vous avez ajouté précédemment ! 

Par exemple, remplacez le contenu de votre page par le code suivant et admirez le résultat :

<?php
include("/usr/local/cpanel/php/cpanel.php");
$cpanel = new CPANEL();
print $cpanel->header( "Comment créer un WordPress" );
?>
<div class="jumbotron"> <h1>Hello, world!</h1> <p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p> <p><a href="#" class="btn btn-primary btn-lg" role="button">Learn more</a></p> </div>
<br>
<div class="alert alert-success" role="alert"> <strong>Well done!</strong> You successfully read this important alert message. </div>
<br>
<form class="bs-example bs-example-form" data-example-id="simple-input-groups"> <div class="input-group"> <span class="input-group-addon" id="basic-addon1">@</span> <input class="form-control" placeholder="Username" aria-describedby="basic-addon1"> </div> <br> <div class="input-group"> <input class="form-control" placeholder="Recipient's username" aria-describedby="basic-addon2"> <span class="input-group-addon" id="basic-addon2">@example.com</span> </div> <br> <div class="input-group"> <span class="input-group-addon">$</span> <input class="form-control" aria-label="Amount (to the nearest dollar)"> <span class="input-group-addon">.00</span> </div> <br> <label for="basic-url">Your vanity URL</label> <div class="input-group"> <span class="input-group-addon" id="basic-addon3">https://example.com/users/</span> <input class="form-control" id="basic-url" aria-describedby="basic-addon3"> </div> </form>
<br>
<div class="panel panel-default"> <div class="panel-heading">Panel heading</div> <div class="panel-body"> <p>Some default panel content here. Nulla vitae elit libero, a pharetra augue. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p> </div> <table class="table"> <thead> <tr> <th>#</th> <th>First Name</th> <th>Last Name</th> <th>Username</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td>Mark</td> <td>Otto</td> <td>@mdo</td> </tr> <tr> <th scope="row">2</th> <td>Jacob</td> <td>Thornton</td> <td>@fat</td> </tr> <tr> <th scope="row">3</th> <td>Larry</td> <td>the Bird</td> <td>@twitter</td> </tr> </tbody> </table> </div>
<br>
<div class="bs-example" data-example-id="btn-variants"> <button type="button" class="btn btn-default">Default</button> <button type="button" class="btn btn-primary">Primary</button> <button type="button" class="btn btn-success">Success</button> <button type="button" class="btn btn-info">Info</button> <button type="button" class="btn btn-warning">Warning</button> <button type="button" class="btn btn-danger">Danger</button> <button type="button" class="btn btn-link">Link</button> </div>
<?php
print $cpanel->footer();
$cpanel->end();
?>

Intéressant non ? Bien sûr il s’agit d’une page statique, mais si vous souhaitez mettre un formulaire de contact à l’intérieur, cela fonctionnera sans problème.

Si vous voulez ajouter un autre lien avec icône dans ce groupe, recommencez à la première étape, et choisissez le groupe concerné.

Liens utiles

Pour créer des plugins qui respectent l’interface de cPanel : https://styleguide.cpanel.net

Pour en apprendre plus sur la création de plugins cPanel : https://documentation.cpanel.n…K/Guide+to+cPanel+Plugins

Pour en apprendre plus sur la création de plugin WHM : https://documentation.cpanel.n…/SDK/Guide+to+WHM+Plugins

Vous aimez ? Partagez ! 😊

Laisser un commentaire