2016-08-13 2 views
0

Ich habe eine benutzerdefinierte Vorlage, die ein Modul in einer bestimmten Position renderes. Das Modul führt eine Abfrage zur Datenbank durch und rendert entsprechend den Ergebnissen. Wenn die Abfrage an die Datenbank jedoch leere Zeilen zurückgibt, muss das Modul nicht angezeigt werden.Wie kann überprüft werden, ob das Joomla-Modul eine Ausgabe hat?

Ich habe dies in der Vorlage:

    <!-- 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 --> 

ich mehrere Module auf "lo-mas" Position haben können, aber wenn aus irgendeinem Grund, alle Module machen keine Ausgabe, I don möchte nicht, dass der Titel angezeigt wird ("LO MÁS DE LA SEMANA")

Ist das in Joomla 3 möglich?

+0

Haben Sie diese Arbeit mit meiner Antwort unten gemacht? – jonasfh

+0

Nein .... mit diesem Code wurde ein Fehler 500 angezeigt. Leider konnte ich nicht sehen, welcher Fehler aufgetreten ist, da Joomla ihn nicht protokolliert. Apache hat den Fehler ebenfalls nicht protokolliert. Ich kann überprüfen, ob die jimport-Anweisung das Problem verursacht hat. Welches Problem genau? Ich konnte es nicht wissen. – jstuardo

+0

OK. Es funktioniert gut für mich, weiß nicht, warum es nicht für Sie ist. Sie werden wahrscheinlich ein wenig PHP Erfahrung benötigen, um dies herauszufinden. Es gibt nicht wirklich einen Grund, dass es einen Fehler geben sollte, es sei denn, Sie haben die '' -Tags durcheinander gebracht. – jonasfh

Antwort

0

Ich glaube, Sie dieses Problem lösen können, indem die Module ein wenig mehr manuell machen:

<?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 
} 
?> 

Sie können sich wahrscheinlich entscheiden, wie Ihre Module durch die Angabe der Art irgendwie wiedergegeben werden (in der Regel xhtml) und die Anwendung einige mehr html-code zur Ausgabe ...

Verwandte Themen