Message.php in Translation Management Tool 8
File
src/Entity/Message.php
View source
<?php
namespace Drupal\tmgmt\Entity;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\tmgmt\MessageInterface;
use Drupal\tmgmt\Entity\Job;
class Message extends ContentEntityBase implements MessageInterface {
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields['mid'] = BaseFieldDefinition::create('integer')
->setLabel('Message ID')
->setReadOnly(TRUE);
$fields['uuid'] = BaseFieldDefinition::create('uuid')
->setLabel(t('UUID'))
->setDescription(t('The node UUID.'))
->setReadOnly(TRUE);
$fields['tjid'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Job reference'))
->setSetting('target_type', 'tmgmt_job');
$fields['tjiid'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Job item reference'))
->setSetting('target_type', 'tmgmt_job_item');
$fields['type'] = BaseFieldDefinition::create('string')
->setLabel('Message type')
->setDefaultValue('status');
$fields['uid'] = BaseFieldDefinition::create('entity_reference')
->setLabel(t('Actor'))
->setDescription(t('The user who performed the action.'))
->setSettings(array(
'target_type' => 'user',
))
->setDefaultValue(0);
$fields['message'] = BaseFieldDefinition::create('string')
->setLabel(t('Message'));
$fields['variables'] = BaseFieldDefinition::create('map')
->setLabel(t('Variables'));
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel('Created time');
return $fields;
}
public function defaultLabel() {
$created = \Drupal::service('date.formatter')
->format($this
->get('created')->value);
switch ($this->type->value) {
case 'error':
return t('Error message from @time', array(
'@time' => $created,
));
case 'status':
return t('Status message from @time', array(
'@time' => $created,
));
case 'warning':
return t('Warning message from @time', array(
'@time' => $created,
));
case 'debug':
return t('Debug message from @time', array(
'@time' => $created,
));
}
}
public function getMessage() {
$text = $this->message->value;
if ($this->variables
->first() && $this->variables
->first()
->toArray()) {
return new TranslatableMarkup($text, $this->variables
->first()
->toArray());
}
else {
return new TranslatableMarkup($text);
}
}
public function getJob() {
return Job::load($this
->get('tjid')->target_id);
}
public function getJobItem() {
return JobItem::load($this
->get('tjiid')->target_id);
}
public function getType() {
return $this
->get('type')->value;
}
}
Classes
Name |
Description |
Message |
Entity class for the tmgmt_message entity. |