Error javascript provocat pel plugin Ozh’ Admin Drop Down Menu de WordPress

No sé si hi ha alguna incompatibilitat entre els plugins RB Internal Linker i Ozh’ Admin Drop Down Menu de WordPress, però ahir vaig actualitzar el primer a la versió 2.0.11 i ara està fallant. El problema l’he detectat amb Firebug (quina eina més meravellosa!), que mostrava el següent error de javascript:

syntax error
var oam_toomanypluygins = ;\n

He cercat directament al directori de plugins quin fitxer contenia aquest nom de variable, des d’una connexió ssh al servidor, així:

egrep -r oam_toomanypluygins *

Han sortit tres resultats. El problema es troba al fitxer ozh-admin-drop-down-menu/inc/core.php, a la funció en llenguatge PHP wp_ozh_adminmenu_js().
A la línia:

$toomanyplugins = $wp_ozh_adminmenu['too_many_plugins'];

veiem que la variable PHP $toomanyplugins és assignada i més endavant inserida directament entre codi javascript. Ràpidament ens podem adonar que si la variable és buida s’introduïrà un error al codi javascript perquè faltarà algun valor entre els caràcters = i ;

var oam_toomanypluygins = ;

Per resoldre-ho, després de la línia PHP anteriorment esmentada he afegit:

if (empty($toomanyplugins)) {
    $defaults = wp_ozh_adminmenu_defaults();
    $toomanyplugins = $defaults['too_many_plugins'];
}

D’aquesta manera comprovem si la variable és buida i li donem el valor per defecte abans d’inserir-la entre codi javascript.

Resolt! 🙂

Actualització (01-03-2010): a vegades les coses serveixen per més persones, per això és bo compartir. El desenvolupador del plugin m’ha contestat:

Hello Jaume
Nice catch, thanks for this! I’ve updated the plugin to deal with this case
Cheers,
Ozh

GD Star Rating
loading...