Dans cet article et en relation avec l'article 880, je vais répondre à ma problématique suivante : j'administre professionnellement un site Internet basé sur Joomla, dans lequel j'ai installé pas mal de composants, de plugins et de modules spécifiques, très souvent développés par mes soins bien entendu.
À force d'écrire mes plugins spécifiques, et à force de développement, j'ai un peu de mal à me rappeler de tous les short-codes que je dois utiliser dans mon interface d'administration de rédaction de mes articles. Je vous rappelle que l'ensemble des plugins, mais vous voyez par vous-même en lisant mes articles, sont relativement très "métier".
Ma problématique
Que va-t-on faire ?
Nous allons combler un vide, mais aussi un manque ! En effet, sous le dernier champ note de version de la console d'administration de Joomla, il nous reste de la place pour écrire des informations. C'est à cet endroit que je vais rentrer l'ensemble des notes que je souhaite (a)voir sous les yeux. Comme la place est quand même relativement limitée, nous allons créer un div auquel nous allons appliquer un style particulier de type overflow-y pour avoir un ascenseur vertical et pouvoir se balader dans l'ensemble du div afin de voir toutes ces commandes qui m'intéressent. Pour la partie CSS je vous laisse faire, je ne me concentre ici que sur l'ajout de ce div.
Comment faire ?
Dans un premier temps, dans votre interface d'administration de Joomla 3, nous allons créer un héritage de notre template Isis afin de ne pas toucher aux fichiers d'origine.
Pour cela rendez-vous dans l'interface d'administration des templates au travers du menu extension -> templates -> templates.
Sélectionner dans la liste déroulante le terme administration pour accéder à notre template Isis qui est une template spécifique à l'administration de Joomla. Lorsque cette tempête apparaît, vous avez créé la substitution de comme content en sélectionnant l'élément article .

Lorsque votre substitution (oui on parle bien d'héritage dans la terminologie normale de développeurs) est créée, nous allons éditer ce fichier. Pour cela, rendez-vous dans le répertoire [joomla] -> administrator -> template -> isis -> html -> com_content -> article. Vous allez vous retrouver avec un fichier nommé edit.php. éditez ce fichier et rendez-vous à la ligne 76 après la commande
<?php echo JLayoutHelper::render('joomla.edit.global', $this); ?>
afin de rajouter un simple include, commande php qui va intégrer un fichier externe à cette template. Ce qui donne, en reprenant la ligne ci-dessus :<?php echo JLayoutHelper::render('joomla.edit.global', $this); ?>
<?php include('explications.php'); ?>
Contenu du XML contenant les explications
- un nom
- un tag (le shortcode du plugin)
- un explication bien entendu
Ainsi, un fichier XML pourrait être de la sorte :
<SEBexplication>
<nom>SEOExplication</nom>
<tag>{ici mon tag}</tag>
<explications>Ce tag permet au plugin ... de ...</explications>
</SEBexplication>
Le fichier explications.php
C'est ce fichier qui a pour rôle de "détecter" les fichiers d'explications dans le dossier Joomla. Il comprte le code suivant :
<?php
function scanAllDir($dir) {
$result = [];
foreach(scandir($dir) as $filename) {
if ($filename[0] === '.') continue;
$filePath = $dir . '/' . $filename;
if (is_dir($filePath)) {
foreach (scanAllDir($filePath) as $childFilename) {
$result[] = $filename . '/' . $childFilename;
}
} else {
$result[] = $filename;
}
}
return $result;
}
$files= scanAllDir(JPATH_BASE);
echo '<div class="seb-admin-explications">';
foreach($files as $unFichier)
{
if (strpos($unFichier, 'SEOExplication')>0)
{
$xml = simplexml_load_file($unFichier);
//echo $unFichier;
echo '<div class="nom">'.$xml->nom.'</div>';
echo '<div class="tag">'.$xml->tag.'</div>';
echo '<div class="explication">'.$xml->explications.'</div>'; } } echo '</div>'; >
Libre à vous de styliser les class seb-admin-explications, nom, tag et explication pour que votre rendu soit + personnel. Je vous joins toutefosi le CSS utilisé dans mon cas :
.seb-admin-explications {
border: 2px solid red;
padding: 1%;
border-radius: 5px;
background-color: lightyellow;
}
.seb-admin-explications .nom {
text-align: center;
font-weight: bold;
}
.seb-admin-explications .tag {
float: left;
margin-right: 2%;
color: blue;
font-weight: bold;
}
Notez que je n'ai pas de style particulier pour la class seb-admin-explications.explication
