class LeftAndMainSubsites extends Extension (View source)

Decorator designed to add subsites support to LeftAndMain

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

Set the title of the CMS tree

public
updatePageOptions($fields)

No description

public
sectionSites($includeMainSite = true, $mainSiteTitle = "Main site", $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
shouldChangeSubsite($adminClass, $recordSubsiteID, $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
augmentNewSiteTreeItem($item)

No description

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

getCMSTreeTitle()

Set the title of the CMS tree

updatePageOptions($fields)

No description

Parameters

$fields

ArrayList sectionSites($includeMainSite = true, $mainSiteTitle = "Main site", $member = null)

Find all subsites accessible for current user on this controller.

Parameters

$includeMainSite
$mainSiteTitle
$member

Return Value

ArrayList

of Subsite instances.

Subsites()

No description

ListSubsites()

No description

alternateMenuDisplayCheck($controllerName)

No description

Parameters

$controllerName

CanAddSubsites()

No description

shouldChangeSubsite($adminClass, $recordSubsiteID, $currentSubsiteID)

Helper for testing if the subsite should be adjusted.

Parameters

$adminClass
$recordSubsiteID
$currentSubsiteID

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.

augmentNewSiteTreeItem($item)

No description

Parameters

$item

onAfterSave($record)

No description

Parameters

$record

copytosubsite(array $data, Form $form)

No description

Parameters

array $data
Form $form