2016-07-28 4 views

Répondre

0

que vous voulez juste appeler le contenu d'un module à partir d'une URL la réponse suivante vous aidera.

Si vous voulez juste pour afficher/masquer un module dans la même page, vous pouvez utiliser quelque chose de similaire à ma réponse précédente: Joomla 3 Show different modules on same position depending on toggler

Joomla fournit la fonctionnalité d'appeler un fichier spécifique du modèle actif en ajoutant la tmpl=FILENAME clé/valeur de la chaîne de requête de l'URL. Tous les modèles intégrés ont un fichier component.php si l'utilisateur souhaite charger le modèle avec le composant uniquement. Vous pouvez vérifier le lien suivant pour plus de détails: Adding print pop-up functionality to a component.

Vous pouvez faire quelque chose de similaire pour afficher uniquement les modules que vous souhaitez charger. Vous pouvez copier le component.php dans un nouveau fichier (j'ai utilisé custom.php) et ajouté le code php suivant dans la partie <body> ... </body>.

<?php 
    $jinput = JFactory::getApplication()->input; 
    $selectedPosition = $jinput->getString("position", ""); 
    $selectedModule = $jinput->getString("module", ""); 
    $selectedModuleTitle = $jinput->getString("title"); 

    if($selectedPosition !== "") { 
     $modules = JModuleHelper::getModules($selectedPosition); 
     foreach ($modules as $module) { 
      echo JModuleHelper::renderModule($module); 
     } 
    } elseif ($selectedModule !== "") { 
     $module = JModuleHelper::getModule($selectedModule, $selectedModuleTitle); 
     echo JModuleHelper::renderModule($module); 
    } 
?> 

Donc, avec la même manière que loadposition/loadmodule œuvres que vous pouvez appeler le nouveau fichier de modèle à l'aide:

index.php?tmpl=custom&position=MODULE_POSITION 

ou

index.php?tmpl=custom&module=MODULE_TYPE 

ou

index.php?tmpl=custom&module=MODULE_TYPE&title=MODULE_TITLE 

option si vous vouloir charger le m Théodule avec un style spécifique, vous pouvez passer à la deuxième paramter de la méthode renderModule comme:

echo JModuleHelper::renderModule($module, array("style" => "xhtml")); 

Hope this helps