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. |
| 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)
pruneDeletedField() ​
DEPRECATED
Deprecated in 4.0.5. 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);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.