Buenos días de nuevo:
Hemos actualizado la web a la última versión de Joomla y activado PHP 7 en nuestro hosting y aunque la web funciona correctamente, hemos detectado una serie de fallos en el error_log que nos gustaría corregir. Al ser de varios tipos, no sé si sería mejor que te lo enviara en 3 consultas distintas (PHP Deprecated, PHP Notice y PHP Warning) . Si lo prefieres, indícamelo en tu respuesta y así lo haré.
Estos 4 son los que aparecen al navegar por cualquier página:
[16-Oct-2018 09:01:14 UTC] PHP Deprecated: Non-static method JoomlaCMSApplicationSiteApplication::getMenu() should not be called statically in /home2/quieromi/public_html/test.dicrisur/templates/dafne/index.php on line 65
[16-Oct-2018 09:01:14 UTC] PHP Deprecated: Non-static method JoomlaCMSApplicationCMSApplication::getMenu() should not be called statically in /home2/quieromi/public_html/test.dicrisur/libraries/src/Application/SiteApplication.php on line 275
[16-Oct-2018 09:01:14 UTC] PHP Notice: Undefined variable: this in /home2/quieromi/public_html/test.dicrisur/libraries/src/Application/CMSApplication.php on line 369
[16-Oct-2018 09:01:14 UTC] PHP Notice: Only variables should be assigned by reference in /home2/quieromi/public_html/test.dicrisur/templates/dafne/index.php on line 65
Y estos 2 aparecen, junto con los otros 4, solo cuando accedo al blog:
[16-Oct-2018 08:56:38 UTC] PHP Warning: require_once(/home2/quieromi/public_html/test.dicrisur/libraries/joomla/document/html/renderer/head.php): failed to open stream: No such file or directory in /home2/quieromi/public_html/test.dicrisur/templates/dafne/error.php on line 86
[16-Oct-2018 08:56:38 UTC] PHP Fatal error: require_once(): Failed opening required '/home2/quieromi/public_html/test.dicrisur/libraries/joomla/document/html/renderer/head.php'
Por favor, te agradecería mucho si pudieras orientarme para solucionarlos.
¡Mil gracias! 😉
URL del sitio: Contenido solo visible a usuarios registrados
Hola Micky.
vamos a ir resolviendo las cosas paso a paso que es mucho:
Para el primer mensaje:
PHP Deprecated: Non-static method JoomlaCMSApplicationSiteApplication::getMenu() should not be called statically in /home2/quieromi/public_html/test.dicrisur/templates/dafne/index.php
.- Edita el archivo index.php que encontrarás en la carpeta templates -> dafne y busca el siguiente código:
getActive() == $menu->getDefault()) : ?>
Modifica por lo siguiente:
getMenu(); if ($menu->getActive() == $menu->getDefault()) : ?>
Revisa si con eso solucionamos alguna parte de esos errores y nos comentas.
Recuerda descargar una copia del archivo original antes de modificarlo.
Después de eso vemos los siguiente errores.
Un saludo
Hola, Pepe:
¡¡¡Otra batalla ganada!!! Parece que los 4 primeros errores que te indicaba en mi consulta desaparecen.
Los que se producen cuando accedo al blog, siguen apareciendo:
[16-Oct-2018 19:27:40 UTC] PHP Warning: require_once(/home2/quieromi/public_html/test.dicrisur/libraries/joomla/document/html/renderer/head.php): failed to open stream: No such file or directory in /home2/quieromi/public_html/test.dicrisur/templates/dafne/error.php on line 86
[16-Oct-2018 19:27:40 UTC] PHP Fatal error: require_once(): Failed opening required '/home2/quieromi/public_html/test.dicrisur/libraries/joomla/document/html/renderer/head.php' (include_path='.:/opt/alt/php70/usr/share/pear') in /home2/quieromi/public_html/test.dicrisur/templates/dafne/error.php on line 86
Dándole vueltas a toda la web he visto que me aparece un último error:
[16-Oct-2018 19:54:30 UTC] PHP Warning: Declaration of ytVideo::getThumb() should be compatible with Video::getThumb($id = false) in /home2/quieromi/public_html/test.dicrisur/plugins/system/videobox/adapters/ytvideo.php on line 15
Y este es el código que aparece en el archivo ytvideo.php (la línea 15 es: class ytVideo extends Video {):
// no direct access defined( '_JEXEC' ) or die( 'Restricted Access' ); include_once('video.php'); class ytVideo extends Video { function getTitle($forced = false){ if($forced && $this->title==''){ return 'http://youtu.be/' . $this->id; } else { return $this->title; } }
Ya queda menos para ganar la guerra 😛
¡Muchísimas gracias por tu ayuda!
Hola
Con respecto a este fatal error:
[16-Oct-2018 19:27:40 UTC] PHP Fatal error: require_once(): Failed opening required '/home2/quieromi/public_html/test.dicrisur/libraries/joomla/document/html/renderer/head.php' (include_path='.:/opt/alt/php70/usr/share/pear') in /home2/quieromi/public_html/test.dicrisur/templates/dafne/error.php on line 86
El archivo error.php de tu template esta obsoleto, ubica este archivo:
/home2/quieromi/public_html/test.dicrisur/templates/dafne/error.php
Renombralo simplemente por :
/home2/quieromi/public_html/test.dicrisur/templates/dafne/_error.php
Con eso el archivo de error.php será tomado por defecto y no del template
Saludos.
Muchísimas gracias por tu ayuda, Jhon. Renombrando el archivo, tal y como me indicas, no vuelve a aparecer el error.
Ya solamente me queda por solucionar este último error:
[16-Oct-2018 19:54:30 UTC] PHP Warning: Declaration of ytVideo::getThumb() should be compatible with Video::getThumb($id = false) in /home2/quieromi/public_html/test.dicrisur/plugins/system/videobox/adapters/ytvideo.php on line 15
Y este es el código que aparece en el archivo ytvideo.php (la línea 15 es: class ytVideo extends Video {):
// no direct access defined( '_JEXEC' ) or die( 'Restricted Access' ); include_once('video.php'); class ytVideo extends Video { function getTitle($forced = false){ if($forced && $this->title==''){ return 'http://youtu.be/' . $this->id; } else { return $this->title; } }
¡Gracias de nuevo! 😉
Hola Miky.
Supongo que e este modulo:
-> https://extensions.joomla.org/extension/videobox/
no se actualiza desde el 2016 por lo qu e deduzco que el proyecto está muerto o parado.
Se podría solucionar, como los anteriores es problema de version de PHP pero como consejo me plantearía buscar alguna alternativa a ese plugin.
Si es para añadir videos, no creo que sea necesario ningún plugin a no ser que necesites alguna galería de videos.
Como alternativa por ejemplo puedes utilizar :
-> https://extensions.joomla.org/extensions/extension/multimedia/multimedia-players/allvideoshare/
Un Saludo
Muchas gracias, Pepe.
De momento me gustaría solucionarlo modificando el código, si es posible. Ya con más tiempo me plantearé buscar otro plugin (es para galería de vídeo)
¿Podrías orientarme?
Gracias de neuvo 😉
Hola
Con lo que envías no es suficiente, es un poco más complejo por la herencia que esta usando y podría estar en otro archivo el código a modificar.
Igual ten en en cuenta que es un warning, la extensión debería seguir trabajando sólo que te sugieren que uses otra sintaxis.
Saludos.
Muchas gracias por la respuesta, Jhon, pero si no entendí mal la última respuesta de tu compañero Pepe, él me sugería que se podía reparar, aunque me aconsejaba cambiar de plugin. Si no te importa, voy a consultarle a él.
Muchas gracias de nuevo
Hola de nuevo, Pepe:
Perdona que te insista, pero ¿sería posible reparar este error, tal y como hemos hecho con los otros?
De verdad que te lo agradecería muchísimo. Es una pena que hayamos podido conseguir solucionar todo, gracias a vuestra ayuda, y se nos quede este últimos sin poder reparar...me valdría con que me orientaras por lo menos.
Muchísimas gracias de nuevo por tu ayuda, Pepe.
Hola Miky.
El problema viene porque esa variable hereda datos de otros sitios y puede ser muy costoso de solucionarlo, de todas formas probaremos algo.
.- Accede a plugins -> system -> videobox -> adapters y edita el archivo ytvideo.php
Modifica el siguiente código:
defined( '_JEXEC' ) or die( 'Restricted Access' );
Por lo siguiente:
defined( '_JEXEC' ) or die;
Solo una consulta:
¿ El plugin es este ?
-> https://extensions.joomla.org/extension/yt-video-gallery/
Hay actualizaciones recientes y supongo que con actualizarlo se solucionaría.
Un saludo
He probado el cambio que me indicabas en el código y sigue apareciendo el error...
El plugin no es el que me comentas. El que yo tengo instalado es Videobox.
Muchas gracias
Hola Micky.
No es un error, es un aviso, lo que te indica es que la decepcionar ytVideo::getThumb() no es compatible con Video::getThumb.
El problema es que puede estar declarado en varios archivos del modulo, no solo en lo que muestras y habría que revisar todos los archivos.
Como consejo cambia de extensión para mostrar los vídeos, antes o después lo tendrás que realizar ya que el proyecto esta terminado y llegara un momento en que dejara de mostrarse o lo peor que se caiga la web.
La extensión tienes que poder seguir utilizándola ya que no es un error y de momento funciona pero como te digo, lo mejor es que te plantes sustituirla.
Un saludo
Oído, Pepe. En cuanto pueda trataré de localizar un buen plugin para mostrar vídeos de youtube en modo galería. La verdad es que es una pena lo del plugin Videobox... es supersencillo de utilizar, muy versátil y encima gratuito ¡Ojalá encuentre algo parecido!
¡¡Muchísimas gracias por tu ayuda!! 😉
Hola Mickey.
Revisa esta extensión:
-> https://extensions.joomla.org/extensions/extension/multimedia/multimedia-players/allvideoshare/
Demo:
-> https://allvideoshare.mrvinoth.com/demo/index.php
Un saludo