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
Extended by JsHelper
Package: Cake\View\Helper
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/View/Helper/JsHelper.php

Properties summary

  • $_bufferedScripts protected
    array
    Scripts that are queued for output
  • $_engineName protected
    string
    Current Javascript Engine that is being used
  • $_jsVars protected
    array
    Variables to pass to Javascript.
  • boolean
    Whether or not you want scripts to be buffered or output.
  • $helpers public
    array
    Helper dependencies
  • $setVariable public
    string
    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() or JsHelper::writeBuffer() The Javascript variable used to output set variables can be controlled with JsHelper::$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()source 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

mixed
Depends on the return of the dispatched method, or it could be an instance of the EngineHelper

__construct()source public

__construct( View $View , string|array $settings array() )

Constructor - determines engine helper

Parameters

View $View
the view object the helper is attached to.
string|array $settings optional array()
Settings array contains name of engine helper.

_createVars()source protected

_createVars( )

Generates the object string for variables passed to javascript and adds to buffer

_getHtmlOptions()source 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
Array of js options and Htmloptions

buffer()source 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

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::buffer

getBuffer()source 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
Array of scripts added to the request.

Link

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::getBuffer
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

string
Completed link. If buffering is disabled a script tag will be returned as well.

Link

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::link

set()source 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

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::set

submit()source 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 POST
  • buffer 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

string
Completed submit button.

Link

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::submit

value()source public

value( mixed $val array() , boolean $quoteString null , string $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
string $key optional 'value'
Key name.

Returns

string
a JavaScript-safe/JSON representation of $val

Link

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::value

writeBuffer()source 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 if cache 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

mixed

Completed javascript tag if there are scripts, if there are no buffered scripts null will be returned.


Link

https://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#JsHelper::writeBuffer

Properties detail

$_bufferedScriptssource

protected array

Scripts that are queued for output

See

JsHelper::buffer()
array()

$_engineNamesource

protected string

Current Javascript Engine that is being used

$_jsVarssource

protected array

Variables to pass to Javascript.

See

JsHelper::set()
array()

$bufferScriptssource

public boolean

Whether or not you want scripts to be buffered or output.

true

$helperssource

public array

Helper dependencies

array('Html', 'Form')

$setVariablesource

public string

The javascript variable created by set() variables.

'app'

Magic properties detail

$Formsource

public FormHelper

$Htmlsource

public HtmlHelper

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-JsHelper.html