Class AjaxHelper
AjaxHelper helper library.
Helps doing AJAX using the Prototype library.
- Object
- Overloadable
- Helper
- AppHelper
- AjaxHelper
Link: http://book.cakephp.org/1.3/en/The-Manual/Core-Helpers/AJAX.html#AJAX
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: view/helpers/ajax.php
Properties summary
-
$Html
publicHtmlHelper instance -
$Javascript
publicJavaScriptHelper
JavaScriptHelper instance -
$__ajaxBuffer
publicarray
Output buffer for Ajax update content -
$ajaxOptions
publicarray
Names of AJAX options. -
$autoCompleteOptions
publicarray
Options for auto-complete editor. -
$callbacks
publicarray
Names of Javascript callback functions. -
$dragOptions
publicarray
Options for draggable. -
$dropOptions
publicarray
Options for droppable. -
$editorOptions
publicarray
Options for in-place editor. -
$helpers
publicarray
Included helpers. -
$sliderOptions
publicarray
Options for slider. -
$sortOptions
publicarray
Options for sortable.
Inherited Properties
Method Summary
-
__getHtmlOptions() public
Private Method to return a string of html options option data as a JavaScript options hash.
-
__optionsForAjax() public
Private helper function for Javascript. -
_buildCallbacks() public
Return Javascript text for callbacks. -
_buildObserver() public
Return JavaScript text for an observer... -
_buildOptions() public
Returns a string of JavaScript with the given option data as a JavaScript options hash. -
_optionsToString() public
Returns a string of JavaScript with a string representation of given options array. -
afterRender() public
Executed after a view has rendered, used to include bufferred code blocks.
-
autoComplete() public
Create a text field with Autocomplete. -
div() public
Creates an Ajax-updateable DIV element -
divEnd() public
Closes an Ajax-updateable DIV element -
drag() public
Creates a draggable element. For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/draggable
-
drop() public
For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/droppables
-
dropRemote() public
Make an element with the given $id droppable, and trigger an Ajax call when a draggable is dropped on it.
-
editor() public
Makes an Ajax In Place editor control. -
form() public
Returns form tag that will submit using Ajax. -
isAjax() public
Detects Ajax requests -
link() public
Returns link to remote action -
observeField() public
Observe field and call ajax on change. -
observeForm() public
Observe entire form and call ajax on change. -
remoteFunction() public
Creates JavaScript function for remote AJAX call -
remoteTimer() public
Periodically call remote url via AJAX. -
slider() public
Makes a slider control. -
sortable() public
Makes a list or group of floated objects sortable. -
submit() public
Returns a button input tag that will submit using Ajax
Method Detail
__getHtmlOptions() public ¶
__getHtmlOptions( array $options , array $extra = array() )
Private Method to return a string of html options option data as a JavaScript options hash.
Parameters
- array $options
- Options in the shape of keys and values
- array $extra optional array()
- Array of legal keys in this options context
Returns
Array of html options
__optionsForAjax() public ¶
__optionsForAjax( array $options )
Private helper function for Javascript.
Parameters
- array $options
- Set of options
_buildCallbacks() public ¶
_buildCallbacks( array $options )
Return Javascript text for callbacks.
Parameters
- array $options
- Option array where a callback is specified
Returns
Options with their callbacks properly set
_buildObserver() public ¶
_buildObserver( string $klass , string $name , array $options = null )
Return JavaScript text for an observer...
Parameters
- string $klass
- Name of JavaScript class
- string $name
- array $options optional null
- Ajax options
Returns
Formatted JavaScript
_buildOptions() public ¶
_buildOptions( array $options , array $acceptable )
Returns a string of JavaScript with the given option data as a JavaScript options hash.
Parameters
- array $options
- Options in the shape of keys and values
- array $acceptable
- Array of legal keys in this options context
Returns
String of Javascript array definition
_optionsToString() public ¶
_optionsToString( array $options , array $stringOpts = array() )
Returns a string of JavaScript with a string representation of given options array.
Parameters
- array $options
- Ajax options array
- array $stringOpts optional array()
- Options as strings in an array
Returns
afterRender() public ¶
afterRender( )
Executed after a view has rendered, used to include bufferred code blocks.
Overrides
autoComplete() public ¶
autoComplete( string $field , string $url = "" , array $options = array() )
Create a text field with Autocomplete.
Creates an autocomplete field with the given ID and options.
options['with'] defaults to "Form.Element.serialize('$field')", but can be any valid javascript expression defining the additional fields.
Parameters
- string $field
- DOM ID of field to observe
- string $url optional ""
- URL for the autocomplete action
- array $options optional array()
- Ajax options
Returns
Ajax script
Link
div() public ¶
div( string $id , $options = array() )
Creates an Ajax-updateable DIV element
Parameters
- string $id
- options for javascript
- $options optional array()
Returns
HTML code
divEnd() public ¶
divEnd( string $id )
Closes an Ajax-updateable DIV element
Parameters
- string $id
- The DOM ID of the element
Returns
HTML code
drag() public ¶
drag( unknown_type $id , array $options = array() )
Creates a draggable element. For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/draggable
Parameters
- unknown_type $id
- array $options optional array()
Returns
Link
drop() public ¶
drop( unknown_type $id , array $options = array() )
For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/droppables
Parameters
- unknown_type $id
- array $options optional array()
Returns
Link
dropRemote() public ¶
dropRemote( string $id , array $options = array() , array $ajaxOptions = array() )
Make an element with the given $id droppable, and trigger an Ajax call when a draggable is dropped on it.
For a reference on the options for this function, check out http://wiki.script.aculo.us/scriptaculous/show/Droppables.add
Parameters
- string $id
- array $options optional array()
- array $ajaxOptions optional array()
Returns
JavaScript block to create a droppable element
editor() public ¶
editor( string $id , string $url , array $options = array() )
Makes an Ajax In Place editor control.
Parameters
- string $id
- DOM ID of input element
- string $url
- Postback URL of saved data
- array $options optional array()
- Array of options to control the editor, including ajaxOptions (see link).
Link
form() public ¶
form( mixed $params = null , array $type = 'post' , array $options = array() )
Returns form tag that will submit using Ajax.
Returns a form tag that will submit using XMLHttpRequest in the background instead of the regular reloading POST arrangement. Even though it's using Javascript to serialize the form elements, the form submission will work just like a regular submission as viewed by the receiving side (all elements available in params). The options for defining callbacks is the same as AjaxHelper::link().
Parameters
- mixed $params optional null
Either a string identifying the form target, or an array of method parameters, including: - 'params' => Acts as the form target - 'type' => 'post' or 'get' - 'options' => An array containing all HTML and script options used to generate the form tag and Ajax request.
- array $type optional 'post'
- How form data is posted: 'get' or 'post'
- array $options optional array()
- Callback/HTML options
Returns
JavaScript/HTML code
See
Link
isAjax() public ¶
isAjax( )
Detects Ajax requests
Returns
True if the current request is a Prototype Ajax update call
Link
link() public ¶
link( string $title , mixed $url = null , array $options = array() , string $confirm = null )
Returns link to remote action
Returns a link to a remote action defined by options[url] (using the url() format) that's called in the background using XMLHttpRequest. The result of that request can then be inserted into a DOM object whose id can be specified with options[update].
Examples:
link("Delete this post", array("update" => "posts", "url" => "delete/{$postid->id}")); link(imageTag("refresh"), array("update" => "emails", "url" => "list_emails" ));
By default, these remote requests are processed asynchronous during which various callbacks can be triggered (for progress indicators and the likes).
Example:
link (word, array("url" => "undo", "n" => word_counter), array("complete" => "undoRequestCompleted(request)"));
The callbacks that may be specified are:
- loading:: Called when the remote document is being loaded with data by the browser.
- loaded:: Called when the browser has finished loading the remote document.
- interactive:: Called when the user can interact with the remote document, even though it has not finished loading.
- complete:: Called when the XMLHttpRequest is complete.
If you for some reason or another need synchronous processing (that'll block the browser while the request is happening), you can specify options[type] = synchronous.
You can customize further browser side call logic by passing in Javascript code snippets via some optional parameters. In their order of use these are:
- confirm:: Adds confirmation dialog. -condition:: Perform remote request conditionally by this expression. Use this to describe browser-side conditions when request should not be initiated.
- before:: Called before request is initiated.
- after:: Called immediately after request was initiated and before loading.
Parameters
- string $title
- Title of link
- mixed $url optional null
- Cake-relative URL or array of URL parameters, or external URL (starts with http://)
- array $options optional array()
- Options for JavaScript function
- string $confirm optional null
- Confirmation message. Calls up a JavaScript confirm() message.
Returns
HTML code for link to remote action
Link
observeField() public ¶
observeField( string $field , array $options = array() )
Observe field and call ajax on change.
Observes the field with the DOM ID specified by field and makes an Ajax when its contents have changed.
Required +options+ are: - frequency:: The frequency (in seconds) at which changes to this field will be detected. - url:: @see url() -style options for the action to call when the field has changed.
Additional options are: - update:: Specifies the DOM ID of the element whose innerHTML should be updated with the XMLHttpRequest response text. - with:: A Javascript expression specifying the parameters for the XMLHttpRequest. This defaults to Form.Element.serialize('$field'), which can be accessed from params['form']['field_id'].
Additionally, you may specify any of the options documented in
Parameters
- string $field
- DOM ID of field to observe
- array $options optional array()
- ajax options
Returns
ajax script
See
Link
observeForm() public ¶
observeForm( string $form , array $options = array() )
Observe entire form and call ajax on change.
Like @see observeField(), but operates on an entire form identified by the DOM ID form. options are the same as observeField, except the default value of the with option evaluates to the serialized (request string) value of the form.
Parameters
- string $form
- DOM ID of form to observe
- array $options optional array()
- ajax options
Returns
ajax script
Link
remoteFunction() public ¶
remoteFunction( array $options )
Creates JavaScript function for remote AJAX call
This function creates the javascript needed to make a remote call it is primarily used as a helper for AjaxHelper::link.
Parameters
- array $options
- options for javascript
Returns
html code for link to remote action
See
Link
remoteTimer() public ¶
remoteTimer( array $options = null )
Periodically call remote url via AJAX.
Periodically calls the specified url (options[url]) every options[frequency] seconds (default is 10). Usually used to update a specified div (options[update]) with the results of the remote call. The options for specifying the target with url and defining callbacks is the same as AjaxHelper::link().
Parameters
- array $options optional null
- Callback options
Returns
Javascript code
See
Link
slider() public ¶
slider( string $id , string $trackId , array $options = array() )
Makes a slider control.
Parameters
- string $id
- DOM ID of slider handle
- string $trackId
- DOM ID of slider track
- array $options optional array()
- Array of options to control the slider
Link
sortable() public ¶
sortable( string $id , array $options = array() )
Makes a list or group of floated objects sortable.
Parameters
- string $id
- DOM ID of parent
- array $options optional array()
- Array of options to control sort.
Link
submit() public ¶
submit( string $title = 'Submit' , array $options = array() )
Returns a button input tag that will submit using Ajax
Returns a button input tag that will submit form using XMLHttpRequest in the background instead of regular reloading POST arrangement. options argument is the same as in AjaxHelper::form().
Parameters
- string $title optional 'Submit'
- Input button title
- array $options optional array()
- Callback options
Returns
Ajaxed input button
See
Link
Methods inherited from Helper
__formatAttribute() public ¶
__formatAttribute( string $key , string $value , $escape = true )
Formats an individual attribute, and returns the string value of the composed attribute. Works with minimized attributes that have the same value as their name such as 'disabled' and 'checked'
Parameters
- string $key
- The name of the attribute to create
- string $value
- The value of the attribute to create.
- $escape optional true
Returns
The composed attribute.
__selectedArray() public ¶
__selectedArray( mixed $data , string $key = 'id' )
Transforms a recordset from a hasAndBelongsToMany association to a list of selected options for a multiple select element
Parameters
- mixed $data
- string $key optional 'id'
Returns
_initInputField() public ¶
_initInputField( string $field , array $options = array() )
Sets the defaults for an input tag. Will set the name, value, and id attributes for an array of html attributes. Will also add a 'form-error' class if the field contains validation errors.
Parameters
- string $field
- The field name to initialize.
- array $options optional array()
- Array of options to use while initializing an input field.
Returns
Array options for the form input.
_name() public ¶
_name( mixed $options = array() , string $field = null , string $key = 'name' )
Gets the input field name for the current tag. Creates input name attributes using CakePHP's data[Model][field] formatting.
Parameters
- mixed $options optional array()
If an array, should be an array of attributes that $key needs to be added to. If a string or null, will be used as the View entity.
- string $field optional null
- string $key optional 'name'
- The name of the attribute to be set, defaults to 'name'
Returns
If an array was given for $options, an array with $key set will be returned. If a string was supplied a string will be returned.
_parseAttributes() public ¶
_parseAttributes( array $options , array $exclude = null , string $insertBefore = ' ' , string $insertAfter = null )
Returns a space-delimited string with items of the $options array. If a key of $options array happens to be one of:
- 'compact'
- 'checked'
- 'declare'
- 'readonly'
- 'disabled'
- 'selected'
- 'defer'
- 'ismap'
- 'nohref'
- 'noshade'
- 'nowrap'
- 'multiple'
- 'noresize'
And its value is one of:
- '1' (string)
- 1 (integer)
- true (boolean)
- 'true' (string)
Then the value will be reset to be identical with key's name. If the value is not one of these 3, the parameter is not output.
'escape' is a special option in that it controls the conversion of attributes to their html-entity encoded equivalents. Set to false to disable html-encoding.
If value for any option key is set to null
or false
, that option will be excluded from output.
Parameters
- array $options
- Array of options.
- array $exclude optional null
- Array of options to be excluded, the options here will not be part of the return.
- string $insertBefore optional ' '
- String to be inserted before options.
- string $insertAfter optional null
- String to be inserted after options.
Returns
Composed attributes.
addClass() public ¶
addClass( array $options = array() , string $class = null , string $key = 'class' )
Adds the given class to the element options
Parameters
- array $options optional array()
- Array options/attributes to add a class to
- string $class optional null
- The classname being added.
- string $key optional 'class'
- the key to use for class.
Returns
Array of options with $key set.
afterLayout() public ¶
afterLayout( )
After layout callback. afterLayout is called after the layout has rendered.
Overridden in subclasses.
assetTimestamp() public ¶
assetTimestamp( string $path )
Adds a timestamp to a file based resource based on the value of Asset.timestamp
in
Configure. If Asset.timestamp is true and debug > 0, or Asset.timestamp == 'force'
a timestamp will be added.
Parameters
- string $path
- The file path to timestamp, the path must be inside WWW_ROOT
Returns
Path with a timestamp added, or not.
beforeLayout() public ¶
beforeLayout( )
Before layout callback. beforeLayout is called before the layout is rendered.
Overridden in subclasses.
beforeRender() public ¶
beforeRender( )
Before render callback. beforeRender is called before the view file is rendered.
Overridden in subclasses.
clean() public ¶
clean( mixed $output )
Used to remove harmful tags from content. Removes a number of well known XSS attacks from content. However, is not guaranteed to remove all possiblities. Escaping content is the best way to prevent all possible attacks.
Parameters
- mixed $output
- Either an array of strings to clean or a single string to clean.
Returns
content for output
domId() public ¶
domId( mixed $options = null , string $id = 'id' )
Generates a DOM ID for the selected element, if one is not set. Uses the current View::entity() settings to generate a CamelCased id attribute.
Parameters
- mixed $options optional null
Either an array of html attributes to add $id into, or a string with a view entity path to get a domId for.
- string $id optional 'id'
- The name of the 'id' attribute.
Returns
If $options was an array, an array will be returned with $id set. If a string was supplied, a string will be returned.
field() public ¶
field( )
Gets the currently-used model field of the rendering context.
Returns
loadConfig() public ¶
loadConfig( $name = 'tags' )
Parses tag templates into $this->tags.
Parameters
- $name optional 'tags'
- name inside app/config to load.
Returns
merged tags from config/$name.php
modelID() public ¶
modelID( )
Gets the ID of the currently-used model of the rendering context.
Returns
output() public deprecated ¶
output( string $str )
Returns a string generated by a helper method
This method can be overridden in subclasses to do generalized output post-processing
Deprecated
Parameters
- string $str
- String to be output.
Returns
setEntity() public ¶
setEntity( mixed $entity , boolean $setScope = false )
Sets this helper's model and field properties to the dot-separated value-pair in $entity.
Parameters
- mixed $entity
- A field name, like "ModelName.fieldName" or "ModelName.ID.fieldName"
- boolean $setScope optional false
- Sets the view scope to the model specified in $tagValue
tagIsInvalid() public ¶
tagIsInvalid( string $model = null , string $field = null , integer $modelID = null )
Returns null if given FORM field has no errors. Otherwise it returns the constant set in the array Model->validationErrors.
Parameters
- string $model optional null
- Model name as a string
- string $field optional null
- Fieldname as a string
- integer $modelID optional null
- Unique index identifying this record within the form
Returns
Null if no errors, string with error otherwhise.
url() public ¶
url( mixed $url = null , boolean $full = false )
Finds URL for specified action.
Returns a URL pointing at the provided parameters.
Parameters
- mixed $url optional null
Either a relative string url like
/products/view/23
or an array of url parameters. Using an array for urls will allow you to leverage the reverse routing features of CakePHP.- boolean $full optional false
- If true, the full base URL will be prepended to the result
Returns
Full translated URL with base path.
Link
value() public ¶
value( mixed $options = array() , string $field = null , string $key = 'value' )
Gets the data for the current tag
Parameters
- mixed $options optional array()
If an array, should be an array of attributes that $key needs to be added to. If a string or null, will be used as the View entity.
- string $field optional null
- string $key optional 'value'
- The name of the attribute to be set, defaults to 'value'
Returns
If an array was given for $options, an array with $key set will be returned. If a string was supplied a string will be returned.
Methods inherited from Overloadable
Methods inherited from Object
Object() public ¶
Object( )
A hack to support __construct() on PHP 4 Hint: descendant classes have no PHP4 class_name() constructors, so this constructor gets called first and calls the top-layer __construct() which (if present) should call parent::__construct()
Returns
__openPersistent() public ¶
__openPersistent( string $name , string $type = null )
Open the persistent class file for reading Used by Object::_persist()
Parameters
- string $name
- Name of persisted class
- string $type optional null
- Type of persistance (e.g: registry)
_persist() public ¶
_persist( string $name , string $return , $object , $type = null )
Checks for a persistent class file, if found file is opened and true returned If file is not found a file is created and false returned If used in other locations of the model you should choose a unique name for the persistent file There are many uses for this method, see manual for examples
Parameters
- string $name
- name of the class to persist
- string $return
- $object the object to persist
- $object
- $type optional null
Returns
Success
_savePersistent() public ¶
_savePersistent( string $name , object $object )
You should choose a unique name for the persistent file
There are many uses for this method, see manual for examples
Parameters
- string $name
- name used for object to cache
- object $object
- the object to persist
Returns
true on save, throws error if file can not be created
_set() public ¶
_set( array $properties = array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
Parameters
- array $properties optional array()
- An associative array containing properties and corresponding values.
_stop() public ¶
_stop( $status = 0 )
Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- $status optional 0
- http://php.net/exit for values
cakeError() public ¶
cakeError( string $method , array $messages = array() )
Used to report user friendly errors. If there is a file app/error.php or app/app_error.php this file will be loaded error.php is the AppError class it should extend ErrorHandler class.
Parameters
- string $method
- Method to be called in the error class (AppError or ErrorHandler classes)
- array $messages optional array()
- Message that is to be displayed by the error class
Returns
message
dispatchMethod() public ¶
dispatchMethod( string $method , array $params = array() )
Calls a method on this object with the given parameters. Provides an OO wrapper
for call_user_func_array
Parameters
- string $method
- Name of the method to call
- array $params optional array()
- Parameter list to use when calling $method
Returns
Returns the result of the method call
log() public ¶
log( string $msg , integer $type = LOG_ERROR )
Convience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
Parameters
- string $msg
- Log message
- integer $type optional LOG_ERROR
- Error type constant. Defined in app/config/core.php.
Returns
Success of log write
requestAction() public ¶
requestAction( mixed $url , array $extra = array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Parameters
- mixed $url
- String or array-based url.
- array $extra optional array()
- if array includes the key "return" it sets the AutoRender to true.
Returns
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString() public ¶
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
The name of this class
Properties detail
$ajaxOptions ¶
Names of AJAX options.
array( 'after', 'asynchronous', 'before', 'confirm', 'condition', 'contentType', 'encoding', 'evalScripts', 'failure', 'fallback', 'form', 'indicator', 'insertion', 'interactive', 'loaded', 'loading', 'method', 'onCreate', 'onComplete', 'onException', 'onFailure', 'onInteractive', 'onLoaded', 'onLoading', 'onSuccess', 'onUninitialized', 'parameters', 'position', 'postBody', 'requestHeaders', 'success', 'type', 'update', 'with' )
$autoCompleteOptions ¶
Options for auto-complete editor.
array( 'afterUpdateElement', 'callback', 'frequency', 'indicator', 'minChars', 'onShow', 'onHide', 'parameters', 'paramName', 'tokens', 'updateElement' )
$callbacks ¶
Names of Javascript callback functions.
array( 'complete', 'create', 'exception', 'failure', 'interactive', 'loading', 'loaded', 'success', 'uninitialized' )
$dragOptions ¶
Options for draggable.
array( 'handle', 'revert', 'snap', 'zindex', 'constraint', 'change', 'ghosting', 'starteffect', 'reverteffect', 'endeffect', 'scroll', 'scrollSensitivity', 'onStart', 'onDrag', 'onEnd' )
$dropOptions ¶
Options for droppable.
array( 'accept', 'containment', 'greedy', 'hoverclass', 'onHover', 'onDrop', 'overlap' )
$editorOptions ¶
Options for in-place editor.
array( 'okText', 'cancelText', 'savingText', 'formId', 'externalControl', 'rows', 'cols', 'size', 'highlightcolor', 'highlightendcolor', 'savingClassName', 'formClassName', 'loadTextURL', 'loadingText', 'callback', 'ajaxOptions', 'clickToEditText', 'collection', 'okControl', 'cancelControl', 'submitOnBlur' )
$sliderOptions ¶
Options for slider.
array( 'alignX', 'alignY', 'axis', 'disabled', 'handleDisabled', 'handleImage', 'increment', 'maximum', 'minimum', 'onChange', 'onSlide', 'range', 'sliderValue', 'values' )
$sortOptions ¶
Options for sortable.
array( 'constraint', 'containment', 'dropOnEmpty', 'ghosting', 'handle', 'hoverclass', 'onUpdate', 'onChange', 'only', 'overlap', 'scroll', 'scrollSensitivity', 'scrollSpeed', 'tag', 'tree', 'treeTag', 'update' )