mirror of
https://github.com/silverstripe/silverstripe-subsites
synced 2024-10-22 09:05:55 +00:00
Adding docblocks and visibility keywords to methods
This commit is contained in:
parent
dc7a0560fb
commit
7bb36eae7b
@ -20,18 +20,30 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
* @var boolean $disable_subsite_filter If enabled, bypasses the query decoration
|
||||
* to limit DataObject::get*() calls to a specific subsite. Useful for debugging.
|
||||
*/
|
||||
static $disable_subsite_filter = false;
|
||||
public static $disable_subsite_filter = false;
|
||||
|
||||
/**
|
||||
* Allows you to force a specific subsite ID, or comma separated list of IDs.
|
||||
* Only works for reading. An object cannot be written to more than 1 subsite.
|
||||
*/
|
||||
static $force_subsite = null;
|
||||
public static $force_subsite = null;
|
||||
|
||||
static $write_hostmap = true;
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
public static $write_hostmap = true;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $default_sort = "\"Title\" ASC";
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $db = array(
|
||||
'Title' => 'Varchar(255)',
|
||||
'RedirectURL' => 'Varchar(255)',
|
||||
@ -47,21 +59,34 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
'PageTypeBlacklist' => 'Text',
|
||||
);
|
||||
|
||||
private static $has_one = array(
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $has_many = array(
|
||||
'Domains' => 'SubsiteDomain',
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $belongs_many_many = array(
|
||||
"Groups" => "Group",
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $defaults = array(
|
||||
'IsPublic' => 1
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $searchable_fields = array(
|
||||
'Title',
|
||||
'Domains.Domain',
|
||||
@ -70,9 +95,16 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
|
||||
/**
|
||||
* Memory cache of accessible sites
|
||||
*
|
||||
* @array
|
||||
*/
|
||||
private static $_cache_accessible_sites = array();
|
||||
|
||||
/**
|
||||
* Memory cache of subsite id for domains
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $_cache_subsite_for_domain = array();
|
||||
|
||||
/**
|
||||
@ -87,21 +119,28 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
* Doesn't affect wildcard matching, so '*.example.com' will match 'www.example.com' (but not 'example.com')
|
||||
* in both TRUE or FALSE setting.
|
||||
*/
|
||||
static $strict_subdomain_matching = false;
|
||||
public static $strict_subdomain_matching = false;
|
||||
|
||||
/**
|
||||
* @var boolean Respects the IsPublic flag when retrieving subsites
|
||||
*/
|
||||
static $check_is_public = true;
|
||||
public static $check_is_public = true;
|
||||
|
||||
static function set_allowed_themes($themes) {
|
||||
/**
|
||||
* Set allowed themes
|
||||
*
|
||||
* @param array $themes - Numeric array of all themes which are allowed to be selected for all subsites.
|
||||
*/
|
||||
public static function set_allowed_themes($themes) {
|
||||
self::$allowed_themes = $themes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the themes that can be used with this subsite, as an array of themecode => description
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function allowedThemes() {
|
||||
public function allowedThemes() {
|
||||
if($themes = $this->stat('allowed_themes')) {
|
||||
return ArrayLib::valuekey($themes);
|
||||
} else {
|
||||
@ -118,6 +157,9 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string Current locale of the subsite
|
||||
*/
|
||||
public function getLanguage() {
|
||||
if($this->getField('Language')) {
|
||||
return $this->getField('Language');
|
||||
@ -126,12 +168,15 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return ValidationResult
|
||||
*/
|
||||
public function validate() {
|
||||
$result = parent::validate();
|
||||
if(!$this->Title) {
|
||||
$result->error(_t('Subsite.ValidateTitle', 'Please add a "Title"'));
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -151,7 +196,7 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
*
|
||||
* @return string The full domain name of this subsite (without protocol prefix)
|
||||
*/
|
||||
function domain() {
|
||||
public function domain() {
|
||||
if($this->ID) {
|
||||
$domains = DataObject::get("SubsiteDomain", "\"SubsiteID\" = $this->ID", "\"IsPrimary\" DESC","", 1);
|
||||
if($domains && $domains->Count()>0) {
|
||||
@ -174,18 +219,20 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
}
|
||||
}
|
||||
|
||||
function getPrimaryDomain() {
|
||||
public function getPrimaryDomain() {
|
||||
return $this->domain();
|
||||
}
|
||||
|
||||
function absoluteBaseURL() {
|
||||
public function absoluteBaseURL() {
|
||||
return "http://" . $this->domain() . Director::baseURL();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the configuration fields for each subsite
|
||||
*
|
||||
* @return FieldList
|
||||
*/
|
||||
function getCMSFields() {
|
||||
public function getCMSFields() {
|
||||
if($this->ID!=0) {
|
||||
$domainTable = new GridField(
|
||||
"Domains",
|
||||
@ -257,6 +304,11 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param boolean $includerelations
|
||||
* @return array
|
||||
*/
|
||||
public function fieldLabels($includerelations = true) {
|
||||
$labels = parent::fieldLabels($includerelations);
|
||||
$labels['Title'] = _t('Subsites.TitleFieldLabel', 'Subsite Name');
|
||||
@ -272,6 +324,10 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
return $labels;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function summaryFields() {
|
||||
return array(
|
||||
'Title' => $this->fieldLabel('Title'),
|
||||
@ -283,11 +339,15 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
/**
|
||||
* @todo getClassName is redundant, already stored as a database field?
|
||||
*/
|
||||
function getClassName() {
|
||||
public function getClassName() {
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
function getCMSActions() {
|
||||
/**
|
||||
*
|
||||
* @return FieldList
|
||||
*/
|
||||
public function getCMSActions() {
|
||||
return new FieldList(
|
||||
new FormAction(
|
||||
'callPageMethod',
|
||||
@ -298,7 +358,12 @@ class Subsite extends DataObject implements PermissionProvider {
|
||||
);
|
||||
}
|
||||
|
||||
function adminDuplicate() {
|
||||
/**
|
||||
* Javascript admin action to duplicate this subsite
|
||||
*
|
||||
* @return string - javascript
|
||||
*/
|
||||
public function adminDuplicate() {
|
||||
$newItem = $this->duplicate();
|
||||
$message = _t(
|
||||
'Subsite.CopyMessage',
|
||||
@ -316,10 +381,9 @@ JS;
|
||||
* Gets the subsite currently set in the session.
|
||||
*
|
||||
* @uses ControllerSubsites->controllerAugmentInit()
|
||||
*
|
||||
* @return Subsite
|
||||
*/
|
||||
static function currentSubsite() {
|
||||
public static function currentSubsite() {
|
||||
// get_by_id handles caching so we don't have to
|
||||
return DataObject::get_by_id('Subsite', self::currentSubsiteID());
|
||||
}
|
||||
@ -337,7 +401,7 @@ JS;
|
||||
* @param boolean $cache
|
||||
* @return int ID of the current subsite instance
|
||||
*/
|
||||
static function currentSubsiteID() {
|
||||
public static function currentSubsiteID() {
|
||||
$id = NULL;
|
||||
|
||||
if(isset($_GET['SubsiteID'])) {
|
||||
@ -359,7 +423,7 @@ JS;
|
||||
*
|
||||
* @param int|Subsite $subsite Either the ID of the subsite, or the subsite object itself
|
||||
*/
|
||||
static function changeSubsite($subsite) {
|
||||
public static function changeSubsite($subsite) {
|
||||
if(is_object($subsite)) $subsiteID = $subsite->ID;
|
||||
else $subsiteID = $subsite;
|
||||
|
||||
@ -385,6 +449,7 @@ JS;
|
||||
|
||||
/**
|
||||
* @todo Possible security issue, don't grant edit permissions to everybody.
|
||||
* @return boolean
|
||||
*/
|
||||
function canEdit($member = false) {
|
||||
return true;
|
||||
@ -399,7 +464,7 @@ JS;
|
||||
* @param $host The host to find the subsite for. If not specified, $_SERVER['HTTP_HOST'] is used.
|
||||
* @return int Subsite ID
|
||||
*/
|
||||
static function getSubsiteIDForDomain($host = null, $checkPermissions = true) {
|
||||
public static function getSubsiteIDForDomain($host = null, $checkPermissions = true) {
|
||||
if($host == null) $host = $_SERVER['HTTP_HOST'];
|
||||
|
||||
if(!self::$strict_subdomain_matching) $host = preg_replace('/^www\./', '', $host);
|
||||
@ -439,7 +504,12 @@ JS;
|
||||
return $subsiteID;
|
||||
}
|
||||
|
||||
function getMembersByPermission($permissionCodes = array('ADMIN')){
|
||||
/**
|
||||
*
|
||||
* @param array $permissionCodes
|
||||
* @return DataList
|
||||
*/
|
||||
public function getMembersByPermission($permissionCodes = array('ADMIN')){
|
||||
if(!is_array($permissionCodes))
|
||||
user_error('Permissions must be passed to Subsite::getMembersByPermission as an array', E_USER_ERROR);
|
||||
$SQL_permissionCodes = Convert::raw2sql($permissionCodes);
|
||||
@ -470,7 +540,7 @@ JS;
|
||||
* @param Array Permission code strings. Defaults to "ADMIN".
|
||||
* @return boolean
|
||||
*/
|
||||
static function hasMainSitePermission($member = null, $permissionCodes = array('ADMIN')) {
|
||||
public static function hasMainSitePermission($member = null, $permissionCodes = array('ADMIN')) {
|
||||
if(!is_array($permissionCodes))
|
||||
user_error('Permissions must be passed to Subsite::hasMainSitePermission as an array', E_USER_ERROR);
|
||||
|
||||
@ -514,7 +584,7 @@ JS;
|
||||
/**
|
||||
* Duplicate this subsite
|
||||
*/
|
||||
function duplicate($doWrite = true) {
|
||||
public function duplicate($doWrite = true) {
|
||||
$duplicate = parent::duplicate($doWrite);
|
||||
|
||||
$oldSubsiteID = Session::get('SubsiteID');
|
||||
@ -683,9 +753,10 @@ JS;
|
||||
*
|
||||
* This is used primarily when using subsites in conjunction with StaticPublisher
|
||||
*
|
||||
* @param string $file - filepath of the host map to be written
|
||||
* @return void
|
||||
*/
|
||||
static function writeHostMap($file = null) {
|
||||
public static function writeHostMap($file = null) {
|
||||
if (!self::$write_hostmap) return;
|
||||
|
||||
if (!$file) $file = Director::baseFolder().'/subsites/host-map.php';
|
||||
@ -716,7 +787,11 @@ JS;
|
||||
// CMS ADMINISTRATION HELPERS
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function providePermissions() {
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function providePermissions() {
|
||||
return array(
|
||||
'SUBSITE_ASSETS_CREATE_SUBSITE' => array(
|
||||
'name' => _t('Subsite.MANAGE_ASSETS', 'Manage assets for subsites'),
|
||||
@ -727,7 +802,16 @@ JS;
|
||||
);
|
||||
}
|
||||
|
||||
static function get_from_all_subsites($className, $filter = "", $sort = "", $join = "", $limit = "") {
|
||||
/**
|
||||
*
|
||||
* @param string $className
|
||||
* @param string $filter
|
||||
* @param string $sort
|
||||
* @param string $join
|
||||
* @param string $limit
|
||||
* @return DataList
|
||||
*/
|
||||
public static function get_from_all_subsites($className, $filter = "", $sort = "", $join = "", $limit = "") {
|
||||
$result = DataObject::get($className, $filter, $sort, $join, $limit);
|
||||
$result = $result->setDataQueryParam('Subsite.filter', false);
|
||||
return $result;
|
||||
@ -736,14 +820,14 @@ JS;
|
||||
/**
|
||||
* Disable the sub-site filtering; queries will select from all subsites
|
||||
*/
|
||||
static function disable_subsite_filter($disabled = true) {
|
||||
public static function disable_subsite_filter($disabled = true) {
|
||||
self::$disable_subsite_filter = $disabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Flush caches on database reset
|
||||
*/
|
||||
static function on_db_reset() {
|
||||
public static function on_db_reset() {
|
||||
self::$_cache_accessible_sites = array();
|
||||
self::$_cache_subsite_for_domain = array();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user