获取模块ID或标题

问题描述 投票:4回答:3

我正在使用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文件。

Location :: templates \ corporate_response \ html \ mod_mymodule_item.php

joomla
3个回答
3
投票

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


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.";
}

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);
© www.soinside.com 2019 - 2024. All rights reserved.