用PHP获取Joomla jdoc?

时间:2012-12-29 06:01:02

标签: php joomla content-management-system

我对Joomla很新,我试图在呈现页面之前在PHP中获取<jdoc:include />标记的输出。

我的菜单包含如下:<jdoc:include type="modules" name="main menu" /> 我正在尝试计算主菜单中的<li>标签。我有这样的设置:

$str = <<< HTML
    <jdoc:include type="modules" name="main menu" />
HTML;
$count = substr_count($str, '<li>');
echo $count;
echo $str;

菜单与正常情况相似,但$count始终为0,就像它尚未解析一样。

2 个答案:

答案 0 :(得分:1)

<jdoc:include type="modules" name="main menu" />用于将模块包含在“主菜单”position.li标签位于modules / mod_menu / tmpl / default.php页面

答案 1 :(得分:1)

<jdoc:include type="modules" name="main menu" />  

以上行表示您的主要手册包含在Joomla模块中。

如果要计算,则必须将模块渲染为第1个。

方法1

$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$params   = array('style'=>$style);
$result = $renderer->render(JModuleHelper::getModule('mod_main_menu'), $params);

否则尝试使用此代码进行渲染

方法2

$module = &JModuleHelper::getModule('mod_module');
$result = JModuleHelper::renderModule($module);

假设您的主菜单模块名称为mod_main_menu。

然后尝试计算如下。

$count = substr_count($result, '<li>');
echo $count;