Publicado por: 3

Nos hemos encontrado con un error en el componente Joomfish! (error ya analizado por sus desarrolladores) en el que al entrar daba un error 500 (en cualquier página).

La solución mas extendida es cambiar en la configuración global de Joomla el valor tipo de base de datos de Configuración de la base de datos de mysql a mysqli. Esto no seria una mala opción, pero depende del hosting donde se albergue, pues a veces hemos migrado de un hosting a otro y la opción mysqli no funcionaba porque el hosting no tenia habilitada esa opción.

Una solución que proponen aquí es cambiar el plugin que provoca ese error (system – jfdatabase). Este plugin esta en /plugins/system/jfdatabase/. Los archivos son intercept.jfdatabasemysqli.php (linea 102 aproximadamente) y intercept.jfdatabasemysql.php (linea 160 aproximadamente). Para ello, buscamos el siguiente código en ambos:

// only needed for selects at present - possibly add for inserts/updates later
if (strpos(strtoupper($tempsql),"SELECT")===false) {
$pfunc = $this->_profile($pfunc);
return;
}

y lo cambiamos por:

//Here we don't try to convert a query if it does not start with select (uppercase or lowercase)
//and we are nice with developers in case of they added some extra spaces at the begin of their query.
if (!preg_match('#^ *select#i',$tempsql)) {
$pfunc = $this->_profile($pfunc);
return;
}

A nosotros de momento nos lo ha solucionado. Si sabéis alguna otra opción para corregir este bug (repito, en algunos hostings no se reproduce el error pero en otros si) dejar un comentario y os lo agradeceremos.

3 Comentarios

  1. Luis May

    En verdad les agradezco este aporte, ha sido una solución a un dolor de cabeza y al sentimiento de frustracion de ese error al querer pagar en virtuemart!!!

    La solucion funciona de maravilla

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.