Добавить вывод модулей между материалами можно в файле шаблона вывода материалов.

Предварительно копируем файлы раскладок в папку html шаблона, чтобы они не затерлись при обновлении Joomla.

И в файл:

шаблон/html/com_content/featured/default.php

добавляем следующий код.

В начало файла, можно после

defined('_JEXEC') or die;

добавляем массив с настройками и код для получения html кода модулей:

/********************************************************************/

/* для настроек */
$position = 'reklama';

/* шаг количество колонки */
$posParams = array(
array(5, 3, 2),
array(5, 2, 1),
);
/* для настроек */

/* стиль для вывода колонками - скопировать в css файл шаблона */
/*
.mod-inner-table{
display:table;
width:100%;
}
.mod-inner-row{
display:table-row;
}
.mod-inner-cell{
display:table-cell;
}
*/


$iItem = 0;
$iPos = 0;
$iMod = 0;
$modOut = '';
$posOut = '';
$currentStep = 0;


/* загружаем модули */
$modules = JModuleHelper::getModules($position);
$document = JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$modNums = count($modules);

$style = 'xhtml';
$styleParams = array('style' => $style);

/********************************************************************/

Настройки задаются в массиве

array(5, 3, 2),

5 - сколько материалов пропустить

3 - сколько выводить модулей

2 - количество колонок

Для каждой позиции модулей можно задать свои настройки, также добавить удалить сами позиции модулей.

Модулям в админке назначаем позицию reklama, название позиции тоже можно изменить в настройках:

$position = 'reklama';

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

Копируем код который ниже перед:

<?php endforeach; ?>

вот этот код

<?php
/********************************************************************/
/* вывод модулей */

if($iItem == ($currentStep+$posParams[$iPos][0]-1)){
$posOut = '';
$iRow = 1;
$iCol = 1;
$startRow = 0;
for ($startMod = $iMod; $iMod < $modNums && $iMod < $posParams[$iPos][1]+$startMod; $iMod++){
if ($iCol == 1) {
$posOut .= '<div class="mod-inner-table pos-' . $iPos . '"><div class="mod-inner-row row-' . $iRow . '">';
$startRow = 1;
$iRow++;
}
ob_start();
echo $renderer->render($modules[$iMod], $styleParams);
$modOut = ob_get_clean();
$posOut .= '<div class="mod-inner-cell col-' . $iCol . '">';
$posOut .= $modOut;
$posOut .= '</div>';

if ($startRow && $iCol == $posParams[$iPos][2]) {
$posOut .= '</div></div>';
$startRow = 0;
$iCol = 1;
}else{
$iCol++;
}
}
if ($startRow) $posOut .= '</div></div>';
echo $posOut;
$iPos++;
$currentStep += $posParams[$iPos][0];
}
$iItem++;
/********************************************************************/
?>

Таким образом модули можно добавлять не только в раскладку блога:

category/blog.php

но и в вывод списком:

category/default.php

и в вывод материалов на главной:

featured/default.php

Вывод модулей среди материалов на главной мы здесь и рассмотрели.