web-dev-qa-db-ja.com

Joomla 4のメニューモデル項目

Joomla 4で現在のメニューモデルを取得する方法を知っている人はいますか? 2.5/3.Xでは、次のコードを使用していました。

    $model = JModelLegacy::getInstance( 'MenusModelItem' )
            ->getItem();

しかし、これは4でもう機能していません。J4でそれを取得する方法を見つけることができません。

よろしく、ラデク

3
Radek Suski

Joomla 4でメニューアイテムを取得するには、次のように工場からアイテムを取得できます。

use Joomla\CMS\Factory;
$menu = Factory::getApplication()->getMenu();
$active = $menu->getActive();

getActive()は現在のメニュー項目を提供します。必要に応じて、他のメソッドgetDefault()またはgetItem()を使用できます。

次のようなメニュータイプのメニュー項目を取得できます。

$items = $menu->getItems('menutype', 'mainmenu');
3
Pratyush