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 Drafts service is globally accessible in Craft 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 an object property.
__isset() (opens new window) Checks if a property is set, i.e. defined and not null.
__set() (opens new window) Sets value of an object property.
__unset() (opens new window) Sets an object property to null.
applyDraft() Applies a draft onto its source element.
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.
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.
init() Initializes the object.
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.
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()

Applies a draft onto its source element.

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface – The updated source element

Throws

# createDraft()

Creates a new draft for the given element.

View source (opens new window)

Arguments

Returns

craft\base\ElementInterface – The new draft

Throws

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

# mergeSourceChanges()

Since
3.4.0

Merges recent source element changes into a draft.

View source (opens new window)

Arguments

# purgeUnsavedDrafts()

Deletes any sourceless drafts that were never formally saved.

This method will check the config3:purgeUnsavedDraftsDuration (opens new window) config setting, and if it is set to a valid duration, it will delete any sourceless drafts that were created that duration ago, and have still not been formally saved.

View source (opens new window)

# 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

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

# EVENT_AFTER_CREATE_DRAFT

Type
craft\events\DraftEvent

The event that is triggered after a draft is created.

# EVENT_AFTER_MERGE_SOURCE_CHANGES

Type
craft\events\DraftEvent
Since
3.4.0

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

# EVENT_BEFORE_APPLY_DRAFT

Type
craft\events\DraftEvent

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

# EVENT_BEFORE_CREATE_DRAFT

Type
craft\events\DraftEvent

The event that is triggered before a draft is created.

# EVENT_BEFORE_MERGE_SOURCE_CHANGES

Type
craft\events\DraftEvent
Since
3.4.0

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