Skip to content

SystemMessages ​

Type
Class
Namespace
craft\services
Inherits
craft\services\SystemMessages » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.0.0

System Messages service.

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

View source

Public Properties ​

PropertyDescription
allDefaultMessagescraft\models\SystemMessage[]
allMessagescraft\models\SystemMessage[]
behaviorsyii\base\Behavior – List of behaviors attached to this component.

allDefaultMessages ​

Type
craft\models\SystemMessage[]
Default value
null
Access
Read-only

View source

allMessages ​

Type
craft\models\SystemMessage[]
Default value
null
Access
Read-only

View source

Public Methods ​

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of a component property.
__isset()Checks if a property is set, i.e. defined and not null.
__set()Sets the value of a component property.
__unset()Sets a component property to be null.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
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.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllDefaultMessages()Returns all of the default system email messages, without subject/body overrides.
getAllMessages()Returns all of the system email messages in a given language, with subject/body overrides.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getDefaultMessage()Returns a default system email messages by its key, without subject/body overrides.
getMessage()Returns a system email messages in a given language by its key, with subject/body overrides.
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined for this component.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
saveMessage()Saves the subject/body overrides for a system email message.
trigger()Triggers an event.

getAllDefaultMessages() ​

Returns all of the default system email messages, without subject/body overrides.

View source

Returns ​

craft\models\SystemMessage[]

getAllMessages() ​

Returns all of the system email messages in a given language, with subject/body overrides.

View source

Arguments ​

Returns ​

craft\models\SystemMessage[]

getDefaultMessage() ​

Returns a default system email messages by its key, without subject/body overrides.

View source

Arguments ​

Returns ​

craft\models\SystemMessage, null

getMessage() ​

Returns a system email messages in a given language by its key, with subject/body overrides.

View source

Arguments ​

Returns ​

craft\models\SystemMessage, null

saveMessage() ​

Saves the subject/body overrides for a system email message.

View source

Arguments ​

Returns ​

boolean

Events ​

EVENT_REGISTER_MESSAGES ​

Type
craft\events\RegisterEmailMessagesEvent

The event that is triggered when registering system messages.

php
use craft\base\Event;
use craft\events\RegisterEmailMessagesEvent;
use craft\services\SystemMessages;

Event::on(
    SystemMessages::class,
    SystemMessages::EVENT_REGISTER_MESSAGES,
    function(RegisterEmailMessagesEvent $event) {
        $event->messages[] = [
            'key' => 'account_approved',
            'heading' => 'When a member’s account is approved',
            'subject' => 'Your account is approved!',
            'body' => "Hey {{user.friendlyName|e}},\n\nYour account with {{systemName}} has been approved by {{approver}}!",
        ];
    },
);

Once a system message is registered, it will be editable from the System Messages utility.

System messages can be sent via craft\mail\Mailer::composeFromKey():

php
Craft::$app->getMailer()
   ->composeFromKey('account_approved', [
       'approver' => $approver->friendlyName,
   ])
   ->setTo($user)
   ->send();