Как загрузить модуль в PHP-коде Joomla?

Решение.

В нужном месте вставляем следующий код:

 <?php
      jimport( 'joomla.application.module.helper' );
      $module = JModuleHelper::getModule('MODULETYPE','MODULETITLE');
      $attribs['style'] = 'STYLE';
      echo JModuleHelper::renderModule( $module, $attribs );
?> 

Где MODULETYPE - тип загружаемого модуля (например, mainmenu), MODULETITLE - заголовок модуля, STYLE - стиль (например, xhtml).

Другой вариант - загрузка всех модулей в определенной позиции:

<?php
     jimport('joomla.application.module.helper');
     $modules = JModuleHelper::getModules('POSITION');
     foreach($modules as $module) {
          echo JModuleHelper::renderModule($module);
     }
?>

Где POSITION - название позиции, в которой расположены вызываемые модули.

Если нужно вывести контент модуля внутри другого модуля, то делаем так:

<?php
     $module2 = JModuleHelper::getModule('MODULETYPE','MODULETITLE');
     echo $module2->content;
?>

Переменную $module использовать нельзя, т.к. она содержит параметры родительского модуля.

Вывод системных сообщений можно организовать так:

<?php
	$doc = & JFactory::getDocument();
	$class = 'JDocumentRendererMessage';
	if (!class_exists($class))
	{	
		require_once JURI::base(true) . '/libraries/joomla/document/html/renderer/message.php';
	}
	$Messages = new $class($doc);
	$mes = JFactory::getApplication()->getMessageQueue();
	if (is_array($mes) && !empty($mes))
	{
		echo $Messages->render();
	}
?>

 

Никаких мыслей по поводу “Вывод модуля в компоненте или модуле, а так же вывод системных сообщений в компоненте или модуле”