Skip to content
Snippets Groups Projects
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');
}