DraftBehavior

Type
Class
Namespace
craft\behaviors
Inherits
craft\behaviors\DraftBehavior » craft\behaviors\BaseRevisionBehavior » yii\base\Behavior (opens new window) » yii\base\BaseObject (opens new window)
Implements
yii\base\Configurable (opens new window)
Since
3.2.0

DraftBehavior is applied to element drafts.

View source (opens new window)

# Public Properties

Property Description
creator craft\elements\User, null (opens new window)
creatorId integer (opens new window), null (opens new window) – The creator’s ID
dateLastMerged \craft\behaviors\Datetime, null (opens new window) – The date that the canonical element was last merged into this one
draftName string (opens new window) – The draft name
draftNotes string (opens new window), null (opens new window) – The draft notes
isOutdated boolean (opens new window)
markAsSaved boolean (opens new window) – Whether the draft should be marked as saved (if unpublished).
mergingChanges boolean (opens new window) – Whether recent changes to the canonical element are being merged into this element
outdatedAttributes string (opens new window)[]
outdatedFields string (opens new window)[]
owner craft\base\ElementInterface
source craft\base\ElementInterface, null (opens new window)
sourceId
trackChanges boolean (opens new window) – Whether to track changes in this draft

# dateLastMerged

Type
\craft\behaviors\Datetime, null (opens new window)
Default value
null

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

View source (opens new window)

# draftName

Type
string (opens new window)
Default value
null

The draft name

View source (opens new window)

# draftNotes

Type
string (opens new window), null (opens new window)
Default value
null

The draft notes

View source (opens new window)

# isOutdated

Type
boolean (opens new window)
Default value
null
Access
Read-only
Since
3.4.0

View source (opens new window)

# markAsSaved

Type
boolean (opens new window)
Default value
true
Since
3.6.6

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

View source (opens new window)

# mergingChanges

Type
boolean (opens new window)
Default value
null

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

View source (opens new window)

# outdatedAttributes

Type
string (opens new window)[]
Default value
null
Access
Read-only
Since
3.4.0

View source (opens new window)

# outdatedFields

Type
string (opens new window)[]
Default value
null
Access
Read-only
Since
3.4.0

View source (opens new window)

# trackChanges

DEPRECATED

Deprecated in 3.7.0.

Type
boolean (opens new window)
Default value
true

Whether to track changes in this draft

View source (opens new window)

# Public Methods

Method Description
__call() (opens new window) Calls the named method which is not a class method.
__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.
attach() (opens new window) Attaches the behavior object to the component.
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.
detach() (opens new window) Detaches the behavior object from the component.
events() Declares event handlers for the owner's events.
getCreator() Returns the draft’s creator.
getDateLastMerged() Returns the date that the canonical element was last merged into this one.
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.
getMergingChanges() Returns whether recent changes to the canonical element are being merged into this element.
getOutdatedAttributes() Returns the outdated attributes.
getOutdatedFields() Returns the outdated field handles.
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() (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() (opens new window) Initializes the object.
isAttributeModified() Returns whether an attribute has changed on the draft.
isAttributeOutdated() Returns whether an attribute on the draft has fallen behind the source element’s value.
isFieldModified() Returns whether a field value has changed on the draft.
isFieldOutdated() Returns whether a field value on the draft has fallen behind the source element’s value.
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:

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

View source (opens new window)

Returns

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

# getDateLastMerged()

DEPRECATED

Deprecated in 3.7.0. Use \craft\base\ElementInterface::$dateLastMerged instead.

Since
3.7.0

Returns the date that the canonical element was last merged into this one.

View source (opens new window)

# getDraftName()

Since
3.3.17

Returns the draft’s name.

View source (opens new window)

Returns

string (opens new window)

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

Returns

boolean (opens new window)

# getMergingChanges()

DEPRECATED

Deprecated in 3.7.0. Use \craft\base\ElementInterface::$mergingCanonicalChanges instead.

Since
3.7.0

Returns whether recent changes to the canonical element are being merged into this element.

View source (opens new window)

# getOutdatedAttributes()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::getOutdatedAttributes() instead.

Since
3.4.0

Returns the outdated attributes.

View source (opens new window)

Returns

string (opens new window)[]

# getOutdatedFields()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::getOutdatedFields() instead.

Since
3.4.0

Returns the outdated field handles.

View source (opens new window)

Returns

string (opens new window)[]

# handleDelete()

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

View source (opens new window)

# handleSave()

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

View source (opens new window)

# isAttributeModified()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::isAttributeModified() instead.

Since
3.4.0

Returns whether an attribute has changed on the draft.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

# isAttributeOutdated()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::isAttributeOutdated() instead.

Since
3.4.0

Returns whether an attribute on the draft has fallen behind the source element’s value.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

# isFieldModified()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::isFieldModified() instead.

Since
3.4.0

Returns whether a field value has changed on the draft.

View source (opens new window)

Arguments

Returns

boolean (opens new window)

# isFieldOutdated()

DEPRECATED

Deprecated in 3.7.0. Use craft\base\ElementInterface::isFieldOutdated() instead.

Since
3.4.0

Returns whether a field value on the draft has fallen behind the source element’s value.

View source (opens new window)

Arguments

Returns

boolean (opens new window)