J'ai un composant personnalisé, en fait plusieurs. Chacun aura un code HTML brut et codé en dur au début et à la fin de leurRécupère les valeurs codées en dur du composant dans le plugin dans Joomla 3.x
J'ai un plugin système qui doit obtenir ce code HTML et dans certains cas le changer pour autre chose, qui peut être géré dans le backend . En tant que plugin content cela fonctionne bien sur tous les articles com_content, mais il est ignoré par les composants, je crois comprendre que les plugins système peuvent le faire mais je ne peux pas récupérer les données dans le plugin et le renvoyer
exemple de texte de composant (text1 $, texte2 $ sont définis en haut du document)
JPluginHelper::importPlugin('system');
JPluginHelper::importPlugin('plgSystemMyplugin');
$dispatcher =& JDispatcher::getInstance();
$data = array($text1, $text2); // any number of arguments you want
$data = $dispatcher->trigger('onBeforeRender', $data);
<article>
<div class="spacer" style="height:25px;"></div>
<div class="page_title_text">
<h1>title</h1>
<?php var_dump($data); ?>
</div>
<section>
mon plugin:
jimport('joomla.plugin.plugin');
class plgSystemMyplugin extends JPlugin {
function onBeforeRender() {
if (JFactory::getDocument()->getType() != 'html') {
return;
}
else {
$document=JFactory::getDocument();
$document->addCustomTag('<!-- System Plugin has been included (for testing) -->');
$document=JResponse::getBody();
$bob=JResponse::getBody();
$db = &JFactory::getDbo();
$db->setQuery('SELECT 1, 2 FROM #__table');
$results = $db->loadRowList();
$numrows=count($results);
if($numrows >0) {
foreach($results as $regexes) {
$document = str_replace($regexes[0],$regexes[1],$document);
}
return $document;
}
else {
$document = 'error with plugin';
}
JResponse::setBody($document);
return $document;
}
}
}
au $ data moment retourne un tableau avec une 1 et valeur de clé (chaîne) " "(vide/vide).
mais pas les données de la base de données que j'attends.
en termes simples que j'ai {sometext}
dans mon dossier et ma base de données et il devrait revenir <p>my other text</p>
peut vous aider?
merci
merci pour cela, j'ai '$ document-> addCustomTag ('');' dans le code du plugin système et il est en cours de sortie à l'écran. il a été correctement installé, les noms et les emplacements correspondants, mais ne semble pas créer d'autres éléments à l'écran. – ChelseaStats
J'ai ajouté une mise à jour. –
'$ bob' était là pour un débogage que je faisais mais utilisait' $ document' tout au long, y compris les lignes ci-dessus assigner le corps à '$ bob' où il était également assigné à' $ document' de toute façon ne peut toujours pas obtenir ce plugin pour changer le contenu brut. Merci quand même pour vôtre aide. :-) – ChelseaStats