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 Sections service is globally accessible in Craft via Craft::$app->sections.

View source

# 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[]
Access
Read-only
Since
3.3.0

View source

# allSectionIds

Type
integer[]
Access
Read-only

All the sections’ IDs.

View source

# allSections

Type
craft\models\Section[]
Access
Read-only

All the sections.

View source

# autoResaveEntries

Type
boolean
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[]
Access
Read-only

All the editable sections’ IDs.

View source

# editableSections

Type
craft\models\Section[]
Access
Read-only

All the editable sections.

View source

# totalEditableSections

Type
integer
Access
Read-only

View source

# totalSections

Type
integer
Access
Read-only

View source

# 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 an object property.
__isset() Checks if a property is set, i.e. defined and not null.
__set() Sets value of an object property.
__unset() Sets an object property to 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.
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.
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() Prune a deleted field from entry type layouts.
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.

# deleteEntryType()

Deletes an entry type.

View source

Arguments

Returns

boolean – Whether the entry type was deleted successfully

Throws

Example

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

# deleteEntryTypeById()

Deletes an entry type by its ID.

View source

Arguments

Returns

boolean – Whether the entry type was deleted successfully

Throws

Example

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

# deleteSection()

Deletes a section.

View source

Arguments

Returns

boolean – Whether the section was deleted successfully

Throws

Example

$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

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

# getAllEntryTypes()

Since
3.3.0

Returns all entry types.

View source

Returns

craft\models\EntryType[]

Example

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

# getAllSectionIds()

Returns all of the section IDs.

View source

Returns

integer[] – All the sections’ IDs.

Example

$sectionIds = Craft::$app->sections->allSectionIds;

# getAllSections()

Returns all sections.

View source

Returns

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

Example

$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

$sectionIds = Craft::$app->sections->editableSectionIds;

# getEditableSections()

Returns all editable sections.

View source

Returns

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

Example

$sections = Craft::$app->sections->editableSections;

# getEntryTypeById()

Returns an entry type by its ID.

View source

Arguments

Returns

craft\models\EntryType, null

Example

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

# getEntryTypesByHandle()

Returns entry types that have a given handle.

View source

Arguments

Returns

craft\models\EntryType[]

Example

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

# getEntryTypesBySectionId()

Returns a section’s entry types.

View source

Arguments

Returns

craft\models\EntryType[]

Example

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

# getSectionByHandle()

Gets a section by its handle.

View source

Arguments

Returns

craft\models\Section, null

Example

$section = Craft::$app->sections->getSectionByHandle('news');

# getSectionById()

Returns a section by its ID.

View source

Arguments

Returns

craft\models\Section, null

Example

$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

$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

use craft\models\Section;

$singles = Craft::$app->sections->getSectionsByType(Section::TYPE_SINGLE);

# getTotalEditableSections()

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

View source

Returns

integer

Example

$total = Craft::$app->sections->totalEditableSections;

# getTotalSections()

Gets the total number of sections.

View source

Returns

integer

Example

$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

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

View source

Arguments

Returns

boolean

# pruneDeletedField()

Since
3.1.20

Prune a deleted field from entry type layouts.

View source

Arguments

# 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

Returns

boolean – Whether the entry type was saved successfully

Throws

# saveSection()

Saves a section.

View source

Arguments

Returns

boolean

Throws

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

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.