我对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,就像它尚未解析一样。
答案 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;