/** * converts the the PHP options array into a javscript array * * @param array * @return string javascript arry equivalent */ function options_for_javascript($options) { $opts = array(); foreach ($options as $key => $value) { if (is_array($value)) { $value = options_for_javascript($value); } $opts[] = $key . ":" . boolean_for_javascript($value); } sort($opts); return '{' . join(', ', $opts) . '}'; }
function _options_for_ajax($options) { $js_options = _build_callbacks($options); $js_options['asynchronous'] = isset($options['type']) && $options['type'] == 'synchronous' ? false : true; if (isset($options['method'])) { $js_options['method'] = array_or_string_for_javascript($options['method']); } if (isset($options['position'])) { $js_options['insertion'] = "Insertion." . sfInflector::camelize($options['position']); } $js_options['evalScripts'] = !isset($options['script']) || $options['script'] == '0' || $options['script'] == false ? false : true; if (isset($options['form'])) { $js_options['parameters'] = 'Form.serialize(this)'; } else { if (isset($options['submit'])) { $js_options['parameters'] = "Form.serialize(document.getElementById('{$options['submit']}'))"; } else { if (isset($options['with'])) { $js_options['parameters'] = $options['with']; } } } return options_for_javascript($js_options); }
* file that was distributed with this source code. */ require_once __DIR__ . '/../../bootstrap/unit.php'; require_once __DIR__ . '/../../../lib/helper/TagHelper.php'; require_once __DIR__ . '/../../../lib/helper/JavascriptBaseHelper.php'; $t = new lime_test(9, new lime_output_color()); // boolean_for_javascript() $t->diag('boolean_for_javascript()'); $t->is(boolean_for_javascript(true), 'true', 'boolean_for_javascript() makes a javascript representation of the boolean if the param is boolean'); $t->is(boolean_for_javascript(false), 'false', 'boolean_for_javascript() makes a javascript representation of the boolean if the param is boolean'); $t->is(boolean_for_javascript(1 == 0), 'false', 'boolean_for_javascript() makes a javascript representation of the boolean if the param is boolean'); $t->is(boolean_for_javascript('dummy'), 'dummy', 'boolean_for_javascript() makes a javascript representation of the boolean if the param is boolean'); //options_for_javascript() $t->diag('options_for_javascript()'); $t->is(options_for_javascript(array("'a'" => "'b'", "'c'" => false)), "{'a':'b', 'c':false}", 'options_for_javascript() makes a javascript representation of the passed array'); $t->is(options_for_javascript(array("'a'" => array("'b'" => "'c'"))), "{'a':{'b':'c'}}", 'options_for_javascript() works with nested arrays'); //javascript_tag() $t->diag('javascript_tag()'); $expect = <<<EOT <script type="text/javascript"> //<![CDATA[ alert("foo"); //]]> </script> EOT; $t->is(javascript_tag('alert("foo");'), $expect, 'javascript_tag() takes the content as string parameter'); //link_to_function() $t->diag('link_to_function()'); $t->is(link_to_function('foo', 'alert(\'bar\')'), '<a href="#" onclick="alert(\'bar\'); return false;">foo</a>', 'link_to_function generates a link with onClick handler for function'); //#4152 $t->is(link_to_function('foo', 'alert(\'bar\')', array('confirm' => 'sure?')), '<a href="#" onclick="if(window.confirm(\'sure?\')){ alert(\'bar\');}; return false;">foo</a>', 'link_to_function works fine with confirm dialog');
/** * Enable to use Modalbox script : http://www.wildbit.com/labs/modalbox/ * * * * @author Gerald Estadieu <*****@*****.**> * @since 15 Apr 2007 * */ function m_link_to($name, $url, $html_options = array(), $modal_options = array()) { use_helper('Javascript'); if (!isset($html_options['title'])) { $html_options['title'] = $name; } $modal_options = array_merge($modal_options, array('title' => 'this.title')); $params_to_escape = sfConfig::get('app_params_to_escape_list'); // escape strings for js foreach ($modal_options as $option => $value) { if (in_array($option, $params_to_escape)) { $modal_options[$option] = "'" . $value . "'"; } } $js_options = options_for_javascript($modal_options); $html_options['onclick'] = "Modalbox.show(this.href, " . $js_options . "); return false;"; return link_to($name, $url, $html_options); }