2016-08-13 4 views
0

J'ai un modèle personnalisé qui rend un module dans une certaine position. Le module fait une requête à la base de données et rend selon les résultats. Cependant, si la requête à la base de données renvoie des lignes vides, le module n'a pas besoin d'être affiché.Comment vérifier si le module Joomla a une sortie?

je ce dans le modèle:

    <!-- lo más de la semana --> 
        <?php if ($this->countModules('lo-mas') > 0): ?> 
         <div class="row"> 
          <div class="lomas"> <h3>LO MÁS DE LA SEMANA</h3></div> 
          <jdoc:include type="modules" name="lo-mas" /> 
         </div> 
        <?php endif; ?> 
        <!-- fin lo más de la semana --> 

je peux avoir plusieurs modules à la position « lo-mas », mais si, pour une raison quelconque, l'ensemble des modules ne rend pas de sortie, je ne ne veut pas que le titre soit affiché ("LO MÁS DE LA SEMANA")

Est-ce possible dans Joomla 3?

+0

Avez-vous fait ce travail avec ma réponse ci-dessous? – jonasfh

+0

Non .... avec ce code, une erreur 500 a été affichée. Malheureusement, je n'ai pas pu voir quelle erreur exacte s'est produite puisque Joomla ne l'a pas enregistré. Apache n'a pas enregistré l'erreur non plus. Je peux vérifier que l'instruction jimport causait le problème. Quel problème exactement? Je ne pouvais pas savoir. – jstuardo

+0

OK. Cela fonctionne bien pour moi, ne sais pas pourquoi ce n'est pas pour vous. Vous aurez probablement besoin d'une expérience PHP minimale pour comprendre cela. Il n'y a pas vraiment de raison pour qu'il y ait une erreur, à moins que vous ne fassiez une erreur avec les balises ''. – jonasfh

Répondre

0

Je pense que vous pouvez résoudre ce problème en rendant les modules un peu plus manuellement:

<?php 
jimport('joomla.application.module.helper'); 
$modules = JModuleHelper::getModules('lo-mas'); 
$output = ''; 
foreach ($modules as $module) { 
    $output .= JModuleHelper::renderModule($module); 
} 
if (trim($output)){ 
?> 
<div class="row"> 
    <div class="lomas"> <h3>LO MÁS DE LA SEMANA</h3></div> 
    <?php echo $output; ?> 
</div> 
<?php 
} 
?> 

Vous pouvez probablement décider exactement comment vos modules sont rendus en spécifiant le style en quelque sorte (généralement xhtml), et l'application d'un peu plus html-code à la sortie ...