Skip to content

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.

View source

Public Properties ​

PropertyDescription
allEntryTypescraft\models\EntryType[]
allSectionIdsinteger[] – All the sections’ IDs.
allSectionscraft\models\Section[] – All the sections.
autoResaveEntriesboolean – Whether entries should be resaved after a section or entry type has been updated.
behaviorsyii\base\Behavior – List of behaviors attached to this component.
editableSectionIdsinteger[] – All the editable sections’ IDs.
editableSectionscraft\models\Section[] – All the editable sections.
totalEditableSectionsinteger
totalSectionsinteger

allEntryTypes ​

Type
craft\models\EntryType[]
Default value
null
Access
Read-only
Since
3.3.0

View source

allSectionIds ​

Type
integer[]
Default value
null
Access
Read-only

All the sections’ IDs.

View source

allSections ​

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

All the sections.

View source

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.)

View source

editableSectionIds ​

Type
integer[]
Default value
null
Access
Read-only

All the editable sections’ IDs.

View source

editableSections ​

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

All the editable sections.

View source

totalEditableSections ​

Type
integer
Default value
null
Access
Read-only

View source

totalSections ​

Type
integer
Default value
null
Access
Read-only

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.
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

View source

deleteEntryType() ​

Deletes an entry type.

View source

Arguments ​

Returns ​

boolean – Whether the entry type was deleted successfully

Throws ​


Example ​

::: code

php
$success = Craft::$app->sections->deleteEntryType($entryType);

:::

deleteEntryTypeById() ​

Deletes an entry type by its ID.

View source

Arguments ​

Returns ​

boolean – Whether the entry type was deleted successfully

Throws ​


Example ​

::: code

php
$success = Craft::$app->sections->deleteEntryTypeById(1);

:::

deleteSection() ​

Deletes a section.

View source

Arguments ​

Returns ​

boolean – Whether the section was deleted successfully

Throws ​


Example ​

::: code

php
$success = Craft::$app->sections->deleteSection($section);

:::

deleteSectionById() ​

Deletes a section by its ID.

View source

Arguments ​

Returns ​

boolean – Whether the section was deleted successfully

Throws ​


Example ​

::: code

php
$success = Craft::$app->sections->deleteSectionById(1);

:::

getAllEntryTypes() ​

Since
3.3.0

Returns all entry types.

View source

Returns ​

craft\models\EntryType[]


Example ​

::: code

php
$entryTypes = Craft::$app->sections->getAllEntryTypes();

:::

getAllSectionIds() ​

Returns all of the section IDs.

View source

Returns ​

integer[] – All the sections’ IDs.


Example ​

::: code

php
$sectionIds = Craft::$app->sections->allSectionIds;
twig
{% set sectionIds = craft.app.sections.allSectionIds %}

:::

getAllSections() ​

Returns all sections.

View source

Returns ​

craft\models\Section[] – All the sections.


Example ​

::: code

php
$sections = Craft::$app->sections->allSections;
twig
{% set sections = craft.app.sections.allSections %}

:::

getEditableSectionIds() ​

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

View source

Returns ​

integer[] – All the editable sections’ IDs.


Example ​

::: code

php
$sectionIds = Craft::$app->sections->editableSectionIds;
twig
{% set sectionIds = craft.app.sections.editableSectionIds %}

:::

getEditableSections() ​

Returns all editable sections.

View source

Returns ​

craft\models\Section[] – All the editable sections.


Example ​

::: code

php
$sections = Craft::$app->sections->editableSections;
twig
{% set sections = craft.app.sections.editableSections %}

:::

getEntryTypeById() ​

Returns an entry type by its ID.

View source

Arguments ​

Returns ​

craft\models\EntryType, null


Example ​

::: code

php
$entryType = Craft::$app->sections->getEntryTypeById(1);

:::

getEntryTypeByUid() ​

Since
3.7.39

Returns an entry type by its UID.

View source

Arguments ​

Returns ​

craft\models\EntryType, null

getEntryTypesByHandle() ​

Returns entry types that have a given handle.

View source

Arguments ​

Returns ​

craft\models\EntryType[]


Example ​

::: code

php
$entryTypes = Craft::$app->sections->getEntryTypesByHandle('article');

:::

getEntryTypesBySectionId() ​

Returns a section’s entry types.

View source

Arguments ​

Returns ​

craft\models\EntryType[]


Example ​

::: code

php
$entryTypes = Craft::$app->sections->getEntryTypesBySectionId(1);

:::

getSectionByHandle() ​

Gets a section by its handle.

View source

Arguments ​

Returns ​

craft\models\Section, null


Example ​

::: code

php
$section = Craft::$app->sections->getSectionByHandle('news');
twig
{% set section = craft.app.sections.getSectionByHandle('news') %}

:::

getSectionById() ​

Returns a section by its ID.

View source

Arguments ​

Returns ​

craft\models\Section, null


Example ​

::: code

php
$section = Craft::$app->sections->getSectionById(1);
twig
{% set section = craft.app.sections.getSectionById(1) %}

:::

getSectionByUid() ​

Since
3.1.0

Gets a section by its UID.

View source

Arguments ​

Returns ​

craft\models\Section, null


Example ​

::: code

php
$section = Craft::$app->sections->getSectionByUid('b3a9eef3-9444-4995-84e2-6dc6b60aebd2');
twig
{% set section = craft.app.sections.getSectionByUid('b3a9eef3-9444-4995-84e2-6dc6b60aebd2') %}

:::

getSectionSiteSettings() ​

Returns a section’s site-specific settings.

View source

Arguments ​

Returns ​

craft\models\Section_SiteSettings[] – The section’s site-specific settings.

getSectionsByType() ​

Returns all sections of a given type.

View source

Arguments ​

  • $type (string) – The section type (single, channel, or structure)

Returns ​

craft\models\Section[] – All the sections of the given type.


Example ​

::: code

php
use craft\models\Section;

$singles = Craft::$app->sections->getSectionsByType(Section::TYPE_SINGLE);
twig
{% set singles = craft.app.sections.getSectionsByType('single') %}

:::

getTotalEditableSections() ​

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

View source

Returns ​

integer


Example ​

::: code

php
$total = Craft::$app->sections->totalEditableSections;
twig
{% set total = craft.app.sections.totalEditableSections %}

:::

getTotalSections() ​

Gets the total number of sections.

View source

Returns ​

integer


Example ​

::: code

php
$total = Craft::$app->sections->totalSections;
twig
{% set total = craft.app.sections.totalSections %}

:::

handleChangedEntryType() ​

Handle entry type change

View source

Arguments ​

handleChangedSection() ​

Handle section change

View source

Arguments ​

handleDeletedEntryType() ​

Handle an entry type getting deleted

View source

Arguments ​

handleDeletedSection() ​

Handle a section getting deleted

View source

Arguments ​

pruneDeletedField() ​

DEPRECATED

Deprecated in 4.0.5. Unused fields will be pruned automatically as field layouts are resaved.

View source

pruneDeletedSite() ​

Prune a deleted site from section site settings.

View source

Arguments ​

reorderEntryTypes() ​

Reorders entry types.

View source

Arguments ​

Returns ​

boolean – Whether the entry types were reordered successfully

Throws ​

saveEntryType() ​

Saves an entry type.

View source

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 ​

saveSection() ​

Saves a section.

View source

Arguments ​

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

Returns ​

boolean

Throws ​


Example ​

::: code

php
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 ​

Type
craft\events\EntryTypeEvent

The event that is triggered after an entry type is deleted.


EVENT_AFTER_DELETE_SECTION ​

Type
craft\events\SectionEvent

The event that is triggered after a section is deleted.


EVENT_AFTER_SAVE_ENTRY_TYPE ​

Type
craft\events\EntryTypeEvent

The event that is triggered after an entry type is saved.


EVENT_AFTER_SAVE_SECTION ​

Type
craft\events\SectionEvent

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 ​

Type
craft\events\EntryTypeEvent

The event that is triggered before an entry type is deleted.


EVENT_BEFORE_DELETE_SECTION ​

Type
craft\events\SectionEvent

The event that is triggered before a section is deleted.


EVENT_BEFORE_SAVE_ENTRY_TYPE ​

Type
craft\events\EntryTypeEvent

The event that is triggered before an entry type is saved.


EVENT_BEFORE_SAVE_SECTION ​

Type
craft\events\SectionEvent

The event that is triggered before a section is saved.