Skip to content

Sites ​

Type
Class
Namespace
craft\services
Inherits
craft\services\Sites » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.0.0

Sites service.

An instance of the service is available via Craft::$app->sites.

View source

Public Properties ​

PropertyDescription
allGroupscraft\models\SiteGroup[] – The site groups
allSiteIdsinteger[] – all of the site IDs
allSitescraft\models\Site[] – all of the sites
behaviorsyii\base\Behavior – List of behaviors attached to this component.
currentSitecraft\models\Site, null – the current site
editableSiteIdsinteger[] – all of the site IDs that are editable by the current user
editableSitescraft\models\Site[] – All the editable sites
hasCurrentSiteboolean
maxSitesinteger – The maximum number of sites that can be created.
primarySitecraft\models\Site – the primary site
remainingSitesinteger
totalEditableSitesinteger – the total number of sites that are editable by the current user
totalSitesinteger – the total number of sites

allGroups ​

Type
craft\models\SiteGroup[]
Default value
null
Access
Read-only

The site groups

View source

allSiteIds ​

Type
integer[]
Default value
null

all of the site IDs

View source

allSites ​

Type
craft\models\Site[]
Default value
null

all of the sites

View source

currentSite ​

Type
craft\models\Site, null
Default value
null

the current site

View source

editableSiteIds ​

Type
integer[]
Default value
null

all of the site IDs that are editable by the current user

View source

editableSites ​

Type
craft\models\Site[]
Default value
null
Access
Read-only

All the editable sites

View source

hasCurrentSite ​

Type
boolean
Default value
null
Access
Read-only

View source

maxSites ​

Type
integer
Default value
100
Since
5.0.0

The maximum number of sites that can be created.

View source

primarySite ​

Type
craft\models\Site
Default value
null

the primary site

View source

remainingSites ​

Type
integer
Default value
null
Access
Read-only
Since
5.0.0

View source

totalEditableSites ​

Type
integer
Default value
null

the total number of sites that are editable by the current user

View source

totalSites ​

Type
integer
Default value
null

the total number of sites

View source

Public Methods ​

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of a component property.
__isset()Checks if a property is set, i.e. defined and not null.
__serialize()Serializer
__set()Sets the value of a component property.
__unset()Sets a component property to be null.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
canGetProperty()Returns a value indicating whether a property can be read.
canSetProperty()Returns a value indicating whether a property can be set.
className()Returns the fully qualified name of this class.
deleteGroup()Deletes a site group.
deleteGroupById()Deletes a site group by its ID.
deleteSite()Deletes a site.
deleteSiteById()Deletes a site by its ID.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllGroups()Returns all site groups.
getAllSiteIds()Returns all of the site IDs.
getAllSites()Returns all sites.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getCurrentSite()Returns the current site.
getEditableSiteIds()Returns all of the site IDs that are editable by the current user.
getEditableSites()Returns all editable sites.
getEditableSitesByGroupId()Returns editable sites by a group ID.
getGroupById()Returns a site group by its ID.
getGroupByUid()Returns a site group by its UID.
getHasCurrentSite()Returns whether the current site has been set yet.
getPrimarySite()Returns the primary site. The primary site is whatever is listed first in Settings > Sites in the control panel.
getRemainingSites()Returns the number of sites that can be created, based on maxSites.
getSiteByHandle()Returns a site by its handle.
getSiteById()Returns a site by its ID.
getSiteByUid()Returns a site by it's UID.
getSitesByGroupId()Returns sites by a group ID.
getSitesByLanguage()Returns sites by their language.
getTotalEditableSites()Gets the total number of sites that are editable by the current user.
getTotalSites()Gets the total number of sites.
handleChangedGroup()Handle site group change
handleChangedSite()Handle site changes.
handleDeletedGroup()Handle site group getting deleted.
handleDeletedSite()Handle a deleted Site.
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined for this component.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
refreshSites()Refresh the status of all sites based on the DB data.
reorderSites()Reorders sites.
restoreSiteById()Restores a site by its ID.
saveGroup()Saves a site group.
saveSite()Saves a site.
setCurrentSite()Sets the current site.
trigger()Triggers an event.

__serialize() ​

Since
3.5.14

Serializer

View source

deleteGroup() ​

Deletes a site group.

View source

Arguments ​

Returns ​

boolean – Whether the site group was deleted successfully

deleteGroupById() ​

Deletes a site group by its ID.

View source

Arguments ​

  • $groupId (integer) – The site group’s ID

Returns ​

boolean – Whether the site group was deleted successfully

deleteSite() ​

Deletes a site.

View source

Arguments ​

  • $site (craft\models\Site) – The site to be deleted
  • $transferContentTo (integer, null) – The site ID that should take over the deleted site’s contents

Returns ​

boolean – Whether the site was deleted successfully

Throws ​

deleteSiteById() ​

Deletes a site by its ID.

View source

Arguments ​

  • $siteId (integer) – The site ID to be deleted
  • $transferContentTo (integer, null) – The site ID that should take over the deleted site’s contents

Returns ​

boolean – Whether the site was deleted successfully

Throws ​

getAllGroups() ​

Returns all site groups.

View source

Returns ​

craft\models\SiteGroup[] – The site groups

getAllSiteIds() ​

Returns all of the site IDs.

View source

Arguments ​

Returns ​

integer[] – All the sites’ IDs

getAllSites() ​

Returns all sites.

View source

Arguments ​

Returns ​

craft\models\Site[] – All the sites

getCurrentSite() ​

Returns the current site.

View source

Returns ​

craft\models\Site – The current site

Throws ​

getEditableSiteIds() ​

Returns all of the site IDs that are editable by the current user.

View source

Returns ​

array – All the editable sites’ IDs

getEditableSites() ​

Returns all editable sites.

View source

Returns ​

craft\models\Site[] – All the editable sites

getEditableSitesByGroupId() ​

Since
5.4.0

Returns editable sites by a group ID.

View source

Arguments ​

Returns ​

craft\models\Site[]

getGroupById() ​

Returns a site group by its ID.

View source

Arguments ​

  • $groupId (integer) – The site group’s ID

Returns ​

craft\models\SiteGroup, null – The site group, or null if it doesn’t exist

getGroupByUid() ​

Since
3.5.8

Returns a site group by its UID.

View source

Arguments ​

  • $uid (string) – The site group’s UID

Returns ​

craft\models\SiteGroup, null – The site group, or null if it doesn’t exist

getHasCurrentSite() ​

Returns whether the current site has been set yet.

View source

Returns ​

boolean

getPrimarySite() ​

Returns the primary site. The primary site is whatever is listed first in Settings > Sites in the control panel.

View source

Returns ​

craft\models\Site – The primary site

Throws ​

getRemainingSites() ​

Since
5.0.0

Returns the number of sites that can be created, based on maxSites.

View source

Returns ​

integer

getSiteByHandle() ​

Returns a site by its handle.

View source

Arguments ​

Returns ​

craft\models\Site, null

getSiteById() ​

Returns a site by its ID.

View source

Arguments ​

Returns ​

craft\models\Site, null

getSiteByUid() ​

Returns a site by it's UID.

View source

Arguments ​

Returns ​

craft\models\Site – The site

Throws ​

getSitesByGroupId() ​

Returns sites by a group ID.

View source

Arguments ​

Returns ​

craft\models\Site[]

getSitesByLanguage() ​

Since
4.9.0

Returns sites by their language.

View source

Arguments ​

Returns ​

craft\models\Site[]

getTotalEditableSites() ​

Gets the total number of sites that are editable by the current user.

View source

Returns ​

integer

getTotalSites() ​

Gets the total number of sites.

View source

Returns ​

integer

handleChangedGroup() ​

Handle site group change

View source

Arguments ​

handleChangedSite() ​

Handle site changes.

View source

Arguments ​

Throws ​

handleDeletedGroup() ​

Handle site group getting deleted.

View source

Arguments ​

handleDeletedSite() ​

Handle a deleted Site.

View source

Arguments ​

Throws ​

init() ​

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

View source

refreshSites() ​

Since
3.5.13

Refresh the status of all sites based on the DB data.

View source

Throws ​

reorderSites() ​

Reorders sites.

View source

Arguments ​

  • $siteIds (integer[]) – The site IDs in their new order

Returns ​

boolean – Whether the sites were reordered successfully

Throws ​

restoreSiteById() ​

Since
3.1.0

Restores a site by its ID.

View source

Arguments ​

  • $id (integer) – The site’s ID

Returns ​

boolean – Whether the site was restored successfully

saveGroup() ​

Saves a site group.

View source

Arguments ​

Returns ​

boolean – Whether the site group was saved successfully

saveSite() ​

Saves a site.

View source

Arguments ​

  • $site (craft\models\Site) – The site to be saved
  • $runValidation (boolean) – Whether the site should be validated

Returns ​

boolean

Throws ​

setCurrentSite() ​

Sets the current site.

View source

Arguments ​

Throws ​

Events ​

EVENT_AFTER_CHANGE_PRIMARY_SITE ​

Type
craft\events\SiteEvent

The event that is triggered after the primary site has changed


EVENT_AFTER_DELETE_SITE ​

Type
craft\events\DeleteSiteEvent

The event that is triggered after a site is deleted.


EVENT_AFTER_DELETE_SITE_GROUP ​

Type
craft\events\SiteGroupEvent

The event that is triggered after a site group is deleted.


EVENT_AFTER_REORDER_SITES ​

Type
craft\events\ReorderSitesEvent

The event that is triggered after the sites are reordered.


EVENT_AFTER_SAVE_SITE ​

Type
craft\events\SiteEvent

The event that is triggered after a site is saved.


EVENT_AFTER_SAVE_SITE_GROUP ​

Type
craft\events\SiteGroupEvent

The event that is triggered after a site group is saved.


EVENT_BEFORE_APPLY_GROUP_DELETE ​

Type
craft\events\SiteGroupEvent
Since
3.1.0

The event that is triggered before a site group delete is applied to the database.


EVENT_BEFORE_APPLY_SITE_DELETE ​

Type
craft\events\DeleteSiteEvent
Since
3.1.0

The event that is triggered before a site delete is applied to the database.


EVENT_BEFORE_DELETE_SITE ​

Type
craft\events\DeleteSiteEvent

The event that is triggered before a site is deleted.

You may set craft\events\CancelableEvent::$isValid to false to prevent the site from getting deleted.


EVENT_BEFORE_DELETE_SITE_GROUP ​

Type
craft\events\SiteGroupEvent

The event that is triggered before a site group is deleted.


EVENT_BEFORE_REORDER_SITES ​

Type
craft\events\ReorderSitesEvent

The event that is triggered before the sites are reordered.


EVENT_BEFORE_SAVE_SITE ​

Type
craft\events\SiteEvent

The event that is triggered before a site is saved.


EVENT_BEFORE_SAVE_SITE_GROUP ​

Type
craft\events\SiteGroupEvent

The event that is triggered before a site group is saved.