class LeftAndMainSubsites extends LeftAndMainExtension implements TemplateGlobalProvider (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 static 
array
get_template_global_variables()

Called by SSViewer to get a list of global variables to expose to the template, the static method to call on this class to get the value for those variables, and the class to use for casting the returned value for use in a template

public static 
SubsiteSwitchList()

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

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

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

static array get_template_global_variables()

Called by SSViewer to get a list of global variables to expose to the template, the static method to call on this class to get the value for those variables, and the class to use for casting the returned value for use in a template

If the method to call is not included for a particular template variable, a method named the same as the template variable will be called

If the casting class is not specified for a particular template variable, ViewableData::$default_cast is used

The first letter of the template variable is case-insensitive. However the method name is always case sensitive.

Return Value

array

Returns an array of items. Each key => value pair is one of three forms:

  • template name (no key)
  • template name => method name
  • template name => [], where the array can contain these key => value pairs
    • "method" => method name
    • "casting" => casting class to use (i.e., Varchar, HTMLFragment, etc)

static SS_List SubsiteSwitchList()

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

Return Value

SS_List

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

deprecated 3.4.0 Will be removed without equivalent functionality to replace it.

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