Bonjour, je suis un débutant dans Joomla et je souhaite comprendre l’une des fonctionnalités de Joomla.
Dans les templates joomla, nous utilisons
jdoc:include type="component"
déclaration. Mais je ne suis pas en mesure de comprendre comment cette fonctionnalité a été implémentée dans Joomla. Comment passer le nom du composant dans l'URL est rendu par la déclaration ci-dessus de Joomla? S'il vous plaît, aidez-moi à comprendre.
À partir de cette phrase dans Joomla docs :
L’instruction jdoc: include est un script Joomla! méthode du modèle d'affichage du contenu spécifique à la page en cours d'affichage. Il existe différentes déclarations jdoc: include , chacune renvoyant une partie différente d'un fichier Joomla! page. Le remplacement lui-même est effectué dans JDocumentHTML :: _ renderTemplate. Voir aussi _parseTemplate.
J'ai analysé la classe JDocumentHTML dans /libraries/joomla/document/html/html.php
et il semble que Joomla charge le modèle et y cherche les instructions jdoc. La fonction getBuffer récupère le code à ajouter à la place de jdoc.
foreach ($this->_template_tags as $jdoc => $args){
$replace[] = $jdoc;
$with[] = $this->getBuffer($args['type'], $args['name'], $args['attribs']);
}
return str_replace($replace, $with, $this->_template);
La fonction getBuffer appelle une autre fonction de rendu pour charger spécifiquement le bon composant ou module. Pour les composants, le code est le suivant:
$renderer = $this->loadRenderer($type);
...
$this->setBuffer($renderer->render($name, $attribs, null), $type, $name, $title);
Quoi qu'il en soit, à ce stade, je suis un peu confus et je ne peux pas comprendre comment fonctionnent les différents moteurs de rendu. Voyons si quelqu'un d'autre connaît le truc.