Al final conseguí solucionar el problema del buscador añadiendo este código y eliminando el otro:
$itemid = JRequest::getVar('Itemid'); $app = JFactory::getApplication(); $menu = $app->getMenu(); if ($menu->getActive() == $menu->getDefault()) { // ... } ?>
Ahora el buscador funciona de maravilla, pero al cargar la página me sale otro error:
Notice: Undefined variable: pageclass i C:\xampp\htdocs\hogaradas\templates\favourite\index.php on line 67
Y en esa línea pone:
<body<?php echo (($pageclass) ? ' class="favbody'.htmlspecialchars($pageclass).'"' : ''); ?>>
A ver si puedes echarme un cable. Gracias.
Respuestas
Esta vez creo que el error va a ser fácil de solucionar. Como el error dice que la variable $pageclass
no está definida, lo único que tenemos que hacer es añadir una comprobación a esa variable antes de intentar utilizarla.
En PHP tienes una función llamada isset()
que precisamente lo que hace es comprobar si la variable que le pasas como argumento existe y su valor es distinto a null
. Así que puedes cambiar la línea 67 por lo siguiente (que es casi lo mismo):
<body <?php echo (isset($pageclass) ? 'class="favbody'.htmlspecialchars($pageclass).'"' : ''); ?>>
Un pequeño consejo adicional: esta línea de código lo que hace es añadir el atributo class="..."
al elemento <body>
de la página cuando la variable $pageclass
está definida. Si la variable no existe, no se añade ese atributo class
. En mi opinión, es mejor imprimir siempre el atributo class
y dejarlo vacío cuando la variable no exista (<body class="">
es perfectamente válido y no va a afectar en nada a la página). De esta manera, el código PHP es mucho más fácil de entender:
<body class="<?php echo isset($pageclass) ? 'favbody'.htmlspecialchars($pageclass) : ''; ?>">
@javiereguiluz
Bingo!! Mil gracias, todos los problemas resueltos, al menos por ahora. Un saludo
@hogaradas
Hola, tengo el mismo problema que tú: Podrías pegarme el código que usaste para solucionarlo? Me refiero a: $itemid = JRequest::getVar('Itemid'); $app = JFactory::getApplication(); $menu = $app->getMenu(); if ($menu->getActive() == $menu->getDefault()) { // ... } ?> Estoy usando la misma plantilla que tú, creo
@Sr_Luster
Mi plantilla es favourite, y en el archivo index.php tengo esto
$itemid = JRequest::getVar('Itemid'); $app = JFactory::getApplication(); $menu = $app->getMenu(); if ($menu->getActive() == $menu->getDefault()) {
} ?>
@hogaradas