Nouveau sur php et la construction de plugin. Je suis un type front-end, mais j'ai besoin d'apprendre la création de modèles dans Joomla. J'ai un petit qui fonctionne qui vous donne la possibilité d'insérer et de modifier du texte dans la fonction onContentAfterTitle.
class plgContentmyplugin extends JPlugin
{
public function onContentAfterTitle($context, $article, $params, $limitstart)
{
if ($this->params->get('alt-text')) {
return $this->params->get('alt-text');
} else {
return "<p>Hello World!</p>";
}
Je comprends maintenant que le XML détermine les options de backend dans le panneau de configuration de l’administrateur. Ensuite, utilisez le php pour l'afficher.
Je veux pouvoir étendre ce plugin, principalement à des fins d'apprentissage. J'ai quelques options d'affichage XML pour changer la couleur et la taille de la police. Je suis juste un peu incertain sur le php et quelle fonction je devrais appeler pour atteindre cet objectif. Devrais-je utiliser l'un des autres paramètres? par exemple. $ contexte ou $ article? Toute aide serait très appréciée.
<field name="font-size" type="list" default="12" description="What size font should the message use?" label="Font size">
<option value="8">8px</option>
<option value="12">12px</option>
<option value="16">16px</option>
</field>
Encore une fois, mon intention ici est d’élargir mes connaissances en php et de créer des modèles que d’autres personnes peuvent utiliser. J'ai déjà expliqué comment assembler et pirater un modèle en décrivant simplement ce qui existe déjà, ce qui serait tout à fait acceptable, mais je ne suis pas sûr de ce que l'utilisateur final devra modifier et des options dont il aura besoin. Ce qui nécessite de construire sur le backend.
Donc, dans votre XML, vous utilisez name="font-size"
pour l'un des paramètres. Pour appeler cela dans le plugin, vous utilisez simplement:
$fontsize = $this->params->get('font-size');
Vous pouvez également ajouter un repli (2ème argument) pour le paramètre si aucune valeur n'est affectée:
$fontsize = $this->params->get('font-size', 12);