protected function updateFilePath($file, Swift_Message $message, $templateName) { $id = str_replace('dmFile-', '', $file->id); if (!$id) { $id = $file->getAttribute('data-dm-file-id'); } if (is_numeric($id)) { $mediaRecord = dmDb::table('dmMedia')->findOneByIdWithFolder($id); if ($mediaRecord) { $embed = false; $embedExtensions = array_map('trim', explode(',', dmConfig::get('mail_template_embed_file_types', 'doc,docx,xls,xlsx,ppt,pptx,pdf,mdb'))); foreach ($embedExtensions as $ext) { if (dmString::endsWith($file->href, '.' . $ext, false)) { $embed = true; break; } } if (dmConfig::get('mail_template_embed_local_files_as_attachments', true) && $embed) { try { $file->href = $message->embed(Swift_EmbeddedFile::fromPath(dmOs::join(sfConfig::get('sf_web_dir'), $mediaRecord->getWebPath()))); } catch (Exception $e) { $this->logError($templateName, 'local', 'file', $file->href); $file->href = ''; } } else { if (file_exists(dmOs::join(sfConfig::get('sf_web_dir'), $link = $mediaRecord->getWebPath()))) { $file->href = $this->basePath . '/' . $mediaRecord->getWebPath(); } else { $this->logError($templateName, 'local', 'file', $file->href); $file->href = ''; } } return $file; } } if (dmString::startsWith($file->href, sfConfig::get('sf_root_dir')) || dmString::startsWith($file->href, $this->basePath)) { return $this->updateLocalFilePath($file, $message, $templateName); } else { return $this->updateRemoteFilePath($file, $message, $templateName); } }