• ResueltoModerador almendron

    (@almendron)


    En uno de mis sitios uso el plugin «Auto ThickBox Plus». Me resulta imprescindible su uso pero tengo un problema con él. De momento funciona pero en el futuro es muy posible que deje de hacerlo y por eso me gustaría solucionarlo. Por cierto, el plugin ya es viejo y el desarrollador ya no lo actualiza.

    1.- Activo el DEBUG y me aparece el siguiente mensaje cuando entro en la adminsitración de WP: Strict standards: Redefining already defined constructor for class auto_thickbox in C:\wamp\www\xxxxxx\wp-content\plugins\auto-thickbox-plus\auto-thickbox.php on line 555

    2.- Edito el archivo «auto-thickbox.php» y dicha línea se corresponde a:

    function auto_thickbox() {
    		$this->__construct(); // for PHP4
    	}

    La siguiente líneas es: function __construct() {
    Después hay varias funciones más y acaba con

    add_action('init', 'init_auto_thickbox');
    function init_auto_thickbox() {
    	new auto_thickbox();
    }

    ¿Alguien podría echarme una mano y decirme qué tengo que cambiar para evitar el mencionado error?

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Moderador almendron

    (@almendron)

    Me olvidaba: de momento he deshabilitado las líneas

    function auto_thickbox() {
    		$this->__construct(); // for PHP4
    	}

    porque entiendo que solo están para asegurar la compatibilidad con PHP4.

    Con esta medida el mensaje de error ya no sale y todo parece que funciona correctamente.

    ¿Es correcto lo que estoy haciendo?

    Moderador LGrusin

    (@lgrusin)

    Aunque no estoy muy impuesto, supongo que si porque lo que se ejecuta es function __construct() y no hay otro constructor hijo.

    Lo que se suele hacer es sustituir
    $this->__construct();
    por
    parent::__construct(); sobre todo si hay que pasar parámetros.
    Pero habría que ver todo el código para saber con exactitud.

    Si no te da problemas déjalo como está.

    Un saludo

    Moderador almendron

    (@almendron)

    Gracias LGrusin.
    Esta tarde probaré tu idea y te comento.
    Un saludo.

    Moderador almendron

    (@almendron)

    Al final, lo he podido probar ahora.
    También funciona pero con una particularidad. He tenido que poner

    function auto_thickbox() {
    		parent::__construct(); // for PHP4
    	}

    después del código que va con function __construct() {
    Y curiosamente, en el otro archivo donde también se encuentra lo de la compatibilidad no ha hecho falta mover el código.

    En cualquier caso, y dado que deshabilitando parece que todo funciona bien, lo dejo así.

    Muchas gracias LGrusin.

    NOTA: si detecto algún error en el plugin, ya pondré otra consulta.

    Moderador LGrusin

    (@lgrusin)

    He podido mirar el código del plugin y es correcto lo que habías hecho al principio.

    El código:

    function auto_thickbox() {
     $this->__construct(); // for PHP4
    }

    Sólo afecta a PHP4. Puesto que no lo usas puedes comentar o eliminar esas líneas.

    Puedes olvidar lo de parent::__construct aquí no es necesario.

    Un saludo

    Moderador almendron

    (@almendron)

    Gracias por mirarlo, LGrusin. Como siempre un placer contar contigo.
    Un saludo.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘Construct’ está cerrado a nuevas respuestas.