class LeftAndMainSubsites extends LeftAndMainExtension (View source)

Decorator designed to add subsites support to LeftAndMain

Properties

protected T $owner

The object this extension is applied to.

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

Set the owner of this extension.

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

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

public
clearOwner()

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

public
T
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 that's passed to DataObject::$extensions or Object::add_extension().

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

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

public
init()

No description

public
accessedCMS()

No description

public
augmentNewSiteTreeItem($item)

No description

public
getCMSTreeTitle()

Set the title of the CMS tree

public
updatePageOptions($fields)

No description

public
Subsite>
sectionSites(bool $includeMainSite = true, string $mainSiteTitle = 'Main site', null $member = null)

Find all subsites accessible for current user on this controller.

public
Subsites()

No description

public
Subsite>
ListSubsites()

Generates a list of subsites with the data needed to produce a dropdown site switcher

public
alternateMenuDisplayCheck($controllerName)

No description

public
CanAddSubsites()

No description

public
bool
shouldChangeSubsite(string $adminClass, int $recordSubsiteID, int $currentSubsiteID)

Helper for testing if the subsite should be adjusted.

public
canAccess(Member $member = null)

Check if the current controller is accessible for this user on this subsite.

public
alternateAccessCheck(Member $member = null)

Prevent accessing disallowed resources. This happens after onBeforeInit has executed, so all redirections should've already taken place.

public
onBeforeInit()

Redirect the user to something accessible if the current section/subsite is forbidden.

public
onAfterSave($record)

No description

public
copytosubsite(array $data, Form $form)

No description

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

T getOwner()

Returns the owner of this extension.

Return Value

T

static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or 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

init()

No description

accessedCMS()

No description

augmentNewSiteTreeItem($item)

No description

Parameters

$item

getCMSTreeTitle()

Set the title of the CMS tree

updatePageOptions($fields)

No description

Parameters

$fields

Subsite> sectionSites(bool $includeMainSite = true, string $mainSiteTitle = 'Main site', null $member = null)

Find all subsites accessible for current user on this controller.

Parameters

bool $includeMainSite
string $mainSiteTitle
null $member

Return Value

Subsite>

of Subsite instances.

Subsites()

No description

Subsite> ListSubsites()

Generates a list of subsites with the data needed to produce a dropdown site switcher

Return Value

Subsite>

alternateMenuDisplayCheck($controllerName)

No description

Parameters

$controllerName

CanAddSubsites()

No description

bool shouldChangeSubsite(string $adminClass, int $recordSubsiteID, int $currentSubsiteID)

Helper for testing if the subsite should be adjusted.

Parameters

string $adminClass
int $recordSubsiteID
int $currentSubsiteID

Return Value

bool

canAccess(Member $member = null)

Check if the current controller is accessible for this user on this subsite.

Parameters

Member $member

alternateAccessCheck(Member $member = null)

Prevent accessing disallowed resources. This happens after onBeforeInit has executed, so all redirections should've already taken place.

Parameters

Member $member

onBeforeInit()

Redirect the user to something accessible if the current section/subsite is forbidden.

This is done via onBeforeInit as it needs to be done before the LeftAndMain::init has a chance to forbids access via alternateAccessCheck.

If we need to change the subsite we force the redirection to /admin/ so the frontend is fully re-synchronised with the internal session. This is better than risking some panels showing data from another subsite.

onAfterSave($record)

No description

Parameters

$record

copytosubsite(array $data, Form $form)

No description

Parameters

array $data
Form $form