Загрузите модуль между модулями в одном и том же положении

Я не специалист по php, поэтому извините заранее (я использую Joomla! 3.3.6 на итальянском языке).

Что я хочу сделать, так это: - создать и включить HTML-модуль в Joomla с позицией «position-x» (которая на самом деле не существует в шаблоне) - вызовите этот модуль, если возникает определенное условие, php (в моем index.php), между двумя конкретными модулями в одной и той же позиции «боковая панель», идентифицированной идентификатором или по заказу или что-то в этом роде.

Возможно ли это? Я ищу предложение, идею ...

Большое спасибо!

1 голос | спросил Elisa74 26 Maypm15 2015, 16:40:51

1 ответ


1

Не уверен, насколько я понимаю, чего вы пытаетесь достичь. Но вы не можете вызывать другие модули для отображения внутри другой позиции модуля - по крайней мере, я не знаю простого способа сделать что-то вроде этого, поэтому вы не можете вводить модуль, который назначается другой позиции модуля между двумя другими модулей другой позиции.

Но если вы хотите показать этот модуль в этой позиции, то почему бы вам не назначить его в этой позиции?

Также для условий менеджер основного модуля позволяет вам назначать модуль по элементу меню. Если вам нужна большая гибкость, вы можете использовать Advanced Module Manager по NoNumber .

С другой стороны, если вы хотите сделать что-то изнутри вашего шаблона и добавить пользовательскую php-логику, я думаю, вам нужно будет создать разные позиции модулей для позиции боковой панели.

например. если вы хотите показать 2 модуля и при определенных условиях, чтобы показать еще один посередине, вам понадобятся 3 позиции модуля:
Левый, центр и правый, и вам нужно расположить их позиционирование с помощью CSS.

Наконец, вы можете загрузить модуль из своего шаблона с помощью кода ниже:

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

Надеюсь, это немного поможет.

ответил FFrewin 26 Maypm15 2015, 21:19:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132