web-dev-qa-db-fra.com

Comment empêcher le rendu des modules vides de joomla, même en renvoyant false?

Comment empêcher le rendu des modules vides Joomla? Pour y parvenir-

J'ai essayé en renvoyant false à partir du fichier d'entrée du module s'il n'y a pas de sortie. J'ai écrit le code suivant dans le fichier d'entrée des modules, par exemple mod_xyx.php

// Hide mod when no output.
if ( @no_output)
{
    return ;
}

Cela fonctionne pour le modèle par défaut de Joomla mais ne fonctionne pas pour certains modèles.

1
vidyasagar

Si vous êtes sûr à 100% que la sortie de votre module est vide, votre modèle peut alors ajouter un chrome au module.

Vous pouvez vérifier comment JModuleHelper :: renderModule génère la sortie du module et (éventuellement) appelle le modèle chrome.

https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/module/helper.php#L176

1
Anibal

Je l'ai déjà rencontré par le passé, et votre réponse se trouve probablement dans vos fichiers de modèle ... vous constaterez probablement qu'elle vérifie s'il y a un nombre de modules - quelque chose comme ceci de Protostar:

<?php if ($this->countModules('position-8')) : ?>
<!-- Begin Sidebar -->
<div id="sidebar" class="span3">
    <div class="sidebar-nav">
        <jdoc:include type="modules" name="position-8" style="xhtml" />
    </div>
</div>
<!-- End Sidebar -->
<?php endif; ?>

Il ne considère pas s'il y a une sortie ou non, donc restitue la position du module indépendamment de ce qui est rendu ou non.

0
GDP