Sections ​
- Type
- Class
- Namespace
- craft\services
- Inherits
- craft\services\Sections » yii\base\Component » yii\base\BaseObject
- Implements
- yii\base\Configurable
- Since
- 3.0.0
Sections service.
An instance of the service is available via Craft::$app->sections
.
Public Properties ​
Property | Description |
---|---|
allEntryTypes | craft\models\EntryType[] |
allSectionIds | integer[] – All the sections’ IDs. |
allSections | craft\models\Section[] – All the sections. |
autoResaveEntries | boolean – Whether entries should be resaved after a section or entry type has been updated. |
behaviors | yii\base\Behavior – List of behaviors attached to this component. |
editableSectionIds | integer[] – All the editable sections’ IDs. |
editableSections | craft\models\Section[] – All the editable sections. |
totalEditableSections | integer |
totalSections | integer |
allEntryTypes
​
- Type
- craft\models\EntryType[]
- Default value
null
- Access
- Read-only
- Since
- 3.3.0
allSectionIds
​
- Type
- integer[]
- Default value
null
- Access
- Read-only
All the sections’ IDs.
allSections
​
- Type
- craft\models\Section[]
- Default value
null
- Access
- Read-only
All the sections.
autoResaveEntries
​
- Type
- boolean
- Default value
true
- Since
- 3.1.21
Whether entries should be resaved after a section or entry type has been updated.
TIP
Entries will be resaved regardless of what this is set to, when a section’s Propagation Method setting changes.
WARNING
Don’t disable this unless you know what you’re doing, as entries won’t reflect section/entry type changes until they’ve been resaved. (You can resave entries manually by running the resave/entries
console command.)
editableSectionIds
​
- Type
- integer[]
- Default value
null
- Access
- Read-only
All the editable sections’ IDs.
editableSections
​
- Type
- craft\models\Section[]
- Default value
null
- Access
- Read-only
All the editable sections.
totalEditableSections
​
- Type
- integer
- Default value
null
- Access
- Read-only
totalSections
​
- Type
- integer
- Default value
null
- Access
- Read-only
Public Methods ​
Method | Description |
---|---|
__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. |
deleteEntryType() | Deletes an entry type. |
deleteEntryTypeById() | Deletes an entry type by its ID. |
deleteSection() | Deletes a section. |
deleteSectionById() | Deletes a section 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. |
getAllEntryTypes() | Returns all entry types. |
getAllSectionIds() | Returns all of the section IDs. |
getAllSections() | Returns all sections. |
getBehavior() | Returns the named behavior object. |
getBehaviors() | Returns all behaviors attached to this component. |
getEditableSectionIds() | Returns all of the section IDs that are editable by the current user. |
getEditableSections() | Returns all editable sections. |
getEntryTypeById() | Returns an entry type by its ID. |
getEntryTypeByUid() | Returns an entry type by its UID. |
getEntryTypesByHandle() | Returns entry types that have a given handle. |
getEntryTypesBySectionId() | Returns a section’s entry types. |
getSectionByHandle() | Gets a section by its handle. |
getSectionById() | Returns a section by its ID. |
getSectionByUid() | Gets a section by its UID. |
getSectionSiteSettings() | Returns a section’s site-specific settings. |
getSectionsByType() | Returns all sections of a given type. |
getTotalEditableSections() | Gets the total number of sections that are editable by the current user. |
getTotalSections() | Gets the total number of sections. |
handleChangedEntryType() | Handle entry type change |
handleChangedSection() | Handle section change |
handleDeletedEntryType() | Handle an entry type getting deleted |
handleDeletedSection() | Handle a section getting deleted |
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. |
isSectionTemplateValid() | Returns whether a section’s entries have URLs for the given site ID, and if the section’s template path is valid. |
off() | Detaches an existing event handler from this component. |
on() | Attaches an event handler to an event. |
pruneDeletedField() | |
pruneDeletedSite() | Prune a deleted site from section site settings. |
reorderEntryTypes() | Reorders entry types. |
saveEntryType() | Saves an entry type. |
saveSection() | Saves a section. |
trigger() | Triggers an event. |
__serialize()
​
- Since
- 3.5.14
Serializer
deleteEntryType()
​
Deletes an entry type.
Arguments ​
$entryType
(craft\models\EntryType)
Returns ​
boolean – Whether the entry type was deleted successfully
Throws ​
- Throwable
if reasons
Example ​
$success = Craft::$app->sections->deleteEntryType($entryType);
deleteEntryTypeById()
​
Deletes an entry type by its ID.
Arguments ​
$entryTypeId
(integer)
Returns ​
boolean – Whether the entry type was deleted successfully
Throws ​
- Throwable
if reasons
Example ​
$success = Craft::$app->sections->deleteEntryTypeById(1);
deleteSection()
​
Deletes a section.
Arguments ​
$section
(craft\models\Section)
Returns ​
boolean – Whether the section was deleted successfully
Throws ​
- Throwable
if reasons
Example ​
$success = Craft::$app->sections->deleteSection($section);
deleteSectionById()
​
Deletes a section by its ID.
Arguments ​
$sectionId
(integer)
Returns ​
boolean – Whether the section was deleted successfully
Throws ​
- Throwable
if reasons
Example ​
$success = Craft::$app->sections->deleteSectionById(1);
getAllEntryTypes()
​
- Since
- 3.3.0
Returns all entry types.
Returns ​
Example ​
$entryTypes = Craft::$app->sections->getAllEntryTypes();
getAllSectionIds()
​
Returns all of the section IDs.
Returns ​
integer[] – All the sections’ IDs.
Example ​
$sectionIds = Craft::$app->sections->allSectionIds;
{% set sectionIds = craft.app.sections.allSectionIds %}
getAllSections()
​
Returns all sections.
Returns ​
craft\models\Section[] – All the sections.
Example ​
$sections = Craft::$app->sections->allSections;
{% set sections = craft.app.sections.allSections %}
getEditableSectionIds()
​
Returns all of the section IDs that are editable by the current user.
Returns ​
integer[] – All the editable sections’ IDs.
Example ​
$sectionIds = Craft::$app->sections->editableSectionIds;
{% set sectionIds = craft.app.sections.editableSectionIds %}
getEditableSections()
​
Returns all editable sections.
Returns ​
craft\models\Section[] – All the editable sections.
Example ​
$sections = Craft::$app->sections->editableSections;
{% set sections = craft.app.sections.editableSections %}
getEntryTypeById()
​
Returns an entry type by its ID.
Arguments ​
$entryTypeId
(integer)
Returns ​
Example ​
$entryType = Craft::$app->sections->getEntryTypeById(1);
getEntryTypeByUid()
​
- Since
- 3.7.39
Returns an entry type by its UID.
Arguments ​
$uid
(string)
Returns ​
getEntryTypesByHandle()
​
Returns entry types that have a given handle.
Arguments ​
$entryTypeHandle
(string)
Returns ​
Example ​
$entryTypes = Craft::$app->sections->getEntryTypesByHandle('article');
getEntryTypesBySectionId()
​
Returns a section’s entry types.
Arguments ​
$sectionId
(integer)
Returns ​
Example ​
$entryTypes = Craft::$app->sections->getEntryTypesBySectionId(1);
getSectionByHandle()
​
Gets a section by its handle.
Arguments ​
$sectionHandle
(string)
Returns ​
Example ​
$section = Craft::$app->sections->getSectionByHandle('news');
{% set section = craft.app.sections.getSectionByHandle('news') %}
getSectionById()
​
Returns a section by its ID.
Arguments ​
$sectionId
(integer)
Returns ​
Example ​
$section = Craft::$app->sections->getSectionById(1);
{% set section = craft.app.sections.getSectionById(1) %}
getSectionByUid()
​
- Since
- 3.1.0
Gets a section by its UID.
Arguments ​
$uid
(string)
Returns ​
Example ​
$section = Craft::$app->sections->getSectionByUid('b3a9eef3-9444-4995-84e2-6dc6b60aebd2');
{% set section = craft.app.sections.getSectionByUid('b3a9eef3-9444-4995-84e2-6dc6b60aebd2') %}
getSectionSiteSettings()
​
Returns a section’s site-specific settings.
Arguments ​
$sectionId
(integer)
Returns ​
craft\models\Section_SiteSettings[] – The section’s site-specific settings.
getSectionsByType()
​
Returns all sections of a given type.
Arguments ​
$type
(string) – The section type (single
,channel
, orstructure
)
Returns ​
craft\models\Section[] – All the sections of the given type.
Example ​
use craft\models\Section;
$singles = Craft::$app->sections->getSectionsByType(Section::TYPE_SINGLE);
{% set singles = craft.app.sections.getSectionsByType('single') %}
getTotalEditableSections()
​
Gets the total number of sections that are editable by the current user.
Returns ​
Example ​
$total = Craft::$app->sections->totalEditableSections;
{% set total = craft.app.sections.totalEditableSections %}
getTotalSections()
​
Gets the total number of sections.
Returns ​
Example ​
$total = Craft::$app->sections->totalSections;
{% set total = craft.app.sections.totalSections %}
handleChangedEntryType()
​
Handle entry type change
Arguments ​
$event
(craft\events\ConfigEvent)
handleChangedSection()
​
Handle section change
Arguments ​
$event
(craft\events\ConfigEvent)
handleDeletedEntryType()
​
Handle an entry type getting deleted
Arguments ​
$event
(craft\events\ConfigEvent)
handleDeletedSection()
​
Handle a section getting deleted
Arguments ​
$event
(craft\events\ConfigEvent)
isSectionTemplateValid()
​
DEPRECATED
Deprecated in 3.3.0
Returns whether a section’s entries have URLs for the given site ID, and if the section’s template path is valid.
Arguments ​
$section
(craft\models\Section)$siteId
(integer)
Returns ​
pruneDeletedField()
​
DEPRECATED
Deprecated in 3.7.51. Unused fields will be pruned automatically as field layouts are resaved.
pruneDeletedSite()
​
Prune a deleted site from section site settings.
Arguments ​
$event
(craft\events\DeleteSiteEvent)
reorderEntryTypes()
​
Reorders entry types.
Arguments ​
$entryTypeIds
(array)
Returns ​
boolean – Whether the entry types were reordered successfully
Throws ​
- Throwable
if reasons
saveEntryType()
​
Saves an entry type.
Arguments ​
$entryType
(craft\models\EntryType) – The entry type to be saved$runValidation
(boolean) – Whether the entry type should be validated
Returns ​
boolean – Whether the entry type was saved successfully
Throws ​
- craft\errors\EntryTypeNotFoundException
if $entryType->id is invalid - Throwable
if reasons
saveSection()
​
Saves a section.
Arguments ​
$section
(craft\models\Section) – The section to be saved$runValidation
(boolean) – Whether the section should be validated
Returns ​
Throws ​
- craft\errors\SectionNotFoundException
if $section->id is invalid - Throwable
if reasons
Example ​
use craft\models\Section;
use craft\models\Section_SiteSettings;
$section = new Section([
'name' => 'News',
'handle' => 'news',
'type' => Section::TYPE_CHANNEL,
'siteSettings' => [
new Section_SiteSettings([
'siteId' => Craft::$app->sites->getPrimarySite()->id,
'enabledByDefault' => true,
'hasUrls' => true,
'uriFormat' => 'foo/{slug}',
'template' => 'foo/_entry',
]),
]
]);
$success = Craft::$app->sections->saveSection($section);
Constants ​
Constant | Description |
---|---|
CONFIG_ENTRYTYPES_KEY | |
CONFIG_SECTIONS_KEY |
Events ​
EVENT_AFTER_DELETE_ENTRY_TYPE ​
The event that is triggered after an entry type is deleted.
EVENT_AFTER_DELETE_SECTION ​
The event that is triggered after a section is deleted.
EVENT_AFTER_SAVE_ENTRY_TYPE ​
The event that is triggered after an entry type is saved.
EVENT_AFTER_SAVE_SECTION ​
The event that is triggered after a section is saved.
EVENT_BEFORE_APPLY_ENTRY_TYPE_DELETE ​
- Type
- craft\events\EntryTypeEvent
- Since
- 3.1.0
The event that is triggered before an entry type delete is applied to the database.
EVENT_BEFORE_APPLY_SECTION_DELETE ​
- Type
- craft\events\SectionEvent
- Since
- 3.1.0
The event that is triggered before a section delete is applied to the database.
EVENT_BEFORE_DELETE_ENTRY_TYPE ​
The event that is triggered before an entry type is deleted.
EVENT_BEFORE_DELETE_SECTION ​
The event that is triggered before a section is deleted.
EVENT_BEFORE_SAVE_ENTRY_TYPE ​
The event that is triggered before an entry type is saved.
EVENT_BEFORE_SAVE_SECTION ​
The event that is triggered before a section is saved.