1

コンポーネントでモジュールを呼び出す方法:

tmpl
---default.php
---hello.php
mod_hello.php
mod_hello.xml
helper.php    

$module = JModuleHelper::getModule('mod_hello');
echo JModuleHelper::renderModule ($module );

echolayout を使用して結果を表示する場合default、モジュール mod_hello のレイアウトを表示する方法はhellolayout です

4

2 に答える 2

0

How I did it:

There is an $attribs array which is in the module's context so you can use it to pass the layout

$module = JModuleHelper::getModule('mod_hello');
$attribs = array('layout'=>'hello');
echo JModuleHelper::renderModule ($module,$attribs);

And after that in mod_hello.php:

$layout = isset($attribs['layout'])?$attribs['layout']:'default';
require(JModuleHelper::getLayoutPath('mod_hello',$layout));
于 2012-12-15T15:07:02.920 に答える
0

以下のフォーラム スレッドをお読みください。

http://forum.joomla.org/viewtopic.php?f=544&t=356176

$modules =& JModuleHelper::getModules('mod_hello'); 
foreach ($modules as $module) 
{ 
echo JModuleHelper::renderModule($module); 
} 


$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style'=>'raw');
echo $renderer->render('mod_hello',$options,null);

Module を呼び出す方法は 2 つあります。

Content/Article 内でモジュールを呼び出します: {loadposition position} を使用できます (plgContentLoadModule のおかげで - /plugins/content/loadmodule.php)。

プログラムでモジュールを呼び出します (モジュールは別のモジュールまたはコンポーネント呼び出しモジュールを呼び出します):

A. Call Module by position :

$position = 'left';
$contents = '';
foreach (JModuleHelper::getModules($position) as $mod) {
$contents .= $renderer->render($mod, $params);
}

B. Call Module by name :

$modName = 'mostread '; // not mod_mostread 
$modTitle = 'Popular';
$mod = JModuleHelper::getModule($modName, $modTitle);
$content = JModuleHelper::renderModule($mod);
于 2012-10-17T05:13:42.683 に答える