Así es, amigos. Resulta que me he dado cuenta gracias al plugin GbDefensio, que vengo utilizando en mis bitácoras. El problema era que en cierto método de la clase "Trackback" se trataba de hacer uso de la variable global "Admin", sin que esta estuviera disponible realmente, porque es inicializada más tarde, y, precisamente, sólo en caso de que el usuario requiera el panel de administración de Gesbit. ¿Qué estaba ocurriendo? Pues que me había ido de madre.

La clase "Admin" se pensó para que sirviera al panel de administración, es decir, para ser utilizada desde el panel de administración únicamente, desde los "scripts" que componen dicho panel. Pues bien, el caso es que contaba con cierto método, que, en verdad tampoco correspondía a dicha clase, pero, que estaba siendo utilizado, además de por un "script" del panel de administración, por la clase "Trackback", como digo. He movido dicho método a la clase "GbDb".

Pero he querido comprobar quién más estaba haciendo uso de la clase "Admin", fuera del panel de administración de Gesbit... y me he llevado la agradable sorpresa de que nadie más estaba haciéndolo. En caso contrario, hubiera tenido que llevar a cabo los cambios necesarios, siempre que la clase "Admin" no fuera a estar disponible en el preciso momento en que se la requiere. Y aquí también está la madre del cordero: la clase "Admin" no debería ser requerida fuera del panel de administración y punto.

Claro que todo esto viene de cuando la clase "Admin" era una clase estática, que se instanciaba, por lo tanto, y que podía usarse "desde fuera" del panel de administración sin problemas, quiero decir sin el tipo de problema que he solucionado hoy y que lo catalogo de grave porque estaba impidiendo al plugin "GbDefensio" guardar los datos de los "Trackbacks" en la base de datos. Nada menos que de los "Trackbacks", precisamente, el punto de entrada de "SPAM" más importante: donde no hay "CAPTCHA" alguno.

En fin. Escribo esto también para meterme en la cabeza de que la clase "Admin" no debe ser usada fuera de los "scripts" del panel de administración. E incluso para, cuando vuelva sobre esta entrada, acordarme de que tengo que mirar este y otros puntos similares en Gesbit, que no me quedan del todo claros. Pero, menos mal que ningún otro "script" estaba usando la clase "Admin", ya digo. Al menos eso es que algo de este tenía yo ya en cuenta, incluso cuando "Admin" era una clase estática, y por tanto, más fácil de usar "fuera de contexto".