Strict Standards: Non-static method JSite::getMenu() should not be called statically

28,542

It's quite simple. Your template calls a function named getMenu() statically. Meaning the call looks like this: $app::getMenu(). But it should look like this: $app->getMenu(). The variable name ($app) doesn't matter, the colon vs arrow matters.

The correct way to get the menu is:

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

or even shorter:

$menu = JFactory::getApplication()->getMenu();
Share:
28,542
selva
Author by

selva

Updated on July 09, 2022

Comments

  • selva
    selva almost 2 years

    I'm a newbee in joomla. When I change my template to other like http://www.joomla24.com/Joomla_3x_Templates/Joomla_3x_Templates/Oliverio_Lite.html

    I'm getting the following error

    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
    
    • Valentin Despa
      Valentin Despa about 11 years
      This is what you get when using low quality templates, sorry. Check the line 91 and paste it here, so that we can see what the problem is.
  • arvymetal
    arvymetal about 4 years
    Hiding errors is not a recommended way to solve errors