Modul nur ausgeben, wenn Inhalt gerendert wird

Moderators: Sisko1990, Sisko1990

Forum rules
Forumregeln
Post Reply
marscom
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 10, 2010 5:49 am

Modul nur ausgeben, wenn Inhalt gerendert wird

Post by marscom » Mon Jan 18, 2021 8:26 pm

Hallo Forumsgemeinde,

ein eigentlich simples Anliegen, das aber offenbar nicht ganz einfach zu lösen ist:
Das Standard-Latest-News-Modul soll auf einer Position nur ausgegeben werden, wenn auch ein Inhalt zu rendern ist. Grund: Das Modul soll, wenn denn eben Inhalt vorhanden ist, möglichst auffallen (mit Hintergrund und Padding), aber wenn kein Beitrag vorhanden ist, soll natürlich nix ausgegeben werden. Klingt simpel. Aber wenn ich mit Background und Padding arbeite, gibts eben immer was aus: Nämlich eben einen farbigen Balken.
Ich hab mir mal das da zusammengeschnippselt; funktioniert aber nicht:

Code: Select all

<?php
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules( 'newsticker' );
$output .= JModuleHelper::renderModule($module);
if (empty($output)) {
echo '<div style="background:#fff000;padding:10px">There is no content';
echo '</div>';
}
else 
{
echo $output;
}
?>
Das Modul heisst - man staune - newsticker. Und wenn nix gerendert wird, soll nix ausgegeben werden. Zur Kontrolle hab ich eben das da drin:

Code: Select all

<div style="background:#fff000;padding:10px">There is no content';
Danke, wenn sich jemand diesem Anliegen annimmt - und sorry für mein PHPanausentum.

marscom

2fik
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 221
Joined: Tue Feb 02, 2010 9:52 pm

Re: Modul nur ausgeben, wenn Inhalt gerendert wird

Post by 2fik » Tue Jan 19, 2021 9:20 am

Hi,
versuch mit if-Anweisung auf JModuleHelper::getModules und nicht auf JModuleHelper::renderModule.
JModuleHelper::getModules return an array
https://docs.joomla.org/API17:JModuleHelper::getModules

marscom
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 10, 2010 5:49 am

Re: Modul nur ausgeben, wenn Inhalt gerendert wird

Post by marscom » Tue Jan 19, 2021 9:46 am

Hi 2fik,
dankeschön für Deinen Input!
Hab das jetzt in verschiedenen Versionen ausprobiert, tut aber nicht wie erhofft:

Code: Select all

<?php
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules( 'newsticker' );
$output .= JModuleHelper::renderModule($module);
if (empty($module)) {
echo '<div style="background:#fff000;padding:10px">There is no content';
echo '</div>';
}
else 
{
echo $output;
}
?>
Die Vorschau gäbs übrigens hier: pdh.marscom.ch

2fik
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 221
Joined: Tue Feb 02, 2010 9:52 pm

Re: Modul nur ausgeben, wenn Inhalt gerendert wird

Post by 2fik » Thu Jan 21, 2021 11:04 am

hi,
versuch mit counter in dein template

Code: Select all

<?php if ($this->countModules( 'position name' )) : ?>
  <div class="dein class">
    <jdoc:include type="modules" name="position name" style="none oder rounded ....." />
  </div>
<?php endif; ?>

marscom
Joomla! Fledgling
Joomla! Fledgling
Posts: 4
Joined: Mon May 10, 2010 5:49 am

Re: Modul nur ausgeben, wenn Inhalt gerendert wird

Post by marscom » Thu Jan 21, 2021 12:23 pm

Danke 2fik,
aber das brauch ich schon ziemlich häufig. Jedoch: Wenn ich einen Background mit einem Padding drum im div hab, dann zeigts mir natürlich den Balken auch an, wenn nix drin ist. Sprich: kein Inhalt im Modul.
Was ich möchte ist, dass das div nur aktiv wird, wenn ein Modulinhalt gerendert wird.

Die Sache ist die: ich habe zunehmend Kunden, die möchten einen Superaktuell-Text auf der Site platzieren, der auffallen soll - und denen aber nicht zugemutet werden kann, ein Modul zu aktivieren/deaktivieren. Sondern höchstens eben, via Frontend einen Beitrag zu veröffentlichen oder zu löschen.
Es gibt natürlich Module wie MiniFrontpage und Advanced Module Manager. Die möchte ich aber nicht mehr verwenden; einerseits ist der AMM viel zu komplex für Webmaster und andererseits möchte ich im Hinblick auf J4 eigentlich möglichst wenig Fremderweiterungen brauchen.

Danke trotzdem. Ich bin noch im deutschen J-Forum am hausieren; da gabs ein paar konkrete Ansätze, die aber leider auch nicht funzen...


Post Reply

Return to “Komponenten, Module, Plugins”