Merge branch 'fixes/fix-get-file-id-agenda' into releases/release-h2f

This commit is contained in:
Tiavina 2025-03-24 12:46:05 +03:00
commit 737e30fe71

View File

@ -30,13 +30,13 @@ class VCalendarHelpers
$datetimeString = $matches[2]; $datetimeString = $matches[2];
$datetimeValue = new DateTime($datetimeString, new DateTimeZone($dateTz)); $datetimeValue = new DateTime($datetimeString, new DateTimeZone($dateTz));
return $datetimeValue; return $datetimeValue;
} } catch (Exception $e) {
catch(Exception $e){
return null; return null;
} }
} }
public static function GetStartAndEndTimeFromVCalendarString(string $vCalendarString){ public static function GetStartAndEndTimeFromVCalendarString(string $vCalendarString)
{
$startTimeValue = ""; $startTimeValue = "";
$endTimeValue = ""; $endTimeValue = "";
if ($vCalendarString != "") { if ($vCalendarString != "") {
@ -55,28 +55,33 @@ class VCalendarHelpers
]; ];
} }
public static function ReadVCalendarDataBlob($vCalendarData){ public static function ReadVCalendarDataBlob($vCalendarData)
{
if (is_resource($vCalendarData)) { if (is_resource($vCalendarData)) {
return stream_get_contents($vCalendarData); return stream_get_contents($vCalendarData);
} }
return $vCalendarData; return $vCalendarData;
} }
public static function hasAttachment(string $vCalendarString) : bool{ public static function hasAttachment(string $vCalendarString): bool
{
return str_contains($vCalendarString, 'ATTACH;FMTTYPE'); return str_contains($vCalendarString, 'ATTACH;FMTTYPE');
} }
public static function extractAttachments(string $vCalendarString): array { public static function extractAttachments(string $vCalendarString): array
{
$attachments = []; $attachments = [];
preg_match_all('/ATTACH;FMTTYPE=([^;]+);FILENAME=([^;]+);X-NC-FILE-ID=([^;]+);/', $vCalendarString, $matches, PREG_SET_ORDER); $vCalendarString = preg_replace("/\r\n|\n|\r/", "\n", $vCalendarString);
$vCalendarString = preg_replace("/\n[ \t]/", "", $vCalendarString);
preg_match_all('/ATTACH;FMTTYPE=([^;]+);FILENAME=([^;]+);X-NC-FILE-ID=(\d+)/', $vCalendarString, $matches, PREG_SET_ORDER);
foreach ($matches as $match) { foreach ($matches as $match) {
$attachments[] = [ $attachments[] = [
'type' =>explode("/" , $match[1])[0], // Extrait 'image' de 'image/png' 'type' => explode("/", $match[1])[0],
'mime_type' =>$match[1], // Extrait 'image' de 'image/png' 'mime_type' => $match[1],
'name' => trim($match[2], '/'), 'name' => trim($match[2], '/'),
'file_id' => (int) $match[3], 'file_id' => (int) $match[3],
]; ];
} }
return $attachments; return $attachments;
} }
} }