Class JsHelper
Javascript Generator helper class for easy use of JavaScript.
JsHelper provides an abstract interface for authoring JavaScript with a given client-side library.
- AppHelper
- JsHelper
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/View/Helper/JsHelper.php
Properties summary
-
$_bufferedScripts
protectedarray
Scripts that are queued for output -
$_engineName
protectedstring
Current Javascript Engine that is being used -
$_jsVars
protectedarray
Variables to pass to Javascript. -
$bufferScripts
publicboolean
Whether or not you want scripts to be buffered or output. -
$helpers
publicarray
Helper dependencies -
$setVariable
publicstring
The javascript variable created by set() variables.
Magic properties summary
Method Summary
-
__call() public
call__ Allows for dispatching of methods to the Engine Helper. methods in the Engines bufferedMethods list will be automatically buffered. You can control buffering with the buffer param as well. By setting the last parameter to any engine method to a boolean you can force or disable buffering.
-
__construct() public
Constructor - determines engine helper -
_createVars() protected
Generates the object string for variables passed to javascript and adds to buffer -
_getHtmlOptions() protected
Parse a set of Options and extract the Html options. Extracted Html Options are removed from the $options param.
-
buffer() public
Write a script to the buffered scripts. -
getBuffer() public
Get all the buffered scripts -
link() public
Generate an 'Ajax' link. Uses the selected JS engine to create a link element that is enhanced with Javascript. Options can include both those for HtmlHelper::link() and JsBaseEngine::request(), JsBaseEngine::event();
-
set() public
Pass variables into Javascript. Allows you to set variables that will be output when the buffer is fetched with
JsHelper::getBuffer()
orJsHelper::writeBuffer()
The Javascript variable used to output set variables can be controlled withJsHelper::$setVariable
-
submit() public
Uses the selected JS engine to create a submit input element that is enhanced with Javascript. Options can include both those for FormHelper::submit() and JsBaseEngine::request(), JsBaseEngine::event();
-
value() public
Overwrite inherited Helper::value() See JsBaseEngineHelper::value() for more information on this method.
-
writeBuffer() public
Writes all Javascript generated so far to a code block or caches them to a file and returns a linked script. If no scripts have been buffered this method will return null. If the request is an XHR(ajax) request onDomReady will be set to false. As the dom is already 'ready'.
Method Detail
__call() public ¶
__call( string $method , array $params )
call__ Allows for dispatching of methods to the Engine Helper. methods in the Engines bufferedMethods list will be automatically buffered. You can control buffering with the buffer param as well. By setting the last parameter to any engine method to a boolean you can force or disable buffering.
e.g. $js->get('#foo')->effect('fadeIn', array('speed' => 'slow'), true);
Will force buffering for the effect method. If the method takes an options array you may also add a 'buffer' param to the options array and control buffering there as well.
e.g. $js->get('#foo')->event('click', $functionContents, array('buffer' => true));
The buffer parameter will not be passed onto the EngineHelper.
Parameters
- string $method
- Method to be called
- array $params
- Parameters for the method being called.
Returns
Depends on the return of the dispatched method, or it could be an instance of the EngineHelper
__construct() public ¶
__construct( View
$View , array $settings = array() )
Constructor - determines engine helper
Parameters
-
View
$View - the view object the helper is attached to.
- array $settings optional array()
- Settings array contains name of engine helper.
_createVars() protected ¶
_createVars( )
Generates the object string for variables passed to javascript and adds to buffer
_getHtmlOptions() protected ¶
_getHtmlOptions( array $options , array $additional = array() )
Parse a set of Options and extract the Html options. Extracted Html Options are removed from the $options param.
Parameters
- array $options
- Options to filter.
- array $additional optional array()
- Array of additional keys to extract and include in the return options array.
Returns
Array of js options and Htmloptions
buffer() public ¶
buffer( string $script , boolean $top = false )
Write a script to the buffered scripts.
Parameters
- string $script
- Script string to add to the buffer.
- boolean $top optional false
If true the script will be added to the top of the buffered scripts array. If false the bottom.
Link
getBuffer() public ¶
getBuffer( boolean $clear = true )
Get all the buffered scripts
Parameters
- boolean $clear optional true
- Whether or not to clear the script caches (default true)
Returns
Array of scripts added to the request.
Link
link() public ¶
link( string $title , string|array $url = null , array $options = array() )
Generate an 'Ajax' link. Uses the selected JS engine to create a link element that is enhanced with Javascript. Options can include both those for HtmlHelper::link() and JsBaseEngine::request(), JsBaseEngine::event();
Options
confirm
- Generate a confirm() dialog before sending the event.id
- use a custom id.htmlAttributes
- additional non-standard htmlAttributes. Standard attributes are class, id, rel, title, escape, onblur and onfocus.buffer
- Disable the buffering and return a script tag in addition to the link.
Parameters
- string $title
- Title for the link.
- string|array $url optional null
- Mixed either a string URL or a CakePHP URL array.
- array $options optional array()
- Options for both the HTML element and Js::request()
Returns
Completed link. If buffering is disabled a script tag will be returned as well.
Link
set() public ¶
set( string|array $one , string|array $two = null )
Pass variables into Javascript. Allows you to set variables that will be
output when the buffer is fetched with JsHelper::getBuffer()
or JsHelper::writeBuffer()
The Javascript variable used to output set variables can be controlled with JsHelper::$setVariable
Parameters
- string|array $one
- Either an array of variables to set, or the name of the variable to set.
- string|array $two optional null
- If $one is a string, $two is the value for that key.
Link
submit() public ¶
submit( string $caption = null , array $options = array() )
Uses the selected JS engine to create a submit input element that is enhanced with Javascript. Options can include both those for FormHelper::submit() and JsBaseEngine::request(), JsBaseEngine::event();
Forms submitting with this method, cannot send files. Files do not transfer over XmlHttpRequest and require an iframe or flash.
Options
url
The url you wish the XHR request to submit to.confirm
A string to use for a confirm() message prior to submitting the request.method
The method you wish the form to send by, defaults to POSTbuffer
Whether or not you wish the script code to be buffered, defaults to true.- Also see options for JsHelper::request() and JsHelper::event()
Parameters
- string $caption optional null
- The display text of the submit button.
- array $options optional array()
- Array of options to use. See the options for the above mentioned methods.
Returns
Completed submit button.
Link
value() public ¶
value( mixed $val = array() , boolean $quoteString = null , $key = 'value' )
Overwrite inherited Helper::value() See JsBaseEngineHelper::value() for more information on this method.
Parameters
- mixed $val optional array()
- A PHP variable to be converted to JSON
- boolean $quoteString optional null
- If false, leaves string values unquoted
- $key optional 'value'
Returns
a JavaScript-safe/JSON representation of $val
Link
writeBuffer() public ¶
writeBuffer( array $options = array() )
Writes all Javascript generated so far to a code block or caches them to a file and returns a linked script. If no scripts have been buffered this method will return null. If the request is an XHR(ajax) request onDomReady will be set to false. As the dom is already 'ready'.
Options
inline
- Set to true to have scripts output as a script block inline ifcache
is also true, a script link tag will be generated. (default true)cache
- Set to true to have scripts cached to a file and linked in (default false)clear
- Set to false to prevent script cache from being cleared (default true)onDomReady
- wrap cached scripts in domready event (default true)safe
- if an inline block is generated should it be wrapped in (default true)
Parameters
- array $options optional array()
- options for the code block
Returns
Completed javascript tag if there are scripts, if there are no buffered scripts null will be returned.
Link
Properties detail
$_bufferedScripts ¶
Scripts that are queued for output
See
array()