0

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

我的菜单是这样包含的:<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,就像尚未解析一样。

4

2 回答 2

1

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

于 2012-12-29T06:29:05.887 回答
1
<jdoc:include type="modules" name="main menu" />  

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

如果要数数,则必须首先渲染模块。

方法一

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

否则尝试此代码呈现

方法二

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

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

然后试着像下面这样数。

$count = substr_count($result, '<li>');
echo $count;
于 2012-12-29T15:18:47.883 回答