class ErrorPageExtension extends DataExtension (View source)

Class ErrorPageExtension

Properties

ErrorPage $owner
static private array $db
static private array $defaults
static private array $allowed_children
static private string $description
static private string $icon_class
static private bool $enable_static_file

Allows control over writing directly to the configured GeneratedAssetStore.

static private string|null $store_filepath

Prefix for storing error files in the see GeneratedAssetHandler store.

int $ErrorCode

Methods

__construct()

No description

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.

static 
unload_extra_statics($class, $extension)

No description

validate(ValidationResult $validationResult)

Hook for extension-specific validation.

augmentSQL(SQLSelect $query, DataQuery $dataQuery = null)

Edit the given query object to support queries for this extension

augmentDatabase()

Update the database schema as required by this extension.

augmentWrite(array $manipulation)

Augment a write-record request.

onBeforeWrite()

No description

onAfterWrite()

No description

onBeforeDelete()

No description

onAfterDelete()

No description

requireDefaultRecords()

Ensures that there is always a 404 page by checking if there's an instance of ErrorPage with a 404 and 500 error code. If there is not, one is created when the DB is built.

populateDefaults()

No description

can($member)

No description

canEdit($member)

No description

canDelete($member)

No description

canCreate($member)

No description

array
extraStatics(string $class = null, string $extension = null)

Define extra database fields

updateCMSFields(FieldList $fields)

This function is used to provide modifications to the form in the CMS by the extension. By default, no changes are made. {@link DataObject->getCMSFields()}.

updateFrontEndFields(FieldList $fields)

This function is used to provide modifications to the form used for front end forms. {@link DataObject->getFrontEndFields()}

updateCMSActions(FieldList $actions)

This is used to provide modifications to the form actions used in the CMS. {@link DataObject->getCMSActions()}.

updateSummaryFields(array $fields)

this function is used to provide modifications to the summary fields in CMS by the extension By default, the summaryField() of its owner will merge more fields defined in the extension's $extra_fields['summary_fields']

updateFieldLabels(array $labels)

Extension point in see DataObject::fieldLabels

bool
canAddChildren(Member|null $member = null)

No description

bool
defaultRecordsAllowed()

Default records are allowed by default override on model if needed

HTTPResponse|null
responseFor(int $statusCode, string|null $errorMessage = null)

Get a {@link HTTPResponse} to response to a HTTP error code if an {@link ErrorPage} for that code is present. First tries to serve it through the standard SilverStripe request method. Falls back to a static file generated when the user hit's save and publish in the CMS

string|null
getContentForErrorcode(int $statusCode)

Returns statically cached content for a given error code

bool
writeStaticPage()

Write out the published version of the page to the filesystem.

bool
hasStaticPage()

Determine if static content is cached for this page

array
getCodes()

No description

array
getDefaultRecordsData()

Returns an array of arrays, each of which defines properties for a new ErrorPage record.

void
onAfterPublish(DataObject $original)

Extension point in see Versioned::publishSingle

Details

__construct()

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(object $owner)

Set the owner of this extension.

Parameters

object $owner

The owner object

mixed withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

Parameters

mixed $owner

Owner to set

callable $callback

Callback to invoke

array $args

Args to pass to callback

Return Value

mixed

clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

object getOwner()

Returns the owner of this extension.

Return Value

object

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()}.

Parameters

string $extensionStr

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

Return Value

string

Extension classname, e.g. "Versioned"

mixed invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

Parameters

object $owner
string $method
array ...$arguments

Return Value

mixed

static unload_extra_statics($class, $extension)

Parameters

$class
$extension

validate(ValidationResult $validationResult)

Hook for extension-specific validation.

Parameters

ValidationResult $validationResult

Local validation result

Exceptions

ValidationException

augmentSQL(SQLSelect $query, DataQuery $dataQuery = null)

Edit the given query object to support queries for this extension

Parameters

SQLSelect $query

Query to augment.

DataQuery $dataQuery

Container DataQuery for this SQLSelect

augmentDatabase()

Update the database schema as required by this extension.

When duplicating a table's structure, remember to duplicate the create options as well. See {@link Versioned->augmentDatabase} for an example.

augmentWrite(array $manipulation)

Augment a write-record request.

Parameters

array $manipulation

Array of operations to augment.

onBeforeWrite()

onAfterWrite()

onBeforeDelete()

onAfterDelete()

requireDefaultRecords()

Ensures that there is always a 404 page by checking if there's an instance of ErrorPage with a 404 and 500 error code. If there is not, one is created when the DB is built.

Exceptions

ValidationException

populateDefaults()

can($member)

Parameters

$member

canEdit($member)

Parameters

$member

canDelete($member)

Parameters

$member

canCreate($member)

Parameters

$member

array extraStatics(string $class = null, string $extension = null)

Define extra database fields

Return a map where the keys are db, has_one, etc, and the values are additional fields/relations to be defined.

Parameters

string $class

since this method might be called on the class directly

string $extension

since this can help to extract parameters to help set indexes

Return Value

array

Returns a map where the keys are db, has_one, etc, and the values are additional fields/relations to be defined.

updateCMSFields(FieldList $fields)

This function is used to provide modifications to the form in the CMS by the extension. By default, no changes are made. {@link DataObject->getCMSFields()}.

Please consider using {@link updateFormFields()} to globally add formfields to the record. The method {@link updateCMSFields()} should just be used to add or modify tabs, or fields which are specific to the CMS-context.

Caution: Use {@link FieldList->addFieldToTab()} to add fields.

Parameters

FieldList $fields

FieldList with a contained TabSet

updateFrontEndFields(FieldList $fields)

This function is used to provide modifications to the form used for front end forms. {@link DataObject->getFrontEndFields()}

Caution: Use {@link FieldList->push()} to add fields.

Parameters

FieldList $fields

FieldList without TabSet nesting

updateCMSActions(FieldList $actions)

This is used to provide modifications to the form actions used in the CMS. {@link DataObject->getCMSActions()}.

Parameters

FieldList $actions

FieldList

updateSummaryFields(array $fields)

this function is used to provide modifications to the summary fields in CMS by the extension By default, the summaryField() of its owner will merge more fields defined in the extension's $extra_fields['summary_fields']

Parameters

array $fields

Array of field names

updateFieldLabels(array $labels)

Extension point in see DataObject::fieldLabels

Parameters

array $labels

Array of field labels

bool canAddChildren(Member|null $member = null)

Parameters

Member|null $member

Return Value

bool

bool defaultRecordsAllowed()

Default records are allowed by default override on model if needed

Return Value

bool

DropdownField createErrorCodeField()

Return Value

DropdownField

HTTPResponse|null responseFor(int $statusCode, string|null $errorMessage = null)

Get a {@link HTTPResponse} to response to a HTTP error code if an {@link ErrorPage} for that code is present. First tries to serve it through the standard SilverStripe request method. Falls back to a static file generated when the user hit's save and publish in the CMS

Parameters

int $statusCode
string|null $errorMessage

Return Value

HTTPResponse|null

Exceptions

HTTPResponse_Exception

string|null getContentForErrorcode(int $statusCode)

Returns statically cached content for a given error code

Parameters

int $statusCode

A HTTP Statuscode, typically 404 or 500

Return Value

string|null

bool writeStaticPage()

Write out the published version of the page to the filesystem.

Return Value

bool

true if the page write was successful

bool hasStaticPage()

Determine if static content is cached for this page

Return Value

bool

array getCodes()

Return Value

array

array getDefaultRecordsData()

Returns an array of arrays, each of which defines properties for a new ErrorPage record.

Return Value

array

void onAfterPublish(DataObject $original)

Extension point in see Versioned::publishSingle

Parameters

DataObject $original

Return Value

void