Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Problemas con el index.php de una plantilla de Joomla

21 de junio de 2015

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

#1

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

21 junio 2015, 20:45
#2

Mil gracias funciono a la maravilla

@helena24687

27 junio 2015, 19:44