2010-09-22 7 views
3

Je suis un débutant absolu utilisant Joomla. J'essaye de charger un module dans un autre module mais je ne peux pas trouver comment faire ceci. J'ai essayé d'ajouterChargement d'un module dans un autre module dans Joomla

{loadposition position} 

avec « position » a remplacé la position du module, je voudrais être chargé, mais il semble fonctionner que dans des articles.

J'ai trouvé une autre solution ici: http://forum.joomla.org/viewtopic.php?p=1531754&sid=bae9b487983c7e8a9f9c4fbd2958cf52#p1531754 mais je ne sais pas où mettre ce code PHP dans mon module.

Merci de votre aide!

Répondre

12

Vous devez ajouter manuellement le code pour rendre votre module interne à votre module conteneur. Voici un exemple:

jimport('joomla.application.module.helper'); 
$module = JModuleHelper::getModule('mainmenu'); 
$attribs['style'] = 'xhtml'; 
echo JModuleHelper::renderModule($module, $attribs); 

Extrait de: http://docs.joomla.org/JModuleHelper/renderModule

Pour afficher la sortie, vous devez placer le code dans la section de votre source de module externe que vous voulez que le html à rendre. Où vous voudriez remplacer «mainmenu» avec le nom du module que vous voulez incorporer. (J'ai enlevé le deuxième param, car je suppose que vous ne voulez pas afficher un titre).

+0

de Ok merci, je vais donner un essai et les commentaires;) –

+0

Suis-je censé créer un nouveau modèle de module? Je pensais que je pourrais utiliser un existant ... –

+0

Je ne suis pas complètement sûr de ce que vous voulez dire en créant un nouveau modèle de module. Si vous voulez ajouter une nouvelle position de module à votre modèle de site Web, alors non. Le code rendrait un module dans un autre module - pas besoin de spécifier une position pour le module interne. Vous devrez cependant modifier le code de votre module externe, donc s'il est utilisé ailleurs sans le module interne, vous voudrez probablement ajouter un paramètre de module spécifiant s'il ne doit pas afficher le module interne, puis effectuez une vérification avant d'ajouter le code Je posté. –

4

Si vous devez apporter un autre module autre que le menu (partout toujours vous montrer un module)

Ceci est mon truc: (travaux à 2,5 et 3,0)

Accédez à votre module et créer une fausse position seulement pour cela comme "oehelp" dans ce cas.

$document = &JFactory::getDocument(); 
$renderer = $document->loadRenderer('modules'); 
$options = array('style'=>'raw'); 
echo $renderer->render('oehelp',$options,null); 

le tour est joué,

Saludos

Questions connexes