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); }
/** * wrapper for script.aculo.us/prototype Ajax.Autocompleter. * @param string id value of input field * @param string url of module/action to execute for autocompletion * @param array completion options * @return string javascript tag for Ajax.Autocompleter */ function _auto_complete_field($field_id, $url, $options = array()) { $javascript = "new Ajax.Autocompleter("; $javascript .= "'" . get_id_from_name($field_id) . "', "; if (isset($options['update'])) { $javascript .= "'" . $options['update'] . "', "; } else { $javascript .= "'" . get_id_from_name($field_id) . "_auto_complete', "; } $javascript .= "'" . url_for($url) . "'"; $js_options = array(); if (isset($options['tokens'])) { $js_options['tokens'] = _array_or_string_for_javascript($options['tokens']); } if (isset($options['with'])) { $js_options['callback'] = "function(element, value) { return" . $options['with'] . "}"; } if (isset($options['indicator'])) { $js_options['indicator'] = "'" . $options['indicator'] . "'"; } if (isset($options['on_show'])) { $js_options['onShow'] = $options['on_show']; } if (isset($options['on_hide'])) { $js_options['onHide'] = $options['on_hide']; } if (isset($options['min_chars'])) { $js_options['minChars'] = $options['min_chars']; } if (isset($options['frequency'])) { $js_options['frequency'] = $options['frequency']; } if (isset($options['update_element'])) { $js_options['updateElement'] = $options['update_element']; } if (isset($options['after_update_element'])) { $js_options['afterUpdateElement'] = $options['after_update_element']; } $javascript .= ', ' . _options_for_javascript($js_options) . ');'; return javascript_tag($javascript); }
function _auto_complete_field($field_id, $url, $options = array()) { $javascript = "new Ajax.Autocompleter("; $javascript .= "'{$field_id}', "; if (isset($options['update'])) { $javascript .= "'" . $options['update'] . "', "; } else { $javascript .= "'{$field_id}_auto_complete', "; } $javascript .= "'" . system_url($url) . "'"; $js_options = array(); if (isset($options['tokens'])) { $js_options['tokens'] = _array_or_string_for_javascript($options['tokens']); } if (isset($options['with'])) { $js_options['callback'] = "function(element, value) { return" . $options['with'] . "}"; } if (isset($options['indicator'])) { $js_options['indicator'] = "'" . $options['indicator'] . "'"; } if (isset($options['on_show'])) { $js_options['onShow'] = $options['on_show']; } if (isset($options['on_hide'])) { $js_options['onHide'] = $options['on_hide']; } if (isset($options['min_chars'])) { $js_options['min_chars'] = $options['min_chars']; } $javascript .= ', ' . _options_for_javascript($js_options) . ');'; return javascript_tag($javascript); }