VersionedStateExtension
class VersionedStateExtension extends Extension (View source)
Persists versioned state between requests via querystring arguments
Properties
RequestHandler|DataObject | $owner |
Methods
Called when this extension is added to a particular class
Temporarily modify the owner. The original owner is ensured to be restored
Clear the current owner, and restore extension to the state prior to the last setOwner()
Helper method to strip eval'ed arguments from a string that's passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.
Invoke extension point. This will prefer explicit extend
prefixed
methods.
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
__construct()
static
add_to_class(string $class, string $extensionClass, mixed $args = null)
Called when this extension is added to a particular class
setOwner(object $owner)
Set the owner of this extension.
mixed
withOwner(mixed $owner, callable $callback, array $args = [])
Temporarily modify the owner. The original owner is ensured to be restored
clearOwner()
Clear the current owner, and restore extension to the state prior to the last setOwner()
object
getOwner()
Returns the owner of this extension.
static string
get_classname_without_arguments(string $extensionStr)
Helper method to strip eval'ed arguments from a string that's passed to {@link DataObject::$extensions} or {@link Object::add_extension()}.
mixed
invokeExtension(object $owner, string $method, array ...$arguments)
Invoke extension point. This will prefer explicit extend
prefixed
methods.
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.
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.