Hola, tengo un problema con el menu en una plantilla de joomla. En la parte superior de la página salen los siguientes códigos de error:
Strict Standards: Non-static method JSite::getMenu() should not be called statically, assuming $this from incompatible context in /home/ambsas/public_html/templates/ as002037free/index.php on line 41
Esto es lo que tiene el archivo index.php
:
defined( '_JEXEC' ) or die( 'Restricted access' ); /* The following line loads the MooTools JavaScript Library */ JHTML::_('behavior.framework', true); /* The following line gets the application object for things like displaying the site name */ $app = JFactory::getApplication(); /* The following lines get active menu */ $menu = $app->getMenu(); $menu_active = $menu->getActive(); /* The following lines get language tags */ $lang = JFactory::getLanguage(); $page_title = $this->getTitle(); $home_page = 0; $featured_page = 0; $featured_view = 0; if (JRequest::getVar('view') == 'featured') { $featured_view = 1; } if (JRequest::getVar('view') != 'reset' && JRequest::getVar('view') != 'registration' && JRequest::getVar('view') != 'remind' && JRequest::getVar('view') != 'login' && JRequest::getVar('searchword') == '') { $menu_params = JSite::getMenu()->getParams($menu_active->id); <-- Esta es la línea 41--> if (($menu_active == $menu->getDefault()) || ($menu_active == $menu->getDefault($lang->getTag()))) { $home_page = 1; } $featured_page = 0; $featured_page += (bool) $menu_params->get('num_leading_articles'); $featured_page += (bool) $menu_params->get('num_columns'); $featured_page += (bool) $menu_params->get('num_intro_articles'); } if (!$featured_view) { $featured_page = 1; } ?>
El segundo código de error es el siguiente:
Strict Standards: Non-static method JApplication::getMenu() should not be called statically, assuming $this from incompatible context in /home/ambsas/public_html/includes/application.php on line 539
Esto es lo que tiene el archivo index.php
:
/** * Return a reference to the JPathway object. * * @param string $name The name of the application/client. * @param array $options An optional associative array of configuration settings. * * @return object JMenu. * @since 1.5 */ public function getMenu($name = null, $options = array()) { $options = array(); $menu = parent::getMenu('site', $options); <-- Esta es la línea 539--> return $menu; } /** * Return a reference to the JPathway object. * * @param string $name The name of the application. * @param array $options An optional associative array of configuration settings. * * @return object JPathway. * @since 1.5 */
Les agradezco si alguno puede dar respuesta a mi pregunta.
Respuestas
Aunque parece un error "de verdad", en realidad los mensajes de tipo "Strict Standards" son más un aviso que un error. Este tipo de avisos se muestran cuando el código PHP no cumple escrupulosamente todas y cada una de las normas del lenguaje. En un mundo ideal, ninguna aplicación debería producir esos avisos. En el mundo real, es común que algunas aplicaciones los generen (sobre todo si son aplicaciones viejas o no muy bien programadas).
Mi recomendación en este caso sería que ocultes esos avisos para que no se muestren a los visitantes de tu sitio web. Para ello, tienes que cambiar el valor de la opción error_reporting
de PHP y poner como valor 0
. Este cambio lo tienes que hacer en el archivo de configuración php.ini
de tu servidor:
error_reporting = 0
@javiereguiluz
Mil gracias funciono a la maravilla
@helena24687