
21 changed files with 650 additions and 0 deletions
@ -1 +1,21 @@
|
||||
* text=auto !eol |
||||
/README.md -text |
||||
css/reservations_multiples.css -text |
||||
formulaires/configurer_reservations_multiples.html -text svneol=unset#text/plain |
||||
formulaires/configurer_reservations_multiples.php -text |
||||
inclure/auteurs_multiples.html -text svneol=unset#text/plain |
||||
inclure/inc-reservation_connection_extras.html -text svneol=unset#text/plain |
||||
inclure/nombre_multiples.html -text svneol=unset#text/plain |
||||
lang/paquet-reservations_multiples_fr.php -text |
||||
lang/reservations_multiples_en.php -text |
||||
lang/reservations_multiples_fr.php -text |
||||
/paquet.xml -text svneol=unset#text/plain |
||||
prive/squelettes/contenu/configurer_reservations_multiples.html -text svneol=unset#text/plain |
||||
prive/themes/spip/images/enlever-16.png -text |
||||
prive/themes/spip/images/reservations_multiples-128.png -text |
||||
prive/themes/spip/images/reservations_multiples-32.png -text |
||||
prive/themes/spip/images/reservations_multiples-64.png -text |
||||
promotions/reservation_multiple_simple.php -text |
||||
/reservations_multiples_fonctions.php -text |
||||
/reservations_multiples_pipelines.php -text |
||||
scripts/reservations_multiples.js -text |
||||
|
@ -0,0 +1,4 @@
|
||||
reservations_multiples |
||||
====================== |
||||
|
||||
Developement |
@ -0,0 +1,4 @@
|
||||
.choix.quantite label, .choix.quantite .explication, .choix.quantite label, .choix.quantite input { |
||||
float:left; |
||||
margin-right: 0.5em; |
||||
} |
@ -0,0 +1,49 @@
|
||||
<?php |
||||
|
||||
// Sécurité |
||||
if (!defined('_ECRIRE_INC_VERSION')) |
||||
return; |
||||
|
||||
function formulaires_configurer_reservations_multiples_saisies_dist() { |
||||
|
||||
include_spip('inc/config'); |
||||
$config = lire_config('reservations_multiples', array()); |
||||
|
||||
return array( array( |
||||
'saisie' => 'fieldset', |
||||
'options' => array( |
||||
'nom' => 'fieldset_parametres', |
||||
'label' => _T('reservations_multiples:cfg_titre_parametrages') |
||||
), |
||||
'saisies' => array( |
||||
array( |
||||
'saisie' => 'oui_non', |
||||
'options' => array( |
||||
'nom' => 'multiple_personnes', |
||||
'label' => _T('reservations_multiples:label_multiple_personnes'), |
||||
'explication' => _T('reservations_multiples:explication_multiple_personnes'), |
||||
'defaut' => $config['multiple_personnes'], |
||||
) |
||||
), |
||||
array( |
||||
'saisie' => 'input', |
||||
'options' => array( |
||||
'nom' => 'nombre_limite', |
||||
'label' => _T('reservations_multiples:nombre_limite'), |
||||
'afficher_si' => '@multiple_personnes@ == "on"', |
||||
'defaut' => $config['nombre_limite'], |
||||
) |
||||
), |
||||
array( |
||||
'saisie' => 'oui_non', |
||||
'options' => array( |
||||
'nom' => 'multiple_inscriptions', |
||||
'label' => _T('reservations_multiples:label_multiple_inscriptions'), |
||||
'explication' => _T('reservations_multiples:explication_multiple_inscriptions'), |
||||
'defaut' => $config['multiple_personnes'], |
||||
) |
||||
), |
||||
), |
||||
),); |
||||
} |
||||
?> |
@ -0,0 +1,46 @@
|
||||
#SET{limit,#CONFIG{reservations_multiples/nombre_limite}} |
||||
<ul class="auteurs_multiples_0" id="auteurs_multiples"> |
||||
<li class="editer label"><label><:reservations_multiples:label_reserver_amie:></label> |
||||
<B_extras> |
||||
<li class="editer multiples_personnes"> |
||||
<BOUCLE_extras(DATA){source tableau, #ENV{ajouter}}> |
||||
<ul id="auteurs_multiples_#COMPTEUR_BOUCLE"> |
||||
<INCLURE{fond=inclure/inc-reservation_connection_extras, |
||||
numero=#COMPTEUR_BOUCLE, |
||||
champs_extras_auteurs=#ENV{champs_extras_auteurs_add}|table_valeur{#CLE},env}/> |
||||
|
||||
<li class="editer enlever"> |
||||
<div class="choix"> |
||||
<input type="image" name="nr_auteurs" value="[(#COMPTEUR_BOUCLE|=={1}|?{nada,#COMPTEUR_BOUCLE|moins{1}})]" src="#CHEMIN_IMAGE{enlever-16.png}" [ (#HTML5)formnovalidate] alt="plus"/> |
||||
<label><:reservations_multiples:label_enlever:></label> |
||||
</div> |
||||
</li> |
||||
</ul> |
||||
</BOUCLE_extras> |
||||
[(#GET{limit}|>{#TOTAL_BOUCLE}|oui|ou{#GET{limit}|non})<li> |
||||
<div class="choix"> |
||||
<input type="image" name="nr_auteurs" value="[(#COMPTEUR_BOUCLE|plus{1})]"[ src="#CHEMIN_IMAGE{ajouter-16.png}" (#HTML5)formnovalidate] alt ="minus"/> |
||||
<label><:reservations_multiples:label_ajouter:></label> |
||||
</div> |
||||
</li>] |
||||
</ul> |
||||
</li> |
||||
</B_extras> |
||||
<li class="editer ajouter"> |
||||
<div class="choix"> |
||||
<input type="image" value="1" name="nr_auteurs" src="#CHEMIN_IMAGE{ajouter-16.png}" [ (#HTML5)formnovalidate] alt ="minus"/> |
||||
<label><:reservations_multiples:label_ajouter:></label> |
||||
</div> |
||||
</li> |
||||
<//B_extras> |
||||
</ul> |
||||
|
||||
<script type="text/javascript"> |
||||
|
||||
//<![CDATA[ |
||||
[(#ENV{nr_auteurs}|et{#ENV{nr_auteurs}|!={nada}}|oui) |
||||
$('html, body').animate({ |
||||
scrollTop: $("#auteurs_multiples_#ENV{nr_auteurs}").offset().top |
||||
}, 2000);] |
||||
//]]> |
||||
</script> |
@ -0,0 +1,10 @@
|
||||
|
||||
[(#SAISIE{input,nom_#NUMERO,label=<:reservation:label_nom:>,obligatoire=oui})] |
||||
|
||||
[(#SAISIE{input,email_#NUMERO,label=<:reservation:label_email:>,obligatoire=oui})] |
||||
|
||||
[(#REM)Géneration des champs extras auteurs] |
||||
|
||||
#GENERER_SAISIES{#ENV{champs_extras_auteurs}} |
||||
|
||||
|
@ -0,0 +1,7 @@
|
||||
<div class="choix quantite"> |
||||
<label for="quantite_#ID_EVENEMENT"> |
||||
<:reservations_detail:label_quantite:> |
||||
</label> |
||||
<input id="quantite_#ID_EVENEMENT" type="text" class="number" name="quantite[#ID_EVENEMENT]" value="[(#ENV{quantite}|table_valeur{#ID_EVENEMENT}|sinon{1})]"/> |
||||
<p class="explication"><:reservations_multiples:explication_quantite:></p> |
||||
</div> |
@ -0,0 +1,14 @@
|
||||
<?php |
||||
// This is a SPIP language file -- Ceci est un fichier langue de SPIP |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return; |
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array( |
||||
|
||||
// R |
||||
'reservations_multiples_description' => 'Ajoute au plugin Réservations Événement la possibilité de faire des réservations pour plusieurs personnes à la fois.', |
||||
'reservations_multiples_nom' => 'Réservations multiples', |
||||
'reservations_multiples_slogan' => 'Réserver pour plusieurs personnes à la fois', |
||||
); |
||||
|
||||
?> |
@ -0,0 +1,29 @@
|
||||
<?php |
||||
// This is a SPIP language file -- Ceci est un fichier langue de SPIP |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return; |
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array( |
||||
// C |
||||
'cfg_titre_parametrages' => 'Paramétrages', |
||||
|
||||
//L |
||||
'label_ajouter'=>'Add', |
||||
'label_enlever'=>'Remove', |
||||
'label_reserver_amie'=>'I would like to register one more person:', |
||||
|
||||
//M |
||||
'message_ok_reservations_pour'=>'Réservé pour : @noms@', |
||||
|
||||
//N |
||||
'nombre_limite' => 'Nombre limites', |
||||
'nombre_limite_explication' => 'Si vide aucune limitation', |
||||
|
||||
// R |
||||
'reservations_multiples_titre' => 'Réservations multiples', |
||||
|
||||
// T |
||||
'titre_page_configurer_reservations_multiples' => 'Réservations multiples', |
||||
); |
||||
|
||||
?> |
@ -0,0 +1,40 @@
|
||||
<?php |
||||
// This is a SPIP language file -- Ceci est un fichier langue de SPIP |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return; |
||||
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array( |
||||
|
||||
// C |
||||
'cfg_titre_parametrages' => 'Paramétrages', |
||||
|
||||
// E |
||||
'explication_multiple_inscriptions' => 'Pour chaque événement il es possible d\'indiquer le nombre de réservations', |
||||
'explication_multiple_personnes' => 'Pour chaque personne aditionnelle il est alors possible/nécessaire de renseigner ses détails personnels', |
||||
'explication_quantite' => 'Si vide, la quantité sera 1', |
||||
|
||||
//L |
||||
'label_ajouter'=>'Ajouter', |
||||
'label_enlever'=>'Enlever', |
||||
'label_multiple_inscriptions'=>'Permettre d\'indiquer le nombre d\'inscriptions', |
||||
'label_multiple_personnes'=>'Permettre l\'inscription de plusieurs personnes', |
||||
'label_reserver_amie'=>'J\'aimerai également inscrire une autre persone :', |
||||
|
||||
//M |
||||
'message_ok_reservations_pour'=>'Réservé pour : @noms@', |
||||
|
||||
//N |
||||
'nom_reservation_multiple_simple'=>'Réservation multiple simple', |
||||
'nombre_limite' => 'Nombre limites', |
||||
'nombre_limite_explication' => 'Si vide aucune limitation', |
||||
|
||||
|
||||
// R |
||||
'reservations_multiples_titre' => 'Réservations multiples', |
||||
|
||||
// T |
||||
'titre_page_configurer_reservations_multiples' => 'Réservations multiples', |
||||
'type_lien_multiple_personnes' => 'Réservation multiple, reśervation d\'origine : @reference@', |
||||
); |
||||
|
||||
?> |
@ -0,0 +1,30 @@
|
||||
<paquet |
||||
prefix="reservations_multiples" |
||||
categorie="communication" |
||||
version="1.4.0" |
||||
etat="test" |
||||
compatibilite="[3.0.16;3.1.*]" |
||||
logo="prive/themes/spip/images/reservations_multiples-64.png" |
||||
documentation="" |
||||
> |
||||
|
||||
|
||||
<nom>Réservations multiples</nom> |
||||
|
||||
<auteur lien='http://websimple.be'>Rainer</auteur> |
||||
|
||||
<licence>GNU/GPL</licence> |
||||
|
||||
<necessite nom="reservation_evenement" compatibilite="[1.19.5;]" /> |
||||
|
||||
<utilise nom="reservations_mailsubscribers" compatibilite="[1.2.4;]" /> |
||||
|
||||
<pipeline nom="recuperer_fond" inclure="reservations_multiples_pipelines.php" /> |
||||
<pipeline nom="formulaire_charger" inclure="reservations_multiples_pipelines.php" /> |
||||
<pipeline nom="formulaire_verifier" inclure="reservations_multiples_pipelines.php" /> |
||||
<pipeline nom="formulaire_traiter" inclure="reservations_multiples_pipelines.php" /> |
||||
<pipeline nom="post_insertion" inclure="reservations_multiples_pipelines.php" /> |
||||
<pipeline nom="insert_head" inclure="reservations_multiples_pipelines.php" /> |
||||
|
||||
|
||||
</paquet> |
@ -0,0 +1,7 @@
|
||||
[(#AUTORISER{configurer,_reservations_multiples}|sinon_interdire_acces)] |
||||
|
||||
<h1 class="grostitre"><:reservations_multiples:titre_page_configurer_reservations_multiples:></h1> |
||||
|
||||
<div class="ajax"> |
||||
#FORMULAIRE_CONFIGURER_RESERVATIONS_MULTIPLES |
||||
</div> |
After Width: | Height: | Size: 660 B |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
@ -0,0 +1,26 @@
|
||||
<?php |
||||
|
||||
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return; |
||||
|
||||
// Définition des champs pour le détail du formulaire promotion du plugin promotions (https://github.com/abelass/promotions) |
||||
function promotions_reservation_multiple_simple_dist($flux=''){ |
||||
return array('nom'=>_T('reservations_multiples:nom_reservation_multiple_simple')); |
||||
} |
||||
|
||||
// Définition de l'action de la promotion |
||||
function promotions_reservation_multiple_simple_action_dist($flux,$promotion=array()){ |
||||
|
||||
$nr_auteur=_request('nr_auteur'); |
||||
$nombre_auteurs=_request('nombre_auteurs'); |
||||
|
||||
//Si on est en présence de la première réservation d'une réservation multiple |
||||
if($nombre_auteurs and !$nr_auteur){ |
||||
$flux['data']['applicable']='oui'; |
||||
} |
||||
|
||||
return $flux; |
||||
} |
||||
|
||||
|
||||
?> |
@ -0,0 +1,30 @@
|
||||
<?php |
||||
/** |
||||
* Utilisations de pipelines par Réservations multiples |
||||
* |
||||
* @plugin Réservations multiples |
||||
* @copyright 2014 |
||||
* @author Rainer |
||||
* @licence GNU/GPL |
||||
* @package SPIP\Reservations_multiples\Pipelines |
||||
*/ |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) |
||||
return; |
||||
|
||||
/** |
||||
* Retourne la configuration |
||||
* |
||||
* @return array Données de la configuration |
||||
**/ |
||||
function reservations_multiples_config() { |
||||
include_spip('inc/config'); |
||||
$config = lire_config('reservations_multiples',array()); |
||||
|
||||
// Si pas de config on met le défauts |
||||
if (count($config) == 0) { |
||||
$config = array('multiple_personnes' => 'on'); |
||||
} |
||||
|
||||
return $config; |
||||
} |
@ -0,0 +1,318 @@
|
||||
<?php |
||||
/** |
||||
* Utilisations de pipelines par Réservations multiples |
||||
* |
||||
* @plugin Réservations multiples |
||||
* @copyright 2014 |
||||
* @author Rainer |
||||
* @licence GNU/GPL |
||||
* @package SPIP\Reservations_multiples\Pipelines |
||||
*/ |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) |
||||
return; |
||||
|
||||
/** |
||||
* Charge les valeurs d'un formulaire |
||||
* |
||||
* @pipeline formulaire_charger |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_formulaire_charger($flux) { |
||||
$form = $flux['args']['form']; |
||||
|
||||
//Le formulaire reservation |
||||
if ($form == 'reservation') { |
||||
$config = reservations_multiples_config(); |
||||
|
||||
// Si inscription de plusieurs personnes |
||||
if ($config['multiple_personnes'] == 'on') { |
||||
$champs_extras_auteurs_add = array(); |
||||
$ajouter = array(); |
||||
$nombre_auteurs = intval(_request('nr_auteurs')) ? _request('nr_auteurs') : (_request('nombre_auteurs') ? _request('nombre_auteurs') : ''); |
||||
if (_request('nr_auteurs') == 'nada') |
||||
$nombre_auteurs = 0; |
||||
$i = 1; |
||||
while ($i <= $nombre_auteurs) { |
||||
$nr = $i++; |
||||
$ajouter[$nr] = $nr; |
||||
$flux['data']['nom_' . $nr] = ''; |
||||
$flux['data']['email_' . $nr] = ''; |
||||
if ($flux['data']['champs_extras_auteurs']) { |
||||
//Adapter les champs extras |
||||
foreach ($flux['data']['champs_extras_auteurs'] as $key => $value) { |
||||
$flux['data'][$value['options']['nom'] . '_' . $nr] = ''; |
||||
$champs_extras_auteurs_add[$nr][$key] = $value; |
||||
$champs_extras_auteurs_add[$nr][$key]['options']['nom'] = $value['options']['nom'] . '_' . $nr; |
||||
} |
||||
} |
||||
} |
||||
$flux['data']['id_reservation_source'] = ''; |
||||
$flux['data']['type_lien'] = ''; |
||||
$flux['data']['origine_lien'] = ''; |
||||
$flux['data']['nombre_auteurs'] = $nombre_auteurs; |
||||
$flux['data']['nr_auteurs'] = ''; |
||||
$flux['data']['champs_extras_auteurs_add'] = $champs_extras_auteurs_add; |
||||
$flux['data']['ajouter'] = $ajouter; |
||||
$flux['data']['_hidden'] .= '<input type="hidden" name="nombre_auteurs" value="' . $flux['data']['nombre_auteurs'] . '">'; |
||||
} |
||||
|
||||
} |
||||
|
||||
return $flux; |
||||
} |
||||
|
||||
/** |
||||
* Vérifie les données d'un formulaire |
||||
* |
||||
* @pipeline formulaire_verifier |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_formulaire_verifier($flux) { |
||||
$form = $flux['args']['form']; |
||||
if ($form == 'reservation') { |
||||
$config = reservations_multiples_config(); |
||||
|
||||
// Si inscription de plusieurs personnes |
||||
if ($config['multiple_personnes'] == 'on') { |
||||
//enlever le message d'erreur en attendand de comnprendre d'ou vient ce message qui se met d'office |
||||
unset($flux['data']['message_erreur']); |
||||
|
||||
//Une erreur bidon pour éviter ne pas traiter le formulaire lors de modification de nombre de inscrits |
||||
if (_request('nr_auteurs')) { |
||||
$flux['data'] = array('ajouter' => 'ajouter auteurs', ); |
||||
} |
||||
elseif ($nombre = _request('nombre_auteurs')) { |
||||
include_spip('inc/saisies'); |
||||
include_spip('cextras_pipelines'); |
||||
$erreurs = array(); |
||||
|
||||
if (function_exists('champs_extras_objet')) { |
||||
$champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur')); |
||||
|
||||
//Stocker les valeurs intitiales des champs extras |
||||
foreach ($champs_extras_auteurs as $key => $value) { |
||||
$$value['options']['nom'] = _request($value['options']['nom']); |
||||
} |
||||
} |
||||
else |
||||
$champs_extras_auteurs = array(); |
||||
|
||||
//Vérification des champs additionnels |
||||
$i = 1; |
||||
while ($i <= $nombre) { |
||||
$nr = $i++; |
||||
|
||||
//les champs de bases obligatoires |
||||
$obligatoires = array( |
||||
'nom_' . $nr, |
||||
'email_' . $nr |
||||
); |
||||
|
||||
//Tester les champs de bases obligatoires |
||||
foreach ($obligatoires AS $champ) { |
||||
if (!_request($champ)) |
||||
$erreurs[$champ] = _T("info_obligatoire"); |
||||
} |
||||
|
||||
if ($email = _request('email_' . $nr)) { |
||||
include_spip('inc/filtres'); |
||||
// la validité du mail |
||||
if (!email_valide($email)) { |
||||
$erreurs['email_' . $nr] = _T('form_prop_indiquer_email'); |
||||
} |
||||
} |
||||
|
||||
//Vérifier les champs extras |
||||
foreach ($champs_extras_auteurs as $key => $value) { |
||||
|
||||
// Adapter les request pour pouvoir faire la vérification des champs extras |
||||
set_request($value['options']['nom'], _request($value['options']['nom'] . '_' . $nr)); |
||||
$e = saisies_verifier($champs_extras_auteurs); |
||||
|
||||
//Adapter le nom du champ |
||||
if (is_array($e)) { |
||||
foreach ($e AS $champ => $erreur) { |
||||
$erreurs[$champ . '_' . $nr] = $erreur; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
//Remettre les valeurs initiales |
||||
foreach ($champs_extras_auteurs as $key => $value) { |
||||
set_request($value['options']['nom'], $$value['options']['nom']); |
||||
} |
||||
$flux['data'] = array_merge($flux['data'], $erreurs); |
||||
|
||||
//remettre le message d'erreur |
||||
if (count($flux['data']) > 0) |
||||
$flux['data']['message_erreur'] = _T('reservation:message_erreur'); |
||||
} |
||||
} |
||||
} |
||||
return $flux; |
||||
} |
||||
|
||||
/** |
||||
* Traite les formulaires d'un formulaire |
||||
* |
||||
* @pipeline formulaire_traiter |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_formulaire_traiter($flux) { |
||||
$form = $flux['args']['form']; |
||||
if ($form == 'reservation' AND $nombre = _request('nombre_auteurs')) { |
||||
$config = reservations_multiples_config(); |
||||
|
||||
// Si inscription de plusieurs personnes |
||||
if ($config['multiple_personnes'] == 'on') { |
||||
$noms = array(_request('nom')); |
||||
//Enregistrement des champs additionnels |
||||
$enregistrer = charger_fonction('reservation_enregistrer', 'inc'); |
||||
|
||||
//Lister les messages de retour |
||||
preg_match('/<h3>(.*?)<\/h3>/s', $flux['data']['message_ok'], $match); |
||||
$titre = $match[0]; |
||||
|
||||
preg_match('/<p(.*?)<\/p>/s', $flux['data']['message_ok'], $match); |
||||
$intro = $match[0]; |
||||
preg_match('/<table(.*?)<\/table>/s', $flux['data']['message_ok'], $match); |
||||
|
||||
$message_ok = array($match[0]); |
||||
|
||||
if (function_exists('champs_extras_objet')) { |
||||
$champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur')); |
||||
} |
||||
else |
||||
$champs_extras_auteurs = array(); |
||||
// ne pas créer de compte spip |
||||
set_request('enregistrer', ''); |
||||
$i = 1; |
||||
|
||||
//inscription aux mailinglistes |
||||
if (test_plugin_actif('reservations_mailsubscribers')) { |
||||
$inscription = charger_fonction('inscription_mailinglinglistes', 'inc'); |
||||
} |
||||
|
||||
//Ajouter les références à la réservation d'origine |
||||
set_request('type_lien', 'multiple_personnes'); |
||||
set_request('origine_lien', 'reservations_multiples'); |
||||
|
||||
//Enregistrer les réservations |
||||
while ($i <= $nombre) { |
||||
//recupérer les champs par défaut |
||||
$nr = $i++; |
||||
$email = _request('email_' . $nr); |
||||
set_request('nom', _request('nom_' . $nr)); |
||||
set_request('email', $email); |
||||
$noms[] = _request('nom'); |
||||
|
||||
//Vérifier les champs extras |
||||
foreach ($champs_extras_auteurs as $key => $value) { |
||||
|
||||
// récupérer les champs extras |
||||
set_request($value['options']['nom'], _request($value['options']['nom'] . '_' . $nr)); |
||||
} |
||||
|
||||
|
||||
set_request('nr_auteur', $nr); |
||||
|
||||
//Enregistrer |
||||
$flux['data'] = $enregistrer('', '', '', $champs_extras_auteurs); |
||||
preg_match('/<table(.*?)<\/table>/s', $flux['data']['message_ok'], $match); |
||||
$message_ok[] = $match['0']; |
||||
$nr = 0; |
||||
|
||||
//inscription aux mailinglistes |
||||
if (test_plugin_actif('reservations_mailsubscribers')) { |
||||
$inscription($email); |
||||
} |
||||
|
||||
} |
||||
//Recopiler le messages de retour |
||||
$m = $intro; |
||||
$m .= $titre; |
||||
foreach ($message_ok AS $message) { |
||||
$m .= "<h4>$noms[$nr]</h4>"; |
||||
$m .= $message; |
||||
$nr++; |
||||
} |
||||
$flux['data']['message_ok'] = $m; |
||||
} |
||||
} |
||||
return $flux; |
||||
} |
||||
|
||||
/** |
||||
* Intervient sur un squelette |
||||
* |
||||
* @pipeline recuperer_fond |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_recuperer_fond($flux) { |
||||
$fond = $flux['args']['fond']; |
||||
$contexte = $flux['data']['contexte']; |
||||
|
||||
if ($fond == 'formulaires/inc-reservation_connection') { |
||||
$config = reservations_multiples_config(); |
||||
|
||||
if ($config['multiple_personnes'] == 'on') { |
||||
$auteurs_multiples = recuperer_fond('inclure/auteurs_multiples', $contexte, array('ajax' => 'oui')); |
||||
$flux['data']['texte'] .= $auteurs_multiples; |
||||
} |
||||
} |
||||
if ($fond == 'formulaires/inc-reservation_evenements_champ' or $fond == 'formulaires/inc-reservation_evenements_declinaisons_prix') { |
||||
$config = reservations_multiples_config(); |
||||
if ($config['multiple_inscriptions'] == 'on') { |
||||
$flux['data']['texte'] .= recuperer_fond('inclure/nombre_multiples', $contexte);; |
||||
} |
||||
} |
||||
|
||||
return $flux; |
||||
} |
||||
|
||||
/** |
||||
* Insère des donnés dans le head public |
||||
* |
||||
* @pipeline insert_head |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_insert_head($flux) { |
||||
$script = find_in_path('scripts/reservations_multiples.js'); |
||||
$css = find_in_path('css/reservations_multiples.css'); |
||||
$flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n" . "<script type='text/javascript' src='$script'> </script>"; |
||||
|
||||
return $flux; |
||||
} |
||||
|
||||
/** |
||||
* Intervient après l'enregistrement |
||||
* |
||||
* @pipeline post_insertion |
||||
* @param array $flux Données du pipeline |
||||
* @return array Données du pipeline |
||||
**/ |
||||
function reservations_multiples_post_insertion($flux) { |
||||
|
||||
if ($flux['args']['table'] == 'spip_reservations' AND _request('nombre_auteurs')) { |
||||
spip_log('nr : '._request('nr_auteur'),'teste'); |
||||
$id_reservation = $flux['args']['id_objet']; |
||||
// premier enregisté, on met l'id_reservation_source |
||||
if(!_request('nr_auteur') > 0){ |
||||
set_request('id_reservation_base', $id_reservation); |
||||
} |
||||
//Puis on recorrige l'id_reservation dans la session |
||||
else { |
||||
$id_reservation_source = _request('id_reservation_base'); |
||||
set_request('id_reservation_source', $id_reservation_source ); |
||||
} |
||||
} |
||||
|
||||
return $flux; |
||||
} |
@ -0,0 +1,16 @@
|
||||
// Cacher le champ quantité quand l'événement n'est pas sélectionné
|
||||
$(document).ready(function() { |
||||
|
||||
var container = '.choix.quantite'; |
||||
|
||||
$(container).hide(); |
||||
|
||||
$("input.evenement:checked", $(this)).each(function() { |
||||
$(this).parent('div').next(container).show(container); |
||||
}); |
||||
|
||||
$('input.evenement').click(function() { |
||||
$(this).parent('div').next(container).toggle(container); |
||||
}); |
||||
|
||||
}); |
Loading…
Reference in new issue