mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-09-27 20:06:08 +02:00
ENH Add generic types (#554)
This commit is contained in:
parent
f8ecce28ab
commit
11a941f637
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Subsites\Extensions;
|
namespace SilverStripe\Subsites\Extensions;
|
||||||
|
|
||||||
|
use DNADesign\Elemental\Models\BaseElement;
|
||||||
use SilverStripe\Control\HTTP;
|
use SilverStripe\Control\HTTP;
|
||||||
use SilverStripe\ORM\DataExtension;
|
use SilverStripe\ORM\DataExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension for the BaseElement object to add subsites support for CMS previews
|
* Extension for the BaseElement object to add subsites support for CMS previews
|
||||||
|
*
|
||||||
|
* @extends DataExtension<BaseElement>
|
||||||
*/
|
*/
|
||||||
class BaseElementSubsites extends DataExtension
|
class BaseElementSubsites extends DataExtension
|
||||||
{
|
{
|
||||||
|
@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Subsites\Extensions;
|
namespace SilverStripe\Subsites\Extensions;
|
||||||
|
|
||||||
|
use SilverStripe\CMS\Controllers\CMSPageAddController;
|
||||||
use SilverStripe\Core\Extension;
|
use SilverStripe\Core\Extension;
|
||||||
use SilverStripe\Forms\FieldList;
|
use SilverStripe\Forms\FieldList;
|
||||||
use SilverStripe\Forms\HiddenField;
|
use SilverStripe\Forms\HiddenField;
|
||||||
use SilverStripe\Subsites\State\SubsiteState;
|
use SilverStripe\Subsites\State\SubsiteState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Extension<CMSPageAddController>
|
||||||
|
*/
|
||||||
class CMSPageAddControllerExtension extends Extension
|
class CMSPageAddControllerExtension extends Extension
|
||||||
{
|
{
|
||||||
public function updatePageOptions(FieldList $fields)
|
public function updatePageOptions(FieldList $fields)
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Subsites\Extensions;
|
namespace SilverStripe\Subsites\Extensions;
|
||||||
|
|
||||||
|
use SilverStripe\Control\Controller;
|
||||||
use SilverStripe\Core\Extension;
|
use SilverStripe\Core\Extension;
|
||||||
use SilverStripe\Subsites\Model\Subsite;
|
use SilverStripe\Subsites\Model\Subsite;
|
||||||
use SilverStripe\View\SSViewer;
|
use SilverStripe\View\SSViewer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package subsites
|
* @extends Extension<Controller>
|
||||||
*/
|
*/
|
||||||
class ControllerSubsites extends Extension
|
class ControllerSubsites extends Extension
|
||||||
{
|
{
|
||||||
|
@ -5,10 +5,14 @@ namespace SilverStripe\Subsites\Extensions;
|
|||||||
use SilverStripe\Assets\FileNameFilter;
|
use SilverStripe\Assets\FileNameFilter;
|
||||||
use SilverStripe\CMS\Model\SiteTree;
|
use SilverStripe\CMS\Model\SiteTree;
|
||||||
use SilverStripe\Core\Config\Config;
|
use SilverStripe\Core\Config\Config;
|
||||||
|
use SilverStripe\ErrorPage\ErrorPage;
|
||||||
use SilverStripe\ORM\DataExtension;
|
use SilverStripe\ORM\DataExtension;
|
||||||
use SilverStripe\ORM\DataObject;
|
use SilverStripe\ORM\DataObject;
|
||||||
use SilverStripe\Subsites\Model\Subsite;
|
use SilverStripe\Subsites\Model\Subsite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends DataExtension<ErrorPage>
|
||||||
|
*/
|
||||||
class ErrorPageSubsite extends DataExtension
|
class ErrorPageSubsite extends DataExtension
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -13,8 +13,9 @@ use SilverStripe\Subsites\State\SubsiteState;
|
|||||||
/**
|
/**
|
||||||
* Extension for the File object to add subsites support
|
* Extension for the File object to add subsites support
|
||||||
*
|
*
|
||||||
* @package subsites
|
|
||||||
* @method Subsite Subsite()
|
* @method Subsite Subsite()
|
||||||
|
*
|
||||||
|
* @extends DataExtension<File>
|
||||||
*/
|
*/
|
||||||
class FileSubsites extends DataExtension
|
class FileSubsites extends DataExtension
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,16 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Subsites\Extensions;
|
namespace SilverStripe\Subsites\Extensions;
|
||||||
|
|
||||||
|
use SilverStripe\AssetAdmin\Forms\FolderFormFactory;
|
||||||
use SilverStripe\Core\Extension;
|
use SilverStripe\Core\Extension;
|
||||||
use SilverStripe\Forms\DropdownField;
|
use SilverStripe\Forms\DropdownField;
|
||||||
use SilverStripe\Forms\FieldList;
|
use SilverStripe\Forms\FieldList;
|
||||||
use SilverStripe\Forms\LiteralField;
|
use SilverStripe\Forms\LiteralField;
|
||||||
use SilverStripe\Subsites\Model\Subsite;
|
use SilverStripe\Subsites\Model\Subsite;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @extends Extension<FolderFormFactory>
|
||||||
|
*/
|
||||||
class FolderFormFactoryExtension extends Extension
|
class FolderFormFactoryExtension extends Extension
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -21,8 +21,9 @@ use SilverStripe\Subsites\State\SubsiteState;
|
|||||||
/**
|
/**
|
||||||
* Extension for the Group object to add subsites support
|
* Extension for the Group object to add subsites support
|
||||||
*
|
*
|
||||||
* @package subsites
|
|
||||||
* @method SilverStripe\ORM\ManyManyList<Subsite> Subsites()
|
* @method SilverStripe\ORM\ManyManyList<Subsite> Subsites()
|
||||||
|
*
|
||||||
|
* @extends DataExtension<Group&static>
|
||||||
*/
|
*/
|
||||||
class GroupSubsites extends DataExtension implements PermissionProvider
|
class GroupSubsites extends DataExtension implements PermissionProvider
|
||||||
{
|
{
|
||||||
|
@ -10,8 +10,9 @@ use SilverStripe\Subsites\State\SubsiteState;
|
|||||||
* This extension adds the current Subsite ID as an additional factor to the Hints Cßache Key, which is used to cache
|
* This extension adds the current Subsite ID as an additional factor to the Hints Cßache Key, which is used to cache
|
||||||
* the Site Tree Hints (which include allowed pagetypes).
|
* the Site Tree Hints (which include allowed pagetypes).
|
||||||
*
|
*
|
||||||
* @package SilverStripe\Subsites\Extensions
|
|
||||||
* @see CMSMain::generateHintsCacheKey()
|
* @see CMSMain::generateHintsCacheKey()
|
||||||
|
*
|
||||||
|
* @extends Extension<CMSMain>
|
||||||
*/
|
*/
|
||||||
class HintsCacheKeyExtension extends Extension
|
class HintsCacheKeyExtension extends Extension
|
||||||
{
|
{
|
||||||
|
@ -5,6 +5,7 @@ namespace SilverStripe\Subsites\Extensions;
|
|||||||
use SilverStripe\Admin\AdminRootController;
|
use SilverStripe\Admin\AdminRootController;
|
||||||
use SilverStripe\Admin\CMSMenu;
|
use SilverStripe\Admin\CMSMenu;
|
||||||
use SilverStripe\Admin\CMSProfileController;
|
use SilverStripe\Admin\CMSProfileController;
|
||||||
|
use SilverStripe\Admin\LeftAndMain;
|
||||||
use SilverStripe\Admin\LeftAndMainExtension;
|
use SilverStripe\Admin\LeftAndMainExtension;
|
||||||
use SilverStripe\CMS\Controllers\CMSPagesController;
|
use SilverStripe\CMS\Controllers\CMSPagesController;
|
||||||
use SilverStripe\CMS\Model\SiteTree;
|
use SilverStripe\CMS\Model\SiteTree;
|
||||||
@ -27,7 +28,7 @@ use SilverStripe\View\Requirements;
|
|||||||
/**
|
/**
|
||||||
* Decorator designed to add subsites support to LeftAndMain
|
* Decorator designed to add subsites support to LeftAndMain
|
||||||
*
|
*
|
||||||
* @package subsites
|
* @extends LeftAndMainExtension<LeftAndMain>
|
||||||
*/
|
*/
|
||||||
class LeftAndMainSubsites extends LeftAndMainExtension
|
class LeftAndMainSubsites extends LeftAndMainExtension
|
||||||
{
|
{
|
||||||
@ -66,8 +67,7 @@ class LeftAndMainSubsites extends LeftAndMainExtension
|
|||||||
* @param bool $includeMainSite
|
* @param bool $includeMainSite
|
||||||
* @param string $mainSiteTitle
|
* @param string $mainSiteTitle
|
||||||
* @param null $member
|
* @param null $member
|
||||||
* @return ArrayList of <a href='psi_element://Subsite'>Subsite</a> instances.
|
* @return ArrayList<Subsite> of Subsite instances.
|
||||||
* instances.
|
|
||||||
*/
|
*/
|
||||||
public function sectionSites($includeMainSite = true, $mainSiteTitle = 'Main site', $member = null)
|
public function sectionSites($includeMainSite = true, $mainSiteTitle = 'Main site', $member = null)
|
||||||
{
|
{
|
||||||
@ -141,12 +141,11 @@ class LeftAndMainSubsites extends LeftAndMainExtension
|
|||||||
return Subsite::all_accessible_sites();
|
return Subsite::all_accessible_sites();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Generates a list of subsites with the data needed to
|
* Generates a list of subsites with the data needed to
|
||||||
* produce a dropdown site switcher
|
* produce a dropdown site switcher
|
||||||
* @return ArrayList
|
* @return ArrayList<Subsite>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function ListSubsites()
|
public function ListSubsites()
|
||||||
{
|
{
|
||||||
$list = $this->Subsites();
|
$list = $this->Subsites();
|
||||||
|
@ -13,7 +13,10 @@ use SilverStripe\Subsites\State\SubsiteState;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension for the SiteConfig object to add subsites support
|
* Extension for the SiteConfig object to add subsites support
|
||||||
|
*
|
||||||
* @method Subsite Subsite()
|
* @method Subsite Subsite()
|
||||||
|
*
|
||||||
|
* @extends DataExtension<SiteConfig&static>
|
||||||
*/
|
*/
|
||||||
class SiteConfigSubsites extends DataExtension
|
class SiteConfigSubsites extends DataExtension
|
||||||
{
|
{
|
||||||
|
@ -32,8 +32,11 @@ use SilverStripe\VersionedAdmin\Controllers\HistoryViewerController;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension for the SiteTree object to add subsites support
|
* Extension for the SiteTree object to add subsites support
|
||||||
|
*
|
||||||
* @method SilverStripe\ORM\ManyManyList<SiteTree> CrossSubsiteLinkTracking()
|
* @method SilverStripe\ORM\ManyManyList<SiteTree> CrossSubsiteLinkTracking()
|
||||||
* @method Subsite Subsite()
|
* @method Subsite Subsite()
|
||||||
|
*
|
||||||
|
* @extends DataExtension<SiteTree&static>
|
||||||
*/
|
*/
|
||||||
class SiteTreeSubsites extends DataExtension
|
class SiteTreeSubsites extends DataExtension
|
||||||
{
|
{
|
||||||
@ -187,7 +190,6 @@ class SiteTreeSubsites extends DataExtension
|
|||||||
->withState(function (SubsiteState $newState) use ($subsiteID, $includeChildren) {
|
->withState(function (SubsiteState $newState) use ($subsiteID, $includeChildren) {
|
||||||
$newState->setSubsiteId($subsiteID);
|
$newState->setSubsiteId($subsiteID);
|
||||||
|
|
||||||
/** @var SiteTree $page */
|
|
||||||
$page = $this->owner;
|
$page = $this->owner;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -389,7 +391,6 @@ class SiteTreeSubsites extends DataExtension
|
|||||||
*/
|
*/
|
||||||
public static function contentcontrollerInit($controller)
|
public static function contentcontrollerInit($controller)
|
||||||
{
|
{
|
||||||
/** @var Subsite $subsite */
|
|
||||||
$subsite = Subsite::currentSubsite();
|
$subsite = Subsite::currentSubsite();
|
||||||
|
|
||||||
if ($subsite && $subsite->Theme) {
|
if ($subsite && $subsite->Theme) {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace SilverStripe\Subsites\Extensions;
|
namespace SilverStripe\Subsites\Extensions;
|
||||||
|
|
||||||
|
use SilverStripe\Admin\LeftAndMain;
|
||||||
use SilverStripe\Core\Extension;
|
use SilverStripe\Core\Extension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -12,6 +13,8 @@ use SilverStripe\Core\Extension;
|
|||||||
* MyAdmin::add_extension('SubsiteMenuExtension');
|
* MyAdmin::add_extension('SubsiteMenuExtension');
|
||||||
*
|
*
|
||||||
* Or you can include the subsiteCMSShowInMenu function in your admin class and have it return true
|
* Or you can include the subsiteCMSShowInMenu function in your admin class and have it return true
|
||||||
|
*
|
||||||
|
* @extends Extension<LeftAndMain>
|
||||||
*/
|
*/
|
||||||
class SubsiteMenuExtension extends Extension
|
class SubsiteMenuExtension extends Extension
|
||||||
{
|
{
|
||||||
|
@ -178,7 +178,7 @@ class Subsite extends DataObject
|
|||||||
/**
|
/**
|
||||||
* Gets the subsite currently set in the session.
|
* Gets the subsite currently set in the session.
|
||||||
*
|
*
|
||||||
* @return DataObject The current Subsite
|
* @return Subsite The current Subsite
|
||||||
*/
|
*/
|
||||||
public static function currentSubsite()
|
public static function currentSubsite()
|
||||||
{
|
{
|
||||||
@ -304,13 +304,13 @@ class Subsite extends DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* @template T of DataObject
|
||||||
* @param string $className
|
* @param class-string<T> $className
|
||||||
* @param string $filter
|
* @param string $filter
|
||||||
* @param string $sort
|
* @param string $sort
|
||||||
* @param string $join
|
* @param string $join
|
||||||
* @param string $limit
|
* @param string $limit
|
||||||
* @return DataList
|
* @return DataList<T>
|
||||||
*/
|
*/
|
||||||
public static function get_from_all_subsites($className, $filter = '', $sort = '', $join = '', $limit = '')
|
public static function get_from_all_subsites($className, $filter = '', $sort = '', $join = '', $limit = '')
|
||||||
{
|
{
|
||||||
@ -371,11 +371,11 @@ class Subsite extends DataObject
|
|||||||
return $subsites;
|
return $subsites;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Returns an ArrayList of the subsites accessible to the current user.
|
* Returns an ArrayList of the subsites accessible to the current user.
|
||||||
* It's enough for any section to be accessible for the site to be included.
|
* It's enough for any section to be accessible for the site to be included.
|
||||||
*
|
*
|
||||||
* @return ArrayList of {@link Subsite} instances.
|
* @return ArrayList<Subsite> of {@link Subsite} instances.
|
||||||
*/
|
*/
|
||||||
public static function all_accessible_sites($includeMainSite = true, $mainSiteTitle = 'Main site', $member = null)
|
public static function all_accessible_sites($includeMainSite = true, $mainSiteTitle = 'Main site', $member = null)
|
||||||
{
|
{
|
||||||
@ -420,7 +420,7 @@ class Subsite extends DataObject
|
|||||||
* @param $includeMainSite bool If true, the main site will be included if appropriate.
|
* @param $includeMainSite bool If true, the main site will be included if appropriate.
|
||||||
* @param $mainSiteTitle string The label to give to the main site
|
* @param $mainSiteTitle string The label to give to the main site
|
||||||
* @param $member int|Member The member attempting to access the sites
|
* @param $member int|Member The member attempting to access the sites
|
||||||
* @return DataList|ArrayList of {@link Subsite} instances
|
* @return DataList<Subsite>|ArrayList<Subsite> of {@link Subsite} instances
|
||||||
*/
|
*/
|
||||||
public static function accessible_sites(
|
public static function accessible_sites(
|
||||||
$permCode,
|
$permCode,
|
||||||
@ -475,7 +475,6 @@ class Subsite extends DataObject
|
|||||||
$subsites = new ArrayList();
|
$subsites = new ArrayList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var DataList $rolesSubsites */
|
|
||||||
$rolesSubsites = DataList::create(Subsite::class)
|
$rolesSubsites = DataList::create(Subsite::class)
|
||||||
->where("\"Subsite\".\"Title\" != ''")
|
->where("\"Subsite\".\"Title\" != ''")
|
||||||
->leftJoin('Group_Subsites', '"Group_Subsites"."SubsiteID" = "Subsite"."ID"')
|
->leftJoin('Group_Subsites', '"Group_Subsites"."SubsiteID" = "Subsite"."ID"')
|
||||||
@ -925,9 +924,8 @@ JS;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @param array $permissionCodes
|
* @param array $permissionCodes
|
||||||
* @return DataList
|
* @return DataList<Member>
|
||||||
*/
|
*/
|
||||||
public function getMembersByPermission($permissionCodes = ['ADMIN'])
|
public function getMembersByPermission($permissionCodes = ['ADMIN'])
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user