Plus tôt aujourd’hui, j’ai créé un petit plugin qui me permet de personnaliser la ligne d’auteur de chaque message de forum avec du CSS basé sur une logique spécifique au site. Exemple :
function initColorize(api)
{
api.includePostAttributes('colorized_groups');
// Détournement des icônes de publication pour y glisser du CSS pour les messages de forum
api.addPosterIcons((cfs, attrs) => {
// (Une vraie icône pourrait être spécifiée en remplissant le champ icon.
// J'ai supprimé l'icône car elle devenait un peu encombrée.
// Pour l'instant, sans icône spécifiée, c'est juste pour la mise en surbrillance CSS du nom.)
if (attrs.colorized_groups.indexOf("developer") > -1)
return { icon: '', className: 'developer', title: 'Developer' };
else if (attrs.colorized_groups.indexOf("wip_researcher") > -1)
return { icon: '', className: 'wip_researcher', title: 'WIP Researcher' };
else if (attrs.colorized_groups.indexOf("researcher") > -1)
return { icon: '', className: 'researcher', title: 'Researcher' };
});
Ensuite, je veux faire des personnalisations similaires pour le chat en temps réel – mais il n’y a pas d’équivalent à api.addPosterIcons pour les messages de chat en temps réel. Peut-être que je pourrais utiliser api.decorateWidget, mais le composant correspondant pour le chat est ChatMessageInfo qui est un composant, pas un widget.
Désolé si c’est évident, mais quelle serait une bonne stratégie pour personnaliser ChatMessageInfo à partir d’un plugin ?
(Il est intentionnel que je ne m’appuie pas sur le groupe principal de l’utilisateur car il y a une logique spéciale pour déterminer lequel doit avoir la priorité et je ne veux pas avoir à m’appuyer sur l’utilisateur/l’administrateur pour le définir correctement manuellement.)
Merci !