class VersionedStateExtension extends Extension

Persists versioned state between requests via querystring arguments

Properties

$class from Extension
Controller|DataObject $owner

Methods

__construct()

No description

from Extension
static 
add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

from Extension
setOwner(SS_Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

from Extension
clearOwner()

No description

from Extension
getOwner()

Returns the owner of this extension.

from Extension
static string
get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string thats passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.

from Extension
updateLink(string $link)

Auto-append current stage if we're in draft, to avoid relying on session state for this, and the related potential of showing draft content without varying the URL itself.

Details

in Extension at line 42
__construct()

in Extension at line 54
static add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

Parameters

string $class
string $extensionClass
mixed $args

in Extension at line 66
setOwner(SS_Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

Parameters

SS_Object $owner The owner object,
string $ownerBaseClass The base class that the extension is applied to; this may be the class of owner, or it may be a parent. For example, if Versioned was applied to SiteTree, and then a Page object was instantiated, $owner would be a Page object, but $ownerBaseClass would be 'SiteTree'.

in Extension at line 74
clearOwner()

in Extension at line 85
SS_Object getOwner()

Returns the owner of this extension.

Return Value

SS_Object

in Extension at line 97
static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string thats passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.

Parameters

string $extensionStr E.g. "Versioned('Stage','Live')"

Return Value

string Extension classname, e.g. "Versioned"

Auto-append current stage if we're in draft, to avoid relying on session state for this, and the related potential of showing draft content without varying the URL itself.

Assumes that if the user has access to view the current record in draft stage, they can also view other draft records. Does not concern itself with verifying permissions for performance reasons.

This should also pull through to form actions.

Parameters

string $link