Selon le titre, existe-t-il déjà un événement qui peut fonctionner comme une sorte de OnAfterCompileHead
?
Peut-être que onAfterDispatch
, onAfterRender
ou onBeforeRender
?
J'ai besoin de changer certaines balises méta dans le <head>
comme canonical
, title
, etc.
Je dois modifier ma réponse car je pense que je n'ai pas bien compris ce que vous voulez réellement au départ.
Avec tous les 3 événements, vous pouvez faire des changements sur la tête. Si vous avez d'autres plugins qui font la même chose, vous pouvez les commander à nouveau.
<head>
Les données:La tête est stockée dans l'objet de document et vous pouvez y accéder et la manipuler facilement:
$doc = JFactory::getDocument();
$doc->setTitle('My Title');
$doc->setMetaData( 'tagname', 'tag content' );
$doc->addCustomTag( '<!-- this is a comment -->');
Exemples:
$doc->setMetaData( 'description', 'My Description' );
$doc->addCustomTag( '<meta property="og:title" content="Custom og Title tag">');
Vous pouvez également obtenir les données complètes de la tête avec:
$head = $doc->getHeadData();
// echo '<pre>' . print_r($head, true) . '</pre>';
Le $head
est le tableau de données destiné au HTML <head>
section sous forme de tableau.
Ceci ne renvoie que les données ajoutées par l'ensemble de méthodes du JDoc. Il ne renverra pas de données sur les fichiers liés directement à partir de HTML dans l'en-tête du modèle.
Vous pouvez ensuite définir les données sur le $head
comme:
$head['metaTags']['standard']['keywords'] = 'keyword1, keyword2,...';
$doc->setHeadData($head);