Drafts

Type
Class
Namespace
craft\services
Inherits
craft\services\Drafts » yii\base\Component (opens new window) » yii\base\BaseObject (opens new window)
Implements
yii\base\Configurable (opens new window)
Since
3.2.0

Drafts service.

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

View source (opens new window)

# Public Properties

Property Description
behaviors (opens new window) yii\base\Behavior (opens new window) – List of behaviors attached to this component.
db craft\db\Connection, array (opens new window), string (opens new window) – The database connection to use

# db

Type
craft\db\Connection, array (opens new window), string (opens new window)
Default value
'db'
Since
3.5.4

The database connection to use

View source (opens new window)

# Public Methods

Method Description
__call() (opens new window) Calls the named method which is not a class method.
__clone() (opens new window) This method is called after the object is created by cloning an existing one.
__construct() (opens new window) Constructor.
__get() (opens new window) Returns the value of a component property.
__isset() (opens new window) Checks if a property is set, i.e. defined and not null.
__set() (opens new window) Sets the value of a component property.
__unset() (opens new window) Sets a component property to be null.
applyDraft() Applies a draft to its canonical element, and deletes the draft.
attachBehavior() (opens new window) Attaches a behavior to this component.
attachBehaviors() (opens new window) Attaches a list of behaviors to the component.
behaviors() (opens new window) Returns a list of behaviors that this component should behave as.
canGetProperty() (opens new window) Returns a value indicating whether a property can be read.
canSetProperty() (opens new window) Returns a value indicating whether a property can be set.
className() (opens new window) Returns the fully qualified name of this class.
createDraft() Creates a new draft for the given element.
detachBehavior() (opens new window) Detaches a behavior from the component.
detachBehaviors() (opens new window) Detaches all behaviors from the component.
ensureBehaviors() (opens new window) Makes sure that the behaviors declared in behaviors() (opens new window) are attached to this component.
generateDraftName() Returns the next auto-generated draft name that should be assigned, for the given source element.
getBehavior() (opens new window) Returns the named behavior object.
getBehaviors() (opens new window) Returns all behaviors attached to this component.
getEditableDrafts() Returns drafts for a given element ID that the current user is allowed to edit
hasEventHandlers() (opens new window) Returns a value indicating whether there is any handler attached to the named event.
hasMethod() (opens new window) Returns a value indicating whether a method is defined.
hasProperty() (opens new window) Returns a value indicating whether a property is defined for this component.
init() Initializes the object.
insertDraftRow() Creates a new row in the drafts table.
mergeSourceChanges() Merges recent source element changes into a draft.
off() (opens new window) Detaches an existing event handler from this component.
on() (opens new window) Attaches an event handler to an event.
publishDraft() Applies a draft to its canonical element, and deletes the draft.
purgeUnsavedDrafts() Deletes any sourceless drafts that were never formally saved.
saveElementAsDraft() Saves an element as a draft.
trigger() (opens new window) Triggers an event.

# applyDraft()

Since
3.6.0

Applies a draft to its canonical element, and deletes the draft.

If an unpublished draft is passed, its draft data will simply be removed from it.

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface – The canonical element with the draft applied to it

Throws

# createDraft()

Creates a new draft for the given element.

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface – The new draft

Throws

# generateDraftName()

Since
3.6.5

Returns the next auto-generated draft name that should be assigned, for the given source element.

View source (opens new window)

Arguments

Returns

string (opens new window)

# getEditableDrafts()

Returns drafts for a given element ID that the current user is allowed to edit

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface[]

# 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 (opens new window)

# insertDraftRow()

Since
3.6.4

Creates a new row in the drafts table.

View source (opens new window)

Arguments

Returns

integer (opens new window) – The new draft ID

Throws

# mergeSourceChanges()

DEPRECATED

Deprecated in 3.7.0. Use craft\services\Elements::mergeCanonicalChanges() instead.

Since
3.4.0

Merges recent source element changes into a draft.

View source (opens new window)

Arguments

# publishDraft()

DEPRECATED

Deprecated in 3.7.0. Use applyDraft() instead.

Applies a draft to its canonical element, and deletes the draft.

If an unpublished draft is passed, its draft data will simply be removed from it.

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface – The canonical element with the draft applied to it

Throws

# purgeUnsavedDrafts()

Deletes any sourceless drafts that were never formally saved.

View source (opens new window)

Returns

void

# saveElementAsDraft()

Saves an element as a draft.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

Throws

# Events

# EVENT_AFTER_APPLY_DRAFT

Type
craft\events\DraftEvent
Since
3.1.0

The event that is triggered after a draft is applied to its canonical element.

See also applyDraft()

# EVENT_AFTER_CREATE_DRAFT

Type
craft\events\DraftEvent

The event that is triggered after a draft is created.

# EVENT_AFTER_MERGE_SOURCE_CHANGES

DEPRECATED

Deprecated in 3.7.0. Use craft\services\Elements::EVENT_AFTER_MERGE_CANONICAL_CHANGES instead.

Type
craft\events\DraftEvent
Since
3.4.0

The event that is triggered after source changes are merged into a draft.

# EVENT_AFTER_PUBLISH_DRAFT

DEPRECATED

Deprecated in 3.7.0. Use EVENT_AFTER_APPLY_DRAFT instead.

Type
craft\events\DraftEvent
Since
3.6.0

The event that is triggered after a draft is applied to its canonical element.

# EVENT_BEFORE_APPLY_DRAFT

Type
craft\events\DraftEvent
Since
3.1.0

The event that is triggered before a draft is applied to its canonical element.

See also applyDraft()

# EVENT_BEFORE_CREATE_DRAFT

Type
craft\events\DraftEvent

The event that is triggered before a draft is created.

# EVENT_BEFORE_MERGE_SOURCE_CHANGES

DEPRECATED

Deprecated in 3.7.0. Use craft\services\Elements::EVENT_BEFORE_MERGE_CANONICAL_CHANGES instead.

Type
craft\events\DraftEvent
Since
3.4.0

The event that is triggered before source changes are merged into a draft.

# EVENT_BEFORE_PUBLISH_DRAFT

DEPRECATED

Deprecated in 3.7.0. Use EVENT_BEFORE_APPLY_DRAFT instead.

Type
craft\events\DraftEvent
Since
3.6.0

The event that is triggered before a draft is applied to its canonical element.