modify('first day of this month'); $offset = (int)$first->format('N') - 1; $days = (int)$cursor->format('t'); $trailing = (7 - (($offset + $days) % 7)) % 7; $weekStart = $weekCursor->modify('monday this week'); $weekEnd = $weekStart->modify('+6 days'); $byDay = []; foreach ($items as $item) { $byDay[substr($item['instance_starts_at'], 0, 10)][] = $item; }$edit = $editItem ?? []; $editStart = !empty($edit['starts_at']) ? new DateTimeImmutable($edit['starts_at']) : null; $colors = ['appointment' => 'blue','veterinary' => 'red','transport' => 'orange','pre_adoption' => 'purple','task' => 'green','other' => 'secondary','vaccine' => 'cyan','deworming' => 'yellow','treatment_start' => 'teal','treatment_end' => 'pink']; $sourceTabs = ['vaccine' => 'tab-vac','deworming' => 'tab-med','treatment_start' => 'tab-trt','treatment_end' => 'tab-trt']; $legend = ['organization' => ['appointment' => '#206bc4','veterinary' => '#d63939','transport' => '#f76707','pre_adoption' => '#ae3ec9','task' => '#2fb344'],'medical' => ['vaccine' => '#17a2b8','deworming' => '#f59f00','treatment_start' => '#0ca678','treatment_end' => '#d6336c']]; ?>
×
$entries): ?>
$color): ?>
🔄

format('n') - 1] . ' ' . $cursor->format('Y') : $cursor->format('F Y')) ?>

format('Y-m-') . str_pad((string)$day, 2, '0', STR_PAD_LEFT); ?>
format('Y-m')) . '&edit=' . (int)$item['id']; ?>🐾

$weekStart->format('d/m/Y'),'end' => $weekEnd->format('d/m/Y')])) ?>

$label):$weekDate = $weekStart->modify('+' . $i . ' days'); ?>
format('d/m')) ?>
modify('+' . $i . ' days'); $date = $weekDate->format('Y-m-d'); ?>
format('d/m')) ?>
format('Y-m-d')) . '&edit=' . (int)$item['id']; ?>🐾

' . h($item['animal_name']) . '' : '—' ?>