web-dev-qa-db-fra.com

jdoc: inclure dans Joomla

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.

6
Manish Kumar

À 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.

5
Kitase88