* @copyright 2016 data-quest * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP */ class OutboxFolder extends InboxOutboxFolder { /** * Returns a localised name of the OutboxFolder type. * * @return string The localised name of this folder type. */ public static function getTypeName(): string { return _('Alle Anhänge gesendeter Nachrichten'); } /** * Returns the Icon object for the OutboxFolder type. * * @return Icon An icon object with the icon for this folder type. */ public function getIcon(string $role = Icon::DEFAULT_ROLE): Icon { return Icon::create( count($this->getFiles()) ? 'folder-inbox-full' : 'folder-inbox-empty', $role ); } /** * Gets all attachments of sent messages of a specific user * and places the attachments inside this folder. * * @return FileRef[] Array of FileRef objects representing the message * attachments. */ public function getFiles(): array { //get all folders of the user that belongs to a received message: $message_folders = Folder::findBySql( "INNER JOIN message_user ON folders.range_id = message_user.message_id WHERE folders.range_type = 'message' AND message_user.user_id = :user_id AND message_user.snd_rec = 'snd' AND message_user.deleted = '0'", [ 'user_id' => $this->user->id ] ); $files = []; foreach ($message_folders as $folder) { $files = array_merge($files, $folder->getTypedFolder()->getFiles()); } return $files; } /** * The magic get method is overwritten to be able to set a * custom value for the name attribute. */ public function __get($attribute) { if ($attribute == 'name') { return _('Ausgehende Dateianhänge'); } else { return parent::__get($attribute); } } }