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
loading...