[wp-hackers] Question about the architecture of the admin widgets.php

John BouAntoun jbouantoun at gmail.com
Mon Jan 4 21:35:49 UTC 2010


> Hi guys,
>
> I'm one of the devs on the about me widget, and I've had to do some  
> ugly/evil things to the widget to get it to work in WP 2.9 and  
> wanted some advice.
>
> The main thing we try and do is embed the mce editor in the widget  
> administration page. In order to do that I need to catch the click  
> events of the widget-action control and the widget-save button to do  
> an mce.triggerSave() so that the control's text is saved to the db.
>
> In WP 2.9 the two controls who's click event I was trying to catch  
> now use the live('click') approach, instead of the bind('click')  
> approach, which makes it more difficult for me to catch the click  
> events and run my custom code prior to triggering the default  
> behaviour.
>
> I have come up with a work around:
> 1. Do a bind('click') that return's true on the widget-action's parent
>     - this allows me to do my pre-display mce widget clean up and  
> then let the control unwrap itself
> 2. Do a bind('click') that returns false on the save button
>     - this allows me to do a triggerSave on MCE and then manually  
> call the save function.
>
> Both these approaches are ugly hacks, and what I would rather have  
> is a mechanism for handling a administration form event into the  
> event queue. Something like savebutton.queueEvent('click', start,  
> function(){..}); that would allow me to queue my event at the  
> beginning of the click processing order, so that I could, for  
> example perform validation and data clean up before the default  
> widgets.php boiler plate code handles the db save.
>
> So the general solution would be to use a queuable event binding  
> mechanism for all events in Wordpress, but failing that, the  
> specific solution would be to allow me to wire in a pre-display  
> event and a pre-save event, to allow me to do my mce control clean  
> up and save triggering.
>
> Can anyone suggest a better approach to solve my issue or let me  
> know the likelyhood of either solution (general or specific)  
> happening in the near future so that I know if it's worth updating  
> my plugin with the dirty hack or not?
>
> Regards,
>
> JBA


More information about the wp-hackers mailing list