class AdvancedWorkflowExtension extends LeftAndMainExtension (View source)

Handles interactions triggered by users in the backend of the CMS. Replicate this type of functionality wherever you need UI interaction with workflow.

Properties

protected SS_Object $owner

The object this extension is applied to.

from  Extension
protected DataObject $ownerBaseClass

The base class that this extension was applied to; $this->owner must be one of these

from  Extension
public $class from  Extension

Methods

public
__construct()

No description

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

Called when this extension is added to a particular class

public
setOwner(SS_Object $owner, string $ownerBaseClass = null)

Set the owner of this extension.

public
clearOwner()

No description

public
getOwner()

Returns the owner of this extension.

public static 
string
get_classname_without_arguments(string $extensionStr)

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

public
init()

No description

public
accessedCMS()

No description

public
augmentNewSiteTreeItem($item)

No description

public
startworkflow($data, $form, $request)

No description

public
updateEditForm(Form $form)

Need to update the edit form AFTER it's been transformed to read only so that the workflow stuff is still allowed to be added with 'write' permissions

public
updateItemEditForm($form)

No description

public
string
updateworkflow(array $data, Form $form, SS_HTTPRequest $request)

Update a workflow based on user input.

protected
returnResponse($form)

No description

protected
void
saveAsDraftWithAction(Form $form, DataObject $item)

Ocassionally users forget to apply their changes via the standard CMS "Save Draft" button, and select the action button instead - losing their changes.

Details

__construct()

No description

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

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'.

clearOwner()

No description

SS_Object getOwner()

Returns the owner of this extension.

Return Value

SS_Object

static string get_classname_without_arguments(string $extensionStr)

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

Parameters

string $extensionStr

E.g. "Versioned('Stage','Live')"

Return Value

string

Extension classname, e.g. "Versioned"

init()

No description

accessedCMS()

No description

augmentNewSiteTreeItem($item)

No description

Parameters

$item

startworkflow($data, $form, $request)

No description

Parameters

$data
$form
$request

updateEditForm(Form $form)

Need to update the edit form AFTER it's been transformed to read only so that the workflow stuff is still allowed to be added with 'write' permissions

Parameters

Form $form

updateItemEditForm($form)

No description

Parameters

$form

string updateworkflow(array $data, Form $form, SS_HTTPRequest $request)

Update a workflow based on user input.

refactor with WorkflowInstance::updateWorkflow

Parameters

array $data
Form $form
SS_HTTPRequest $request

Return Value

string

protected returnResponse($form)

No description

Parameters

$form

protected void saveAsDraftWithAction(Form $form, DataObject $item)

Ocassionally users forget to apply their changes via the standard CMS "Save Draft" button, and select the action button instead - losing their changes.

Calling this from a controller method saves a draft automatically for the user, whenever a workflow action is run. See: #72 and #77

Parameters

Form $form
DataObject $item

Return Value

void