inscription_form.php 21.61 KiB
<?php
// Ce script est déclenché soit par un visiteur du site via le shortcode
// sardin_inscription, soit via la page d'admin du tournoi lorsque celui-ci est
// publié.
if (!defined('SARDIN_CONFIG')) exit;
// Initialisation des données à afficher, validation éventuelle et affichage
function sardin_inscription_form($tournament) {
$group = null;
if (@$_REQUEST['sardin_group_token']) {
$group = sardin_get_group_by_credential(
sanitize_text_field($_REQUEST['sardin_group_token']),
$tournament);
if (!$group) {
sardin_not_found();
return;
}
}
if (!$group) {
$group = array(
'group_id' => '',
'credential' => '',
'arrival' => $tournament['start'],
'lodging' => '',
'email' => '',
'phone' => '',
'comment' => '',
'participants' => array(),
'new' => array(
'name' => '',
'catcode' => 'N',
'options' => array(),
),
'total' => 0,
);
}
$categories = sardin_get_categories($tournament, true);
$group['categories'] = $categories;
$group['lodgings'] = sardin_get_lodgings($tournament, $categories);
$group['options'] = sardin_get_options($tournament, $categories);
$start = new DateTime($tournament['start']);
$end = new DateTime($tournament['end']);
while ($start < $end) {
$sql_date = $start->format('Y-m-d');
$group['dates'][$sql_date] = sardin_html_date($sql_date, true);
$start->add(new DateInterval('P1D'));
}
$mail = null;
$mail_report = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
list ($success_msg, $errors) = sardin_validate_inscription(
$tournament, $group);
if ($success_msg
&& isset($_POST['sardin_mail_confirmation'])
&& $group['email']) {
$mail = sardin_send_confirmation_mail($tournament, $group);
$mail_report = $mail
? "Un mail de confimation a été envoyé à <code>{$group['email']}</code>"
: "Envoi du mail de confirmation échoué";
}
} else {
list($success_msg, $errors) = array('', array());
}
include(plugin_dir_path(__FILE__) . 'inscription_form.html');
}