Aujourd'hui, nous allons regarder la dérivation que l'on appelle aussi override en anglais voire surcharge en français bien de chez nous.
Nous allons surcharger un fichier d'affichage des champs de type répétables (repeatables) afin de pouvoir appliquer à chacun des éléments répérés, un style particulier. Nous allons alors créer une classe par champs.
J'ai déjà parlé de la surcharge dans l'un de mes articles mais nous allons y revenir rapidement. Le principe de la surcharge est de prendre un fichier d'origine de Joomla dans notre cas, de modifier, afin d'en apporter des modifications ou des ajouts particuliers, et me donner en pâture à Joomla.
J'en ai aussi déjà parlé, pour opérer à cette surcharge, vous pouvez surcharger votre fichier directement à partir de l'interface de Joomla dans le menu template -> sélectionner votre template -> cliquez dans l'onglet "Créer des substitutions", sélectionnez votre élément répétable dans la colonne plugin en sélectionnant le sous-égaiement field. Vous trouverez ainsi un élément qui s'appelle répeatable en anglais, cliquez dessus, le processus de surcharge se met en place.
J'en ai aussi déjà parlé, pour opérer à cette surcharge, vous pouvez surcharger votre fichier directement à partir de l'interface de Joomla dans le menu template -> sélectionner votre template -> cliquez dans l'onglet "Créer des substitutions", sélectionnez votre élément répétable dans la colonne plugin en sélectionnant le sous-égaiement field. Vous trouverez ainsi un élément qui s'appelle répeatable en anglais, cliquez dessus, le processus de surcharge se met en place.

Lorsque Joomla vous a confirmé que la substitution était bien créé, rendez-vous dans votre répertoire de votre template, et éditer ainsi ce nouveau fichier se trouvant théoriquement dans le répertoire de votre template, dans le dossier HTML. Vous trouverez ainsi un sous répertoire [votre template]/html/plg_fields_repeatable.
Ouvrez ce dossier et éditer ainsi le fichier que vous avez surchargé dont le nom est repeatable.php dans votre éditeur de texte favoris. Si vous êtes en ligne, et que vous avez installé Phoca Commander dans votre Joomla, vous pouvez effectuer cette manipulation directement avec une option d'édition de ce composant.
Comme je vous donne l'intégralité du fichier que j'ai modifié, il vous suffit de tous sélectionner et de remplacer dans ce nouveau fichier que vous avez créé.
<?php
/**
* @package Joomla.Plugin
* @subpackage Fields.Repeatable
*
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$fieldValue = $field->value;
if ($fieldValue === '')
{
return;
}
// Get the values
$fieldValues = json_decode($fieldValue, true);
if (empty($fieldValues))
{
return;
}
$html = '<ul>';
foreach ($fieldValues as $value)
{
$html .= '<li>' . implode(', ', $value) . '</li>';
}
$html .= '</ul>';
echo $html;
