Suite à une demande d'une personne sur un forum consacré à notre beau CMS Joomla, je vous présente un de mes derniers modules qui s'installe du côté administrateur. Je l'ai codé chez moi et installer sur mon serveur de production professionnelle, j'en suis absolument et ravi

À quoi sert-il ?

Dans le cadre de mon projet professionnel, je dois gérer pas mal de pièces jointes relativement volumineuses sur le serveur. À force de remplir le serveur de pièces jointes, j'ai peur de me trouver relativement vite à court de place ! Afin de voir régulièrement où j'en suis, j'ai écrit ce module qui est basé sur 2 fonctions propres à PHP :

  • La première intitulée disk_free_space permet comme son nom l'indique de calculer la taille restante sur la partition qui m'est allouée sur le serveur.
  • La deuxième fonction utilisée s'appelle disk_total_space et permet de retourner à l'utilisateur le nombre d'octets disponible(s) sur le serveur.

Les deux fonctions retournant un résultat en octets, il suffit de diviser par une succession de /1024 pour trouver la taille en mega, en giga ou en kilo-octets.
Lorsqu'on récupère c'est deux valeurs, mon programme les affiche dans une simple bulle d'aide. Il suffit donc de placer la souris au-dessus de l'icône disquette pour que cette bulle d'aide apparaîsse.

taille dispo1

taille dispo2

Mais comme le serveur doit aussi prendre en compte la taille la base de données stockée en terme de volume de données, j'ai aussi intégré cette fonctionnalité dans ce module. En effet, grâce à une requête SQL sur la table schema de mysql, il est relativement aisé de trouver cette valeur dans cette table système. Pour information, cette table se trouve dans information_schema.tables.
Après avoir converti ces valeurs retournées et tronquées avec la fonction round dans ma requête SQL, il ne reste plus qu'à les afficher après les avoir converties dans la meilleure subdivision possible. Dans notre cas nous allons des octets aux tera-octets. En faisant une troncature de ses valeurs converties, tant que la valeur n'atteind pas 0 cela signifie que le nombre retourné dans cette subdivision est affichable à l'utilisateur. Bien entendu, si vous divisez par 1024 à chaque fois, le résultat n'étant pas un entier naturel, il est toujours tronqué.
Enfin, j'ai utilisé dans mes calculs le fait que, jusqu'à présent, il y a division maximale utilisée : le téraoctet. Je pense que d'ici quelques dizaines d'années, il faudra revoir cette opération mathématique et rajouter une ou deux divisions par 1024.

Comment le configurer ?

Pour pouvoir voir votre module dans l'administration de Joomla, vous devez intégrer cette fonctionnalité le sous-dossier mod_tailleDispo dossier modules du répertoire administrateur de Joomla puis procéder à la découverte des modules de manière très classique. Si vous êtes sous un environnement Linux, pensez à corriger le code pour supprimer toutes les majuscules, y compris dans le fichier XML !
Pour ma part, donc, la console d'administration fonctionne avec la template intitulée Hathor.
Dans ce cas, afin de voir votre mot dur dans le coin inférieur droit, il suffit de positionner ce module dans la position footer. Je n'ai pas essayé avec d'autres templates de type administration.

Mon Github

slhuilli1's GitHub repositories