class LeftAndMainSubsites extends LeftAndMainExtension (View source)

Decorator designed to add subsites support to LeftAndMain

Properties

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

No description

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

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

getCMSTreeTitle()

Set the title of the CMS tree

updatePageOptions($fields)

No description

Parameters

$fields

ArrayList 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

ArrayList

of Subsite instances. instances.

Subsites()

No description

ListSubsites()

No description

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