我不知道该怎么说...但是我在我的 joomla 站点中使用某些模块,这些模块只能使用菜单项显示,例如 Phoca 画廊、hwdvideoshare 等。这些模块不能显示在任何特定位置,而是必须创建链接到这些模块并根据所选配置参数显示它们的菜单项。我是否可以在任何文章中使用这些菜单项点击的结果?例如,我想将特定类别的视频库显示为一个模块(不创建任何要单击的菜单项)?
如果我不清楚我的要求是否被理解,请提出问题,我会回复,因为我不确定我应该如何解释我的要求以及我应该搜索什么。
要增加一点复杂性,请使用一个模块将基本 url 放入 iframe,如下所示:
<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
$class = $params->get('class');
$relurl = $params->get('relurl');
$Document =& JFactory::getDocument();
$baseurl = $Document->baseurl;
$url = '';
$j = 0;
while ($j < strlen($relurl))
{
$x = substr($relurl,$j,1);
$j++;
if ( $x == '~' ) { $x = $baseurl; }
$url = $url . $x ;
}
echo '<iframe class="' . $class . '" src="' . $url . '"></iframe>' . "\n";
?>
此模块采用类似 '~/index2.php?option=com_proforms&jid=3&cid=-1' 的参数并扩展波浪号,以便 iframe 指向您的站点。因此,如果您从开发环境转移到实际环境,则无需更改代码。
创建分配给模块的菜单项。将其命名为子菜单,然后将其添加到组件默认文件中以呈现子菜单
$modules = JModuleHelper::getModules('user9');
$document = JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$params = array('style'=>'');
$contents = '';
$contents .= $renderer->render(current($modules), $params);
echo $contents;
或在文章或用户中使用 {loadposition xxx}
如果您使用某些只能使用菜单项显示的“模块”,它们不是模块,它们是组件。
Joomla 中的扩展分为“组件”、“模块”和“插件”。了解他们的差异。
模块
模块是用于显示简单信息的扩展。最新消息是一个模块的例子。
为了实现您的目标(至少在 Phoca Gallery 中),您可以下载Phoca Gallery 模块,然后将您的模块插入到文章中。
嗯......这是你可以做到的。您可以通过创建如下所示的链接直接链接到组件:
http://yourblogname.com/index2.php?option=com_(yourcomponentname)。
如果您进入菜单管理器,然后选择要链接到的组件,您应该会在其中的某处看到一个类似的 URL。
通过将该 URL 更改为链接到“index2.php”而不是“index.php”,您可以强制 Joomla 直接链接到组件,并将其原始输出转储到页面。
现在,如果您想将您的组件放到页面上其他位置的模块中,您只需创建一个自定义 HTML 模块并使用该源 URL 拖放和 iframe 即可。凌乱,但这是我所知道的最佳选择。