class PjaxResponseNegotiator (View source)

Handle the X-Pjax header that AJAX responses may provide, returning the fragment, or, in the case of non-AJAX form submissions, redirecting back to the submitter.

X-Pjax ensures that users won't end up seeing the unstyled form HTML in their browser.

If a JS error prevents the Ajax overriding of form submissions from happening.

It also provides better non-JS operation.

Caution: This API is volatile, and might eventually be replaced by a generic action helper system for controllers.

Properties

protected array $callbacks
protected $response
protected $fragmentOverride

Overriden fragments (if any). Otherwise uses fragments from the request.

Methods

public
__construct(array $callbacks = array(), $response = null)

No description

public
getResponse()

No description

public
setResponse($response)

No description

public
respond(SS_HTTPRequest $request, array $extraCallbacks = array())

Out of the box, the handler "CurrentForm" value, which will return the rendered form.

public
setCallback(string $fragment, callable $callback)

No description

public
setFragmentOverride(array $fragments)

Set up fragment overriding - will completely replace the incoming fragments.

public
array
getFragmentOverride()

No description

Details

__construct(array $callbacks = array(), $response = null)

No description

Parameters

array $callbacks
$response

getResponse()

No description

setResponse($response)

No description

Parameters

$response

SS_HTTPResponse respond(SS_HTTPRequest $request, array $extraCallbacks = array())

Out of the box, the handler "CurrentForm" value, which will return the rendered form.

Non-Ajax calls will redirect back.

Parameters

SS_HTTPRequest $request
array $extraCallbacks

List of anonymous functions or callables returning either a string or SS_HTTPResponse, keyed by their fragment identifier. The 'default' key can be used as a fallback for non-ajax responses.

Return Value

SS_HTTPResponse

setCallback(string $fragment, callable $callback)

No description

Parameters

string $fragment
callable $callback

setFragmentOverride(array $fragments)

Set up fragment overriding - will completely replace the incoming fragments.

Parameters

array $fragments

Fragments to insert.

array getFragmentOverride()

No description

Return Value

array