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" />  

上記の行は、メインのメニューが Joomla モジュールとして含まれていることを意味します。

カウントする場合は、モジュールを最初にレンダリングする必要があります。

方法 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;
于 2012-12-29T15:18:47.883 に答える
1

<jdoc:include type="modules" name="main menu" />モジュールを「メインメニュー」に含めるために使用されます position.li タグは modules/mod_menu/tmpl/default.php ページにあります

于 2012-12-29T06:29:05.887 に答える