Le besoin spécifique
Dans le cadre de mes fonctions, je dois différencier deux grandes catégories d'articles jumia. Ces 2 catégories correspondent à du contenu homogène ou hétérogène.
Pour différencier chacun des deux types, nous avions opté par l'insertion dans le titre, d'un caractère UTF8 particulier, une icône spécifique. Comme ce caractère est une image encodée en UTF8, elle peut facilement être intégré dans le champ titre d'un article joomla.
Cependant, si nous souhaitons lister l'ensemble de ces articles, la recherche et réalisable certes, mais en regardant le contenu du champ point bien que cela soit réalisable, je trouve la méthode particulièrement pas du tout informatique. C'est la raison pour l'accueil, je passe désormais par un champ personnalisé dans lequel je spécifie ou non une ou l'autre spécificité cet article.
Fonctionnement
Dans un premier temps, au niveau des champs personnalisés de jumia, j'ai déclaré un champ que j'ai intitulé fiche point rouge. C'est de cette manière que nous différencions nos types d'articles, certains ont un point rouge dans le titre, d'autres non.
Si Subway est activé, en d'autres termes si à case à cocher est cocher, alors à ce moment-là virgule le titre commencera par un point rouge, ce point rouge étant un caractère encodé en UTF8.
Ce plugin regarde donc si ce champ personnalisé est coché, et si tu es le cas, il rajoute ce caractère avant le texte du titre
fichepointrouge.php
<?php
defined('_JEXEC') or die('Access deny');
class plgContentFichePointRouge extends JPlugin
{
function onContentPrepare($content, $article, $params, $limit){
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$customFields = FieldsHelper::getFields('com_users.user', JFactory::getUser(), true);
$a = FieldsHelper::getFields('com_content.article', $article);
foreach($a as $unCP)
{
if ($unCP->name=="fiche-point-rouge")
{
if($unCP->value == "oui")
{
$article->title = "🔴 ".$article->title;
}
}
}
}
}
fichepointrouge.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" type="plugin" group="Content">
<name>Fiche à point rouge</name>
<author>Sebastien LHUILLIER</author>
<creationDate>Novembre 2023</creationDate>
<copyright>Sébastien LHUILLIER</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>Ce plugin ajoute un point rouge devant le titre de la fiche lorsqu'elle est marquée contenant plusieurs matériels</description>
<files>
<filename plugin="fichepointrouge">fichepointrouge.php</filename>
<filename>fichepointrouge.xml</filename>
</files>
</extension>
