获取模块ID或标题

时间:2014-11-20 20:33:35

标签: joomla

我'我正在使用Joomla 3,我有一个名为" 我们是谁"并且它显示在位置" top_row2 "。我'我试图获得这个模块的ID和模块名称。

在搜索之后,我找到了一些似乎对我无效的解决方案。

解决方案1 ​​

jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule('Who we Are');
echo $module->id;

解决方案2

jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModules('Who we Are');
echo $module->id;
//Note the "s" in getModules

解决方案3

    global $module;
    $module->id;
    $module->title;

我'我在本模块的覆盖PHP文件上使用此解决方案。

位置:: templates \ corporate_response \ html \ mod_mymodule_item.php

3 个答案:

答案 0 :(得分:3)

您可以在“Module Class Suffix”下定义您自己的唯一类,并在您的模块覆盖项目页面中执行条件检查以将哪个模块呈现到页面中

答案 1 :(得分:0)

您可以按位置获取所有模块,然后按如下所示按标题进行选择:

$module = false;
if ($modules = JModuleHelper::getModules('top_row2')) {
    foreach ($modules as $module2) {
        if ($module2->title == 'Who we Are') {
            $module = $module2;
            break;
        }
    }
}

if ($module) {
    printf(
        'Found module with name "%s" and id "%d"',
        $module->name,
        $module->id
    );
} else {
    echo "Found no matching module.";
}

答案 2 :(得分:0)

这可能有助于解释覆盖中的调用模块。 给Joomla打电话!模板中具有标题的模块覆盖:

jimport('joomla.application.module.helper');
$modules = JModuleHelper::getModules('position');
foreach($modules as $module) {
echo '<h3>' . $module->title . '</h3>';
echo JModuleHelper::renderModule($module);
}

这将调用模块ID。

echo $module->id;

这将在H3中调用模块标题,根据需要进行调整。

echo '<h3>' . $module->title . '</h3>';

这部分将呈现模块。

echo JModuleHelper::renderModule($module);