Skip to content

DraftBehavior ​

Type
Class
Namespace
craft\behaviors
Inherits
craft\behaviors\DraftBehavior » craft\behaviors\BaseRevisionBehavior » yii\base\Behavior » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.2.0

DraftBehavior is applied to element drafts.

View source

Public Properties ​

PropertyDescription
creatorcraft\elements\User, null
creatorIdinteger, null – The creator’s ID
dateLastMerged\craft\behaviors\Datetime, null – The date that the canonical element was last merged into this one
draftNamestring, null – The draft name
draftNotesstring, null – The draft notes
isOutdatedboolean
markAsSavedboolean – Whether the draft should be marked as saved (if unpublished).
mergingChangesboolean – Whether recent changes to the canonical element are being merged into this element
ownercraft\base\ElementInterface
sourcecraft\base\ElementInterface, null
sourceIdinteger
trackChangesboolean – Whether to track changes in this draft

dateLastMerged ​

Type
\craft\behaviors\Datetime, null
Default value
null

The date that the canonical element was last merged into this one

View source

draftName ​

Type
string, null
Default value
null

The draft name

View source

draftNotes ​

Type
string, null
Default value
null

The draft notes

View source

isOutdated ​

Type
boolean
Default value
null
Access
Read-only
Since
3.4.0

View source

markAsSaved ​

Type
boolean
Default value
true
Since
3.6.6

Whether the draft should be marked as saved (if unpublished).

View source

mergingChanges ​

Type
boolean
Default value
null

Whether recent changes to the canonical element are being merged into this element

View source

trackChanges ​

Type
boolean
Default value
true

Whether to track changes in this draft

View source

Public Methods ​

MethodDescription
__call()Calls the named method which is not a class method.
__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.
attach()Attaches the behavior object to the component.
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.
detach()Detaches the behavior object from the component.
events()Declares event handlers for the owner's events.
getCreator()Returns the draft’s creator.
getDraftName()Returns the draft’s name.
getIsOutdated()Returns whether the source element has been saved since the time this draft was created or last merged.
getSource()Returns the draft/revision’s source element.
getSourceId()Returns the draft/revision's source element ID.
handleDelete()Deletes the row in the drafts table after the draft element is deleted.
handleSave()Updates the row in the drafts table after the draft element is saved.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined.
init()Initializes the object.
setCreator()Sets the draft's creator.

events() ​

Declares event handlers for the owner's events.

Child classes may override this method to declare what PHP callbacks should be attached to the events of the owner component.

The callbacks will be attached to the owner's events when the behavior is attached to the owner; and they will be detached from the events when the behavior is detached from the component.

The callbacks can be any of the following:

  • method in this behavior: 'handleClick', equivalent to [$this, 'handleClick']
  • object method: [$object, 'handleClick']
  • static method: ['Page', 'handleClick']
  • anonymous function: function ($event) { ... }

The following is an example:

php
[
    Model::EVENT_BEFORE_VALIDATE => 'myBeforeValidate',
    Model::EVENT_AFTER_VALIDATE => 'myAfterValidate',
]

View source

Returns ​

array – Events (array keys) and the corresponding event handler methods (array values).

getDraftName() ​

Since
3.3.17

Returns the draft’s name.

View source

Returns ​

string

getIsOutdated() ​

DEPRECATED

Deprecated in 3.7.12. Use craft\helpers\ElementHelper::isOutdated() instead.

Since
3.4.0

Returns whether the source element has been saved since the time this draft was created or last merged.

View source

Returns ​

boolean

handleDelete() ​

Deletes the row in the drafts table after the draft element is deleted.

View source

handleSave() ​

Updates the row in the drafts table after the draft element is saved.

View source