class CMSBatchAction

A class representing back actions.

See CMSMain.BatchActions.js on how to add custom javascript functionality.

CMSMain::register_batch_action('publishitems', new CMSBatchAction('doPublish', _t('CMSBatchActions.PUBLISHED_PAGES', 'published %d pages')));

Traits

A class that can be instantiated or replaced via DI

Methods

static Injectable
create(array $args)

An implementation of the factory method, allows you to create an instance of a class

static Injectable
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

getActionTitle()

The the text to show in the dropdown for this action

string
run(SS_List $objs)

Run this action for the given set of pages.

string
response(string $successMessage, array $status)

Helper method for responding to a back action request

string
batchaction(SS_List $objs, string $helperMethod, string $successMessage, array $arguments = array())

Helper method for processing batch actions.

array
applicablePagesHelper(array $ids, string $methodName, bool $checkStagePages = true, bool $checkLivePages = true)

Helper method for applicablePages() methods. Acts as a skeleton implementation.

getParameterFields()

No description

canView()

If you wish to restrict the batch action to some users, overload this function.

array
applicablePages(array $ids)

Given a list of object IDs, filter out which items can have this batch action applied to them.

Details

in Injectable at line 26
static Injectable create(array $args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create('SiteTree'); $list = SiteTree::get();

Parameters

array $args

Return Value

Injectable

in Injectable at line 43
static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class Optional classname to create, if the called class should not be used

Return Value

Injectable The singleton instance

at line 32
abstract getActionTitle()

The the text to show in the dropdown for this action

at line 41
abstract string run(SS_List $objs)

Run this action for the given set of pages.

Return a set of status-updated JavaScript to return to the CMS.

Parameters

SS_List $objs

Return Value

string

at line 54
string response(string $successMessage, array $status)

Helper method for responding to a back action request

Parameters

string $successMessage The message to return as a notification. Can have up to two %d's in it. The first will be replaced by the number of successful changes, the second by the number of failures
array $status A status array like batchactions builds. Should be key => value pairs, the key can be any string: "error" indicates errors, anything else indicates a type of success. The value is an array. We don't care what's in it, we just use count($value) to find the number of items that succeeded or failed

Return Value

string

at line 102
string batchaction(SS_List $objs, string $helperMethod, string $successMessage, array $arguments = array())

Helper method for processing batch actions.

Returns a set of status-updating JavaScript to return to the CMS.

Parameters

SS_List $objs The SS_List of objects to perform this batch action on.
string $helperMethod The method to call on each of those objects.
string $successMessage
array $arguments

Return Value

string JSON encoded map in the following format: { 'modified': { 3: {'TreeTitle': 'Page3'}, 5: {'TreeTitle': 'Page5'} }, 'deleted': { // all deleted pages } }

at line 142
array applicablePagesHelper(array $ids, string $methodName, bool $checkStagePages = true, bool $checkLivePages = true)

Helper method for applicablePages() methods. Acts as a skeleton implementation.

Parameters

array $ids The IDs passed to applicablePages
string $methodName The canXXX() method to call on each page to check if the action is applicable
bool $checkStagePages Set to true if you want to check stage pages
bool $checkLivePages Set to true if you want to check live pages (e.g, for deleted-from-draft)

Return Value

array

at line 183
getParameterFields()

at line 191
canView()

If you wish to restrict the batch action to some users, overload this function.

at line 203
array applicablePages(array $ids)

Given a list of object IDs, filter out which items can have this batch action applied to them.

Parameters

array $ids List of object ids

Return Value

array Filtered list of $ids