public function MailEntity::getAttachments in Simplenews 3.x
Same name and namespace in other branches
- 8.2 src/Mail/MailEntity.php \Drupal\simplenews\Mail\MailEntity::getAttachments()
- 8 src/Mail/MailEntity.php \Drupal\simplenews\Mail\MailEntity::getAttachments()
Returns an array of attachments for this newsletter mail.
Return value
array An array of managed file objects with properties uri, filemime and so on.
Overrides MailInterface::getAttachments
File
- src/
Mail/ MailEntity.php, line 389
Class
- MailEntity
- Default mail class for entities.
Namespace
Drupal\simplenews\MailCode
public function getAttachments() {
if ($cache = $this->cache
->get($this, 'data', 'attachments')) {
return $cache;
}
$attachments = [];
$build = $this
->build();
$fids = [];
foreach ($this
->getIssue()
->getFieldDefinitions() as $field_name => $field_definition) {
// @todo: Find a better way to support more field types.
// Only add fields of type file which are enabled for the current view
// mode as attachments.
if ($field_definition
->getType() == 'file' && isset($build[$field_name])) {
if ($items = $this
->getIssue()
->get($field_name)) {
foreach ($items as $item) {
$fids[] = $item->target_id;
}
}
}
}
if (!empty($fids)) {
$attachments = File::loadMultiple($fids);
}
$this->cache
->set($this, 'data', 'attachments', $attachments);
return $attachments;
}