fix: attachment link on email sent
This commit is contained in:
parent
147765b31f
commit
47fe3598f4
@ -60,6 +60,8 @@ class Activities extends Controller {
|
||||
$attachment = 'upload/' . substr($attachment, 5);
|
||||
}
|
||||
|
||||
$attachment = preg_replace('#^(?:upload/)+#', 'upload/', $attachment);
|
||||
|
||||
if (strpos($attachment, 'upload/legacy/file/') === 0 || strpos($attachment, 'upload/') === 0) {
|
||||
return $attachment;
|
||||
}
|
||||
@ -100,6 +102,25 @@ class Activities extends Controller {
|
||||
return implode(',', array_unique(array_filter($normalized)));
|
||||
}
|
||||
|
||||
protected function normalizeAttachmentListForExternalMailer(?string $attachments): string
|
||||
{
|
||||
$normalizedList = $this->normalizeAttachmentList($attachments);
|
||||
if ($normalizedList === '') {
|
||||
return '';
|
||||
}
|
||||
|
||||
$items = array_filter(array_map('trim', explode(',', $normalizedList)), static function ($item) {
|
||||
return $item !== '';
|
||||
});
|
||||
|
||||
$externalList = [];
|
||||
foreach ($items as $item) {
|
||||
$externalList[] = preg_replace('#^(?:upload/)+#', '', $item);
|
||||
}
|
||||
|
||||
return implode(',', array_unique(array_filter($externalList)));
|
||||
}
|
||||
|
||||
protected function findFirstUploadedFile(array $files): ?UploadedFile
|
||||
{
|
||||
foreach ($files as $file) {
|
||||
@ -1458,7 +1479,7 @@ class Activities extends Controller {
|
||||
$sql = "select subject, attachment,siteid from activities where actid='$actid'";
|
||||
$query = $db->query($sql);
|
||||
$result = $query->getResultArray();
|
||||
$data['attachment'] = $result[0]['attachment'];
|
||||
$data['attachment'] = $this->normalizeAttachmentList($result[0]['attachment']);
|
||||
$data['subject'] = $result[0]['subject'];
|
||||
$siteid = $result[0]['siteid'];
|
||||
|
||||
@ -1504,6 +1525,7 @@ class Activities extends Controller {
|
||||
$subject = $this->request->getVar('subject');
|
||||
$message = $this->request->getVar('message');
|
||||
$attachment = $this->normalizeAttachmentList($this->request->getVar('attachment'));
|
||||
$attachmentForMailer = $this->normalizeAttachmentListForExternalMailer($attachment);
|
||||
// // $attachments = explode(',',$attachment);
|
||||
|
||||
// /*
|
||||
@ -1552,7 +1574,7 @@ class Activities extends Controller {
|
||||
'bcc' => $bccs,
|
||||
'subject' => $subject,
|
||||
'message' => $message,
|
||||
'attachment' => $attachment,
|
||||
'attachment' => $attachmentForMailer,
|
||||
'certificates' => $certificates
|
||||
];
|
||||
$jsonData = json_encode($data);
|
||||
|
||||
@ -106,7 +106,7 @@ foreach ($emails as $data) {
|
||||
<div class="row mb-2">
|
||||
<label for="attachment" class="col-sm-2 col-form-label">Attachment list</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control form-control-sm" name="attachment" id="attachment" value="<?=$activities[0]['attachment']?>" >
|
||||
<input type="text" class="form-control form-control-sm" name="attachment" id="attachment" value="<?=$attachment?>" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -13,6 +13,7 @@ function resolve_attachment_relative_path($filename) {
|
||||
}
|
||||
|
||||
$normalized = str_replace('\\', '/', ltrim($filename, '/'));
|
||||
$normalized = preg_replace('#^(?:upload/)+#', 'upload/', $normalized);
|
||||
if (strpos($normalized, 'upload/') === 0) {
|
||||
return $normalized;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user