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

 Pour celles et ceux qui me connaissent réellement, tout le monde sait que j'ai quelques soucis de santé qui me font "perdre la tête". En effet, j'ai des soucis de mémorisation. Et lorsque je dois retenir des quantités de commandes de l'ensemble des plugins que je code (les shortcodes), sans compter des rédactions spécifiques de mes articles techniques, j'aurais aimé avoir sous les yeux, au moment de la rédaction d'un article dans Joomla content, un petit pavé avec mes propres notes à connaître : shortcodes, aide, mémos....

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.
firefox 4cnw5GvStM

Comment faire ?

Avant toute chose, je tiens à remercier Serge de notre groupe Facebook d'utilisateurs lorrains qui m'a véritablement mis sur la piste il y a désormais plusieurs semaines. En effet je n'avais pas eu encore le temps de me pencher sur ce problème. Autant vous dire que des idées d'articles venant combler mon site internet, il va encore y en avoir pas mal.
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 .
firefox IguEcpdwmZ
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'); ?>
 Je ne peux que vous conseiller de faire une inclusion au travers de la commande PHP include qui vous permettra de spécifier le contenu dans un fichier externe à celui de edit.php. Désormaiis, vous voila avec un nouveau fichier, explications.php, dans lequel vous pourrez ajouter du contenu. Je pense même qu'on aurait pu lui donner l'extension .html

Contenu du XML contenant les explications

Alors, vous me connaissez, j'aime l'automatisation des choses. Impossible donc de devoir éditer le fichier à la main (enfin, on peut le faire bien entendu) Mais l'idée est de parcourir l'ensemble des dossiers afin de lister les fichiers nommés dont le nom porte la chaine de caracteres SEOexplications, avec une extension xml. Dans ce fichier, nous allons stocker 3 informations essentielle au rédacteur d'articles Joomla (ca c'est moi, et j'en profite pour spécifier que toutes les rédctions d'articles, je les rédige toujours depuis l'administrator, je ne rédige jamais en front office)
  • 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

 

Mon Github

slhuilli1's GitHub repositories