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
$draft
(craft\base\ElementInterface) – The draft
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
$source
(craft\base\ElementInterface) – The element to create a draft for$creatorId
(integer (opens new window)) – The user ID that the draft should be attributed to$name
(string (opens new window), null (opens new window)) – The draft name$notes
(string (opens new window), null (opens new window)) – The draft notes$newAttributes
(array (opens new window)) – Any attributes to apply to the draft$provisional
(boolean (opens new window)) – Whether to create a provisional draft
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
$sourceId
(integer (opens new window)) – The source element’s ID
Returns
# getEditableDrafts()
Returns drafts for a given element ID that the current user is allowed to edit
View source (opens new window)
Arguments
$element
(craft\base\ElementInterface)$permission
(string (opens new window), null (opens new window))
Returns
# 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
$name
(string (opens new window), null (opens new window))$notes
(string (opens new window), null (opens new window))$creatorId
(integer (opens new window), null (opens new window))$sourceId
(integer (opens new window), null (opens new window))$trackChanges
(boolean (opens new window))$provisional
(boolean (opens new window))
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
$draft
(craft\base\ElementInterface) – The draft
# 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
$draft
(craft\base\ElementInterface) – The draft
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
$element
(craft\base\ElementInterface)$creatorId
(integer (opens new window), null (opens new window))$name
(string (opens new window), null (opens new window))$notes
(string (opens new window), null (opens new window))$markAsSaved
(boolean (opens new window))
Returns
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
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
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.