events yogibook

This commit is contained in:
2026-09-17 10:22:30 +02:00
parent 434eb8bc48
commit 5df1f2d261
26 changed files with 4394 additions and 30 deletions
+58
View File
@@ -0,0 +1,58 @@
<?php
/**
* STUB mailer del modulo Eventi.
*
* Per ora NON invia davvero: registra solo un log, così tutto il flusso
* (annullamento + scelta "invia mail") è già funzionante end-to-end.
* Nello step successivo definiamo il TEMPLATE e attiviamo l'invio reale via
* PHPMailer, leggendo le variabili MAIL_* dal .env che hai già.
*
* Config disponibile nel .env:
* MAIL_HOST=mail.yogasoul.it MAIL_PORT=465 MAIL_ENCRYPTION=ssl
* MAIL_USERNAME=info@yogasoul.it MAIL_PASSWORD=...
* MAIL_FROM_ADDRESS=info@yogasoul.it MAIL_FROM_NAME="YogiBook"
*/
if (!function_exists('sendEventCancellationMail')) {
/**
* @param string $toEmail Email destinatario
* @param string $toName Nome destinatario
* @param array $event Riga completa della tabella events
*/
function sendEventCancellationMail(string $toEmail, string $toName, array $event): bool
{
// ------------------------------------------------------------------
// STEP SUCCESSIVO: sostituire il log qui sotto con l'invio reale.
// Scheletro PHPMailer (richiede: composer require phpmailer/phpmailer
// e un modo per leggere il .env, es. vlucas/phpdotenv oppure il
// bootstrap Laravel già presente nel progetto):
//
// use PHPMailer\PHPMailer\PHPMailer;
// $mail = new PHPMailer(true);
// $mail->isSMTP();
// $mail->Host = getenv('MAIL_HOST');
// $mail->SMTPAuth = true;
// $mail->Username = getenv('MAIL_USERNAME');
// $mail->Password = getenv('MAIL_PASSWORD');
// $mail->SMTPSecure = getenv('MAIL_ENCRYPTION'); // 'ssl'
// $mail->Port = (int) getenv('MAIL_PORT'); // 465
// $mail->setFrom(getenv('MAIL_FROM_ADDRESS'), getenv('MAIL_FROM_NAME'));
// $mail->addAddress($toEmail, $toName);
// $mail->isHTML(true);
// $mail->Subject = 'Evento annullato: ' . $event['title'];
// $mail->Body = '...TEMPLATE HTML...';
// return $mail->send();
// ------------------------------------------------------------------
error_log(sprintf(
'[event mail] STUB annullamento -> %s (%s) per evento #%d "%s"',
$toEmail,
$toName,
(int) $event['id'],
$event['title'] ?? ''
));
return true;
}
}
+60 -30
View File
@@ -70,63 +70,93 @@
</li>
<?php if (Auth::user()->hasRole('Admin')): ?>
<li class="menu-title" data-key="t-applications">Amministrazione</li>
<li>
<a href="admin-services.php" class="">
<i class="bx bx-edit-alt icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Servizi</span>
</a>
</li>
<!-- Classi & Prenotazioni -->
<li class="menu-title" data-key="t-admin-classi">Classi &amp; Prenotazioni</li>
<li>
<a href="adminpanel.php" class="">
<i class="bx bxs-school icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Classi</span>
<span class="menu-item">Classi</span>
</a>
</li>
<li>
<a href="admin-services.php" class="">
<i class="bx bx-edit-alt icon nav-icon"></i>
<span class="menu-item">Servizi</span>
</a>
</li>
<li>
<a href="pendingbookedclass.php" class="">
<i class="bx bx-time-five icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Pending/Waiting</span>
<span class="menu-item">Pending/Waiting</span>
</a>
</li>
<li>
<a href="dayoff.php" class="">
<i class="bx bx-power-off icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Day Off</span>
<span class="menu-item">Day Off</span>
</a>
</li>
<!-- Eventi -->
<li class="menu-title" data-key="t-admin-eventi">Eventi</li>
<li>
<a href="events.php" class="">
<i class="bx bx-calendar-star icon nav-icon"></i>
<span class="menu-item">Eventi</span>
</a>
</li>
<li>
<a href="event_locations.php" class="">
<i class="bx bx-map icon nav-icon"></i>
<span class="menu-item">Sedi</span>
</a>
</li>
<!-- Ordini -->
<li class="menu-title" data-key="t-admin-ordini">Ordini</li>
<li>
<a href="orderbooklist.php" class="">
<i class="bx bx-list-check icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Order Pending</span>
</a>
</li>
<li>
<a href="certificati.php" class="">
<i class="bx bx-certification icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Certificati</span>
</a>
</li>
<li>
<a href="situationusers.php" class="">
<i class="bx bx-bar-chart-alt-2 icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Situazione</span>
<span class="menu-item">Order Pending</span>
</a>
</li>
<li>
<a href="ordersummary.php" class="">
<i class="bx bx-receipt icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Sommario Ordini</span>
</a>
</li>
<li>
<a href="optionsschool.php" class="">
<i class="bx bx-receipt icon nav-icon"></i>
<span class="menu-item" data-key="t-email">Opzioni Scuola</span>
<span class="menu-item">Sommario Ordini</span>
</a>
</li>
<!-- Report & Certificati -->
<li class="menu-title" data-key="t-admin-report">Report &amp; Certificati</li>
<li>
<a href="situationusers.php" class="">
<i class="bx bx-bar-chart-alt-2 icon nav-icon"></i>
<span class="menu-item">Situazione</span>
</a>
</li>
<li>
<a href="certificati.php" class="">
<i class="bx bx-certification icon nav-icon"></i>
<span class="menu-item">Certificati</span>
</a>
</li>
<!-- Impostazioni -->
<li class="menu-title" data-key="t-admin-settings">Impostazioni</li>
<li>
<a href="optionsschool.php" class="">
<i class="bx bx-slider-alt icon nav-icon"></i>
<span class="menu-item">Opzioni Scuola</span>
</a>
</li>
<!-- Template (demo) -->
<li class="menu-title" data-key="t-applications">Template</li>
<li>