ZF-4685: ZenX JQuery callback function names do not pass down correctly


I noticed that the callback function names do not pass to the actual JQuery call correctly.


I have in my View a code like this:

    $params = array(
                    "resize" => "doMyThingAtResize",
                    "title" => "My Zend Dialog",
    echo $this->dialogContainer("dialog1", "Some text", $params, array('class' => 'flora'));

It will produce a JQuery call like this:

$("#dialog1").dialog({"resize":"doMyThingAtResize","title":"My Zend Dialog"});

This does work in other ways, but the callback for resize event does not get called as the value is text and not a function name.

What we would need it to produce would be like this:

$("#dialog1").dialog({"resize": doMyThingAtResize,"title":"My Zend Dialog"});

Same thing doMyThingAtResize without the quotes.

Problem goes AFAIK goes to Zend_Json and PHP json_encode as they will wrap the value with quotes, but I don't think this can be solved there. One solution might be to add a separate function or parameter to add those callback function names. This means some manual code work to merge these into the variables passed to the JQuery call, but I don't see many other options.



this is a known issue which will be (hopefully) resolved for the 1.7 release with the Zend_Json_Expr proposal.

Currently you cannot hand down callbacks via Zend_Json.

Assigning to Ben Eberlei

Fixed and scheduled for 1.8