it-swarm.com.de

Laden Sie ein Modul zwischen Modulen an derselben Position

Ich bin kein PHP-Experte, also entschuldige mich im Voraus (ich verwende Joomla! 3.3.6 in Italienisch).

Was ich tun/bekommen möchte, ist: - ein HTML-Modul in Joomla mit der Position "position-x" erstellen und aktivieren (was in der Vorlage nicht wirklich existiert) - dieses Modul bei Auftreten einer bestimmten Bedingung per PHP aufrufen ( in meiner index.php), zwischen zwei spezifischen Modulen in der gleichen Position "Sidebar", identifiziert durch ID oder durch Reihenfolge oder etwas.

Ist es möglich? Ich suche einen Vorschlag, eine Idee ...

Vielen Dank!

1
Elisa74

Ich bin mir nicht sicher, ob mir klar ist, was Sie erreichen wollen. Sie können jedoch keine anderen Module aufrufen, um innerhalb einer anderen Modulposition zu erscheinen - zumindest ist mir kein einfacher Weg bekannt, so etwas zu tun, sodass Sie kein Modul injizieren können, das einer anderen Modulposition zwischen zwei anderen zugewiesen ist Module einer anderen Position.

Aber wenn Sie dieses Modul an dieser Position anzeigen möchten, warum weisen Sie es dann nicht an dieser Position zu?

Der Core-Modul-Manager ermöglicht es Ihnen, das Modul auch für Bedingungen nach Menüpunkt zuzuweisen. Wenn Sie mehr Flexibilität benötigen, können Sie den Advanced Module Manager von NoNumber verwenden.

Auf der anderen Seite, wenn Sie Dinge aus Ihrer Vorlage heraus geschehen lassen und benutzerdefinierte PHP-Logik hinzufügen möchten, müssen Sie meiner Meinung nach verschiedene Modulpositionen für die Seitenleistenposition erstellen.

Z.B. Wenn Sie 2 Module anzeigen möchten und unter bestimmten Bedingungen ein weiteres Modul in der Mitte anzeigen möchten, benötigen Sie 3 Modulpositionen:
Links, in der Mitte und rechts und Sie müssen ihre Positionierung mit CSS arrangieren.

Schließlich können Sie ein Modul aus Ihrer Vorlage mit dem folgenden Code laden:

<?php 
jimport( 'joomla.application.module.helper' );

$modules = JModuleHelper::getModules( 'myposition' ); // Get Modules assigned at a position myposition (Returns an array)- it can be a custom position. 

$attribs = array('style' => 'xhtml'); // define module attributes, like module chrome. 

if (count($modules)>0) { // Checking if there are any modules ?> 

    <!-- Module wrapper -->
    <div id="top-contentb" class="top-content">

       <?php echo JModuleHelper::renderModule($modules[0], $attribs); // Render the first module of the $modules array.?> 

    </div>
<?php } ?>

Hoffe das hilft ein bisschen.

1
FFrewin