Mod_server_health.php et helper.php
Les fichiers mod_server_health.php et helper.php sont les fichiers ou tout la magie se passe.
Voici le fichier mod_server_health.php
<?php
//empeche les autres scripts d'executer notre fichier !! tres important pour la securité
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
// inclure le fichier helper qui contient nos fonctions
require_once(dirname(__FILE__).DS.'helper.php');
//on recupere nos paramettres saisi dans le paneau d'administration de Joomla par l'admin du site. on notera les noms identiques ici et dans le fichier XML
$domainbase = $params->get('domainbase');
$domainbase = str_replace("http://","",strtolower($domainbase));
$domainport = $params->get('domainport');
//on execute notre fonction pour verifier si notre serveur repond. on notera ModServerHealthHelper:: corepond a class ModServerHealthHelper du fichier helper.php
$status = ModServerHealthHelper::pingDomain($domainbase, $domainport);
//verifie l'etat de notre serveur maintenant que la fonction c'est executé. on notera JText::_('IS_ALIVE') va recuperer les chaines de texte traduits de notre fichier de langue ini
if ($status != -1)
{
$text = $domainbase." ".JText::_('IS_ALIVE')." (".$status." ms)";
}
else
{
$text = "<span style='color:red'>".$domainbase." ".JText::_('IS_DOWN')."</span>";
}
//on inclus le fichier tmpl/default.php pour l'affichage
require(JModuleHelper::getLayoutPath('mod_server_health'));
?>
Le fichier helper.php
<?php
//empeche les autres scripts d'executer notre fichier !! tres important pour la securité
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
//on créer notre class
class ModServerHealthHelper
{
// et notre fonction pingDomain
public function pingDomain($domain, $port)
{
$starttime = microtime(true);
$file = fsockopen ($domain, $port, $errno, $errstr, 10);
$stoptime = microtime(true);
$status = 0;
if (!$file) $status = -1; // Site est coupé
else {
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
return $status;
}
}
?>
Et enfin pour l’affichage, notre fichier default.php …
<?php //on affiche le texte echo $text; ?>
Ce fichier mériterait de recevoir plus d’informations et d’en enlever au fichier mod_server_health.php. Mais ca n’empêche pas le bon fonctionnement du module.
Enfin il ne reste plus qu’a zipper le dossier mod_server_health et de l’envoyer sur notre serveur web Joomla pour l’installer comme n’importe quel module.
Et le voici sur mon site http://teamstarbug.byethost12.com qui surveille mon serveur mumble.
Ceci est un exemple assez simple mais deja plus poussé que le "Hello World" habituel. si vous avez compris ceci sans problemes particuliers, vous pouvez attaquer des modules plus complexe.
Bon courage et bon code.
Stone
liens vers la serie complet :
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-1.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-2.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-3.html
http://pint2stone.blogspot.com/2010/12/mon-premier-module-joomla-4.html
