danielebarchiesi@0: $image)), $dest, $alt, $class); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Render text as a link. This will automatically apply an AJAX class danielebarchiesi@0: * to the link and add the appropriate javascript to make this happen. danielebarchiesi@0: * danielebarchiesi@0: * Note: 'html' => true so be sure any text is vetted! Chances are these kinds of buttons will danielebarchiesi@0: * not use user input so this is a very minor concern. danielebarchiesi@0: * danielebarchiesi@0: * @param $text danielebarchiesi@0: * The text that will be displayed as the link. danielebarchiesi@0: * @param $dest danielebarchiesi@0: * The destination of the link. danielebarchiesi@0: * @param $alt danielebarchiesi@0: * The alt text of the link. danielebarchiesi@0: * @param $class danielebarchiesi@0: * Any class to apply to the link. @todo this should be a options array. danielebarchiesi@0: * @param $type danielebarchiesi@0: * A type to use, in case a different behavior should be attached. Defaults danielebarchiesi@0: * to ctools-use-ajax. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_text_button($text, $dest, $alt, $class = '', $type = 'use-ajax') { danielebarchiesi@0: drupal_add_library('system', 'drupal.ajax'); danielebarchiesi@0: return l($text, $dest, array('html' => TRUE, 'attributes' => array('class' => array($type, $class), 'title' => $alt))); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Set a single property to a value, on all matched elements. danielebarchiesi@0: * danielebarchiesi@0: * @param $selector danielebarchiesi@0: * The CSS selector. This can be any selector jquery uses in $(). danielebarchiesi@0: * @param $name danielebarchiesi@0: * The name or key: of the data attached to this selector. danielebarchiesi@0: * @param $value danielebarchiesi@0: * The value of the data. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_command_attr($selector, $name, $value) { danielebarchiesi@0: ctools_add_js('ajax-responder'); danielebarchiesi@0: return array( danielebarchiesi@0: 'command' => 'attr', danielebarchiesi@0: 'selector' => $selector, danielebarchiesi@0: 'name' => $name, danielebarchiesi@0: 'value' => $value, danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Force a client-side redirect. danielebarchiesi@0: * danielebarchiesi@0: * @param $url danielebarchiesi@0: * The url to be redirected to. This can be an absolute URL or a danielebarchiesi@0: * Drupal path. danielebarchiesi@0: * @param $delay danielebarchiesi@0: * A delay before applying the redirection, in milliseconds. danielebarchiesi@0: * @param $options danielebarchiesi@0: * An array of options to pass to the url() function. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_command_redirect($url, $delay = 0, $options = array()) { danielebarchiesi@0: ctools_add_js('ajax-responder'); danielebarchiesi@0: return array( danielebarchiesi@0: 'command' => 'redirect', danielebarchiesi@0: 'url' => url($url, $options), danielebarchiesi@0: 'delay' => $delay, danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Force a reload of the current page. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_command_reload() { danielebarchiesi@0: ctools_add_js('ajax-responder'); danielebarchiesi@0: return array( danielebarchiesi@0: 'command' => 'reload', danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Submit a form. danielebarchiesi@0: * danielebarchiesi@0: * This is useful for submitting a parent form after a child form has finished danielebarchiesi@0: * processing in a modal overlay. danielebarchiesi@0: * danielebarchiesi@0: * @param $selector danielebarchiesi@0: * The CSS selector to identify the form for submission. This can be any danielebarchiesi@0: * selector jquery uses in $(). danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_command_submit($selector) { danielebarchiesi@0: ctools_add_js('ajax-responder'); danielebarchiesi@0: return array( danielebarchiesi@0: 'command' => 'submit', danielebarchiesi@0: 'selector' => $selector, danielebarchiesi@0: ); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Send an error response back via AJAX and immediately exit. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ajax_render_error($error = '') { danielebarchiesi@0: $commands = array(); danielebarchiesi@0: $commands[] = ajax_command_alert($error); danielebarchiesi@0: print ajax_render($commands); danielebarchiesi@0: exit; danielebarchiesi@0: } danielebarchiesi@0: