web-dev-qa-db-ja.com

厳格な基準:非静的メソッドJSite :: getMenu()を静的に呼び出さないでください

私はjoomlaの初心者です。テンプレートを http://www.joomla24.com/Joomla_3x_Templates/Joomla_3x_Templates/Oliverio_Lite.html のように変更すると

次のエラーが発生します

Strict Standards: Non-static method JSite::getMenu() should not be called statically, assuming $this from incompatible context in ..\xampp\htdocs\joomla\templates\oliveriolite\index.php on line 91

Strict Standards: Non-static method JApplication::getMenu() should not be called statically, assuming $this from incompatible context in ..\xampp\htdocs\joomla\includes\application.php on line 569
9
selva

とても簡単です。テンプレートは、getMenu()という名前の関数を静的に呼び出します。呼び出しの意味は次のようになります:$app::getMenu()。ただし、次のようになります:$app->getMenu()。変数名($app)は関係ありません、コロン対矢印は重要です。

メニューを取得する正しい方法は次のとおりです。

$app = JFactory::getApplication();
$menu = $app->getMenu();

またはさらに短い:

$menu = JFactory::getApplication()->getMenu();
29
Bakual