2011-05-15 01:32:47 +02:00
< ? php
2014-09-04 17:52:18 +02:00
/**
* This software is governed by the CeCILL - B license . If a copy of this license
* is not distributed with this file , you can obtain one at
* http :// www . cecill . info / licences / Licence_CeCILL - B_V1 - en . txt
*
* Authors of STUdS ( initial project ) : Guilhem BORGHESI ( borghesi @ unistra . fr ) and Raphaël DROZ
2014-11-26 23:47:40 +01:00
* Authors of Framadate / OpenSondate : Framasoft ( https :// github . com / framasoft https :// git . framasoft . org / framasoft / framadate / )
2014-09-04 17:52:18 +02:00
*
2014-07-04 11:21:31 +02:00
* =============================
2014-09-04 17:52:18 +02:00
*
* Ce logiciel est régi par la licence CeCILL - B . Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l ' obtenir sur
* http :// www . cecill . info / licences / Licence_CeCILL - B_V1 - fr . txt
*
2014-07-04 11:21:31 +02:00
* Auteurs de STUdS ( projet initial ) : Guilhem BORGHESI ( borghesi @ unistra . fr ) et Raphaël DROZ
2014-11-26 23:47:40 +01:00
* Auteurs de Framadate / OpenSondage : Framasoft ( https :// github . com / framasoft https :// git . framasoft . org / framasoft / framadate / )
2014-07-04 11:21:31 +02:00
*/
2015-01-05 23:30:47 +01:00
use Framadate\Services\InputService ;
2014-12-25 00:55:52 +01:00
use Framadate\Services\LogService ;
use Framadate\Services\PollService ;
use Framadate\Services\MailService ;
2014-12-29 21:54:07 +01:00
use Framadate\Services\PurgeService ;
2014-12-25 00:55:52 +01:00
use Framadate\Utils ;
use Framadate\Choice ;
2014-09-04 17:52:18 +02:00
2014-12-03 21:08:08 +01:00
include_once __DIR__ . '/app/inc/init.php' ;
2011-05-15 01:32:47 +02:00
2014-12-25 00:55:52 +01:00
/* Service */
/*---------*/
2015-01-06 23:52:52 +01:00
$logService = new LogService ();
2014-12-25 00:55:52 +01:00
$pollService = new PollService ( $connect , $logService );
$mailService = new MailService ( $config [ 'use_smtp' ]);
2014-12-29 21:54:07 +01:00
$purgeService = new PurgeService ( $connect , $logService );
2015-01-05 23:30:47 +01:00
$inputService = new InputService ();
2011-05-15 01:32:47 +02:00
2013-03-13 18:29:48 +01:00
if ( is_readable ( 'bandeaux_local.php' )) {
2014-09-04 17:52:18 +02:00
include_once ( 'bandeaux_local.php' );
2011-05-15 03:56:54 +02:00
} else {
2014-09-04 17:52:18 +02:00
include_once ( 'bandeaux.php' );
2011-05-15 01:32:47 +02:00
}
2014-12-06 19:42:01 +01:00
// Step 1/4 : error if $_SESSION from info_sondage are not valid
2014-12-25 00:55:52 +01:00
if ( ! isset ( $_SESSION [ 'form' ] -> title ) || ! isset ( $_SESSION [ 'form' ] -> admin_name ) || ( $config [ 'use_smtp' ] && ! isset ( $_SESSION [ 'form' ] -> admin_mail ))) {
2014-09-04 17:52:18 +02:00
2015-03-22 23:33:03 +01:00
Utils :: print_header ( __ ( 'Error\\Error!' ) );
bandeau_titre ( __ ( 'Error\\Error!' ));
2014-09-04 17:52:18 +02:00
echo '
< div class = " alert alter-danger " >
2015-03-22 23:33:03 +01:00
< h3 > ' . __(' Error\\You haven\ 't filled the first section of the poll creation.' ) . ' !</ h3 >
< p > ' . __(' Error\\Back to the homepage of ') . ' ' . ' < a href = " ' . Utils::get_server_name() . ' " > ' . NOMAPPLICATION . ' </ a >.</ p >
2014-09-04 17:52:18 +02:00
</ div > ' ;
2014-12-12 13:43:43 +01:00
2014-09-04 17:52:18 +02:00
bandeau_pied ();
} else {
2015-01-04 18:49:57 +01:00
$min_time = time () + 86400 ;
$max_time = time () + ( 86400 * $config [ 'default_poll_duration' ]);
2014-09-04 17:52:18 +02:00
// Step 4 : Data prepare before insert in DB
2014-12-12 13:43:43 +01:00
if ( ! empty ( $_POST [ 'confirmation' ])) {
2014-10-21 01:31:26 +02:00
2014-12-05 01:08:38 +01:00
// Define expiration date
2015-01-04 01:36:55 +01:00
$enddate = filter_input ( INPUT_POST , 'enddate' , FILTER_VALIDATE_REGEXP , [ 'options' => [ 'regexp' => '#^[0-9]{2}/[0-9]{2}/[0-9]{4}$#' ]]);
if ( ! empty ( $enddate )) {
$registredate = explode ( '/' , $enddate );
if ( is_array ( $registredate ) && count ( $registredate ) == 3 ) {
$time = mktime ( 0 , 0 , 0 , $registredate [ 1 ], $registredate [ 0 ], $registredate [ 2 ]);
if ( $time < $min_time ) {
$_SESSION [ 'form' ] -> end_date = $min_time ;
} elseif ( $max_time < $time ) {
$_SESSION [ 'form' ] -> end_date = $max_time ;
} else {
$_SESSION [ 'form' ] -> end_date = $time ;
2014-10-21 01:31:26 +02:00
}
}
2014-12-12 13:43:43 +01:00
}
2015-01-04 01:36:55 +01:00
if ( empty ( $_SESSION [ 'form' ] -> end_date )) {
2014-12-05 01:08:38 +01:00
// By default, expiration date is 6 months after last day
2015-01-04 01:36:55 +01:00
$_SESSION [ 'form' ] -> end_date = $max_time ;
2014-10-21 01:31:26 +02:00
}
2014-12-12 13:43:43 +01:00
2014-12-06 19:42:01 +01:00
// Insert poll in database
2014-12-25 00:55:52 +01:00
$ids = $pollService -> createPoll ( $_SESSION [ 'form' ]);
$poll_id = $ids [ 0 ];
$admin_poll_id = $ids [ 1 ];
// Send confirmation by mail if enabled
if ( $config [ 'use_smtp' ] === true ) {
2015-03-22 23:33:03 +01:00
$message = __ ( " Mail \\ This is the message you have to send to the people you want to poll. \n Now, you have to send this message to everyone you want to poll. " );
2014-12-25 00:55:52 +01:00
$message .= " \n \n " ;
2015-03-22 23:33:03 +01:00
$message .= stripslashes ( html_entity_decode ( $_SESSION [ 'form' ] -> admin_name , ENT_QUOTES , 'UTF-8' )) . ' ' . __ ( 'Mail\\hast just created a poll called' ) . ' : "' . stripslashes ( htmlspecialchars_decode ( $_SESSION [ 'form' ] -> title , ENT_QUOTES )) . " \" . \n " ;
$message .= __ ( 'Mail\\Thanks for filling the poll at the link above' ) . " : \n \n %s \n \n " . __ ( 'Mail\\Thanks for your confidence.' ) . " \n " . NOMAPPLICATION ;
2014-12-25 00:55:52 +01:00
2015-03-22 23:33:03 +01:00
$message_admin = __ ( " Mail \\ This message should NOT be sent to the polled people. It is private for the poll's creator. \n \n You can now modify it at the link above " );
$message_admin .= " : \n \n " . " %s \n \n " . __ ( 'Mail\\Thanks for your confidence.' ) . " \n " . NOMAPPLICATION ;
2014-12-25 00:55:52 +01:00
$message = sprintf ( $message , Utils :: getUrlSondage ( $poll_id ));
$message_admin = sprintf ( $message_admin , Utils :: getUrlSondage ( $admin_poll_id , true ));
if ( $mailService -> isValidEmail ( $_SESSION [ 'form' ] -> admin_mail )) {
2015-03-22 23:33:03 +01:00
$mailService -> send ( $_SESSION [ 'form' ] -> admin_mail , '[' . NOMAPPLICATION . '][' . __ ( 'Mail\\Author\'s message' ) . '] ' . __ ( 'Generic\\Poll' ) . ' : ' . stripslashes ( htmlspecialchars_decode ( $_SESSION [ 'form' ] -> title , ENT_QUOTES )), $message_admin );
$mailService -> send ( $_SESSION [ 'form' ] -> admin_mail , '[' . NOMAPPLICATION . '][' . __ ( 'Mail\\For sending to the polled users' ) . '] ' . __ ( 'Generic\\Poll' ) . ' : ' . stripslashes ( htmlspecialchars_decode ( $_SESSION [ 'form' ] -> title , ENT_QUOTES )), $message );
2014-12-25 00:55:52 +01:00
}
}
2014-12-12 13:43:43 +01:00
2014-12-04 20:53:16 +01:00
// Clean Form data in $_SESSION
2014-12-03 21:08:08 +01:00
unset ( $_SESSION [ 'form' ]);
2014-12-04 20:53:16 +01:00
// Delete old polls
2014-12-29 21:54:07 +01:00
$purgeService -> purgeOldPolls ();
2014-12-12 13:43:43 +01:00
2014-12-04 20:53:16 +01:00
// Redirect to poll administration
header ( 'Location:' . Utils :: getUrlSondage ( $admin_poll_id , true ));
2014-12-03 21:08:08 +01:00
exit ;
2013-03-13 18:29:48 +01:00
2011-05-15 03:56:54 +02:00
} else {
2014-12-12 13:43:43 +01:00
if ( ! empty ( $_POST [ 'days' ])) {
2014-12-03 21:08:08 +01:00
// Clear previous choices
$_SESSION [ 'form' ] -> clearChoices ();
for ( $i = 0 ; $i < count ( $_POST [ 'days' ]); $i ++ ) {
$day = $_POST [ 'days' ][ $i ];
2014-12-12 13:43:43 +01:00
2014-12-03 21:08:08 +01:00
if ( ! empty ( $day )) {
// Add choice to Form data
$time = mktime ( 0 , 0 , 0 , substr ( $_POST [ " days " ][ $i ], 3 , 2 ), substr ( $_POST [ " days " ][ $i ], 0 , 2 ), substr ( $_POST [ " days " ][ $i ], 6 , 4 ));
$choice = new Choice ( $time );
$_SESSION [ 'form' ] -> addChoice ( $choice );
2015-01-05 23:30:47 +01:00
$schedules = $inputService -> filterArray ( $_POST [ 'horaires' . $i ], FILTER_DEFAULT );
2014-12-03 21:08:08 +01:00
for ( $j = 0 ; $j < count ( $schedules ); $j ++ ) {
if ( ! empty ( $schedules [ $j ])) {
2015-01-07 23:16:42 +01:00
$choice -> addSlot ( strip_tags ( $schedules [ $j ]));
2014-09-04 17:52:18 +02:00
}
}
}
2011-05-15 05:56:11 +02:00
}
2011-05-15 03:56:54 +02:00
}
}
2011-05-15 01:32:47 +02:00
2014-09-04 17:52:18 +02:00
//le format du sondage est DATE
2014-12-25 00:55:52 +01:00
$_SESSION [ 'form' ] -> format = 'D' ;
2014-09-04 17:52:18 +02:00
2014-12-05 01:08:38 +01:00
// Step 3/4 : Confirm poll creation
2014-12-12 13:43:43 +01:00
if ( ! empty ( $_POST [ 'choixheures' ]) && ! isset ( $_SESSION [ 'form' ] -> totalchoixjour )) {
2014-09-04 17:52:18 +02:00
2015-03-22 23:33:03 +01:00
Utils :: print_header ( __ ( 'Step 3\\Removal date and confirmation (3 on 3)' ) );
bandeau_titre ( __ ( 'Step 3\\Removal date and confirmation (3 on 3)' ));
2014-09-04 17:52:18 +02:00
2014-12-03 21:08:08 +01:00
$_SESSION [ 'form' ] -> sortChoices ();
$last_date = $_SESSION [ 'form' ] -> lastChoice () -> getName ();
2014-12-05 01:08:38 +01:00
$removal_date = $last_date + ( 86400 * $config [ 'default_poll_duration' ]);
2014-10-21 01:31:26 +02:00
2014-12-03 21:08:08 +01:00
// Summary
2014-10-21 01:31:26 +02:00
$summary = '<ul>' ;
2014-12-03 21:08:08 +01:00
foreach ( $_SESSION [ 'form' ] -> getChoices () as $choice ) {
$summary .= '<li>' . strftime ( $date_format [ 'txt_full' ], $choice -> getName ());
$first = true ;
foreach ( $choice -> getSlots () as $slots ) {
$summary .= $first ? ' : ' : ', ' ;
$summary .= $slots ;
$first = false ;
2014-10-21 01:31:26 +02:00
}
2014-12-03 21:08:08 +01:00
$summary .= '</li>' ;
2014-10-21 01:31:26 +02:00
}
$summary .= '</ul>' ;
2014-09-04 17:52:18 +02:00
2015-01-04 18:49:57 +01:00
$end_date_str = utf8_encode ( strftime ( '%d/%m/%Y' , $max_time )); //textual date
2015-01-04 01:36:55 +01:00
2014-09-04 17:52:18 +02:00
echo '
< form name = " formulaire " action = " ' . Utils::get_server_name() . 'choix_date.php " method = " POST " class = " form-horizontal " role = " form " >
< div class = " row " id = " selected-days " >
< div class = " col-md-8 col-md-offset-2 " >
2015-03-22 23:33:03 +01:00
< h3 > '. __(' Step 3 \\Confirm the creation of your poll ') .' </ h3 >
2014-10-21 01:31:26 +02:00
< div class = " well summary " >
2015-03-22 23:33:03 +01:00
< h4 > '. __(' Step 3 \\List of your choices ').' </ h4 >
2014-10-21 01:31:26 +02:00
'. $summary .'
</ div >
< div class = " alert alert-info clearfix " >
2015-03-24 18:52:06 +01:00
< p > ' . __(' Step 3 \\Your poll will be automatically removed after ') . ' ' . $config[' default_poll_duration '] . ' ' . __(' Generic\\days ') . ' ' .__(' Step 3 \\after the last date of your poll : ') . ' < br /> ' . __(' Step 3 \\You can set a closer removal date for it . ') .' </ p >
2014-10-21 01:31:26 +02:00
< div class = " form-group " >
2015-03-22 23:33:03 +01:00
< label for = " enddate " class = " col-sm-5 control-label " > '. __(' Step 3 \\Removal date : ') .' </ label >
2014-10-21 01:31:26 +02:00
< div class = " col-sm-6 " >
< div class = " input-group date " >
< span class = " input-group-addon " >< i class = " glyphicon glyphicon-calendar text-info " ></ i ></ span >
2015-03-22 23:33:03 +01:00
< input type = " text " class = " form-control " id = " enddate " data - date - format = " '. __('Date \\ dd/mm/yyyy') .' " aria - describedby = " dateformat " name = " enddate " value = " '. $end_date_str .' " size = " 10 " maxlength = " 10 " placeholder = " '. __('dd/mm/yyyy') .' " />
2014-10-21 01:31:26 +02:00
</ div >
</ div >
2015-03-24 17:59:52 +01:00
< span id = " dateformat " class = " sr-only " > ( '. __("Date\\dd/mm/yyyy") .' ) </ span >
2014-10-21 01:31:26 +02:00
</ div >
2014-09-04 17:52:18 +02:00
</ div >
< div class = " alert alert-warning " >
2015-03-22 23:33:03 +01:00
< p > '. __(' Step 3 \\Once you have confirmed the creation of your poll , you will be automatically redirected on the administration page of your poll . '). ' </ p > ' ;
2014-11-26 23:47:40 +01:00
if ( $config [ 'use_smtp' ] == true ) {
2015-03-22 23:33:03 +01:00
echo '<p>' . __ ( 'Step 3\\Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.' ) . '</p>' ;
2014-11-14 17:35:22 +01:00
}
echo '
2014-09-04 17:52:18 +02:00
</ div >
< p class = " text-right " >
2015-03-22 23:33:03 +01:00
< button class = " btn btn-default " onclick = " javascript:window.history.back(); " title = " '. __('Step 3 \\ Back to step 2') . ' " > '. __(' Generic\\Back ') . ' </ button >
< button name = " confirmation " value = " confirmation " type = " submit " class = " btn btn-success " > '. __(' Step 3 \\Create the poll ') . ' </ button >
2014-09-04 17:52:18 +02:00
</ p >
</ div >
</ div >
</ form > ' . " \n " ;
bandeau_pied ();
2014-12-05 01:08:38 +01:00
// Step 2/4 : Select dates of the poll
2011-05-15 03:56:54 +02:00
} else {
2015-03-22 23:33:03 +01:00
Utils :: print_header ( __ ( 'Step 2 date\\Poll dates (2 on 3)' ));
bandeau_titre ( __ ( 'Step 2 date\\Poll dates (2 on 3)' ));
2014-09-04 17:52:18 +02:00
echo '
< form name = " formulaire " action = " ' . Utils::get_server_name() . 'choix_date.php " method = " POST " class = " form-horizontal " role = " form " >
< div class = " row " id = " selected-days " >
2014-10-21 01:31:26 +02:00
< div class = " col-md-10 col-md-offset-1 " >
2015-03-22 23:33:03 +01:00
< h3 > '. __(' Step 2 date\\Choose the dates of your poll ') .' </ h3 >
2014-09-04 17:52:18 +02:00
< div class = " alert alert-info " >
2015-03-22 23:33:03 +01:00
< p > '. __(' Step 2 date\\To schedule an event you need to propose at least two choices ( two hours for one day or two days ) . ').' </ p >
< p > '. __(' Step 2 date\\You can add or remove additionnal days and hours with the buttons ') .' < span class = " glyphicon glyphicon-minus text-info " ></ span >< span class = " sr-only " > '. __(' Remove ') .' </ span > < span class = " glyphicon glyphicon-plus text-success " ></ span >< span class = " sr-only " > '. __(' Add ') .' </ span ></ p >
< p > '. __(' Step 2 date\\For each selected day , you can choose , or not , meeting hours ( e . g .: " 8h " , " 8:30 " , " 8h-10h " , " evening " , etc . ) ').' </ p >
2014-09-04 17:52:18 +02:00
</ div > ' ;
2014-10-21 01:31:26 +02:00
// Fields days : 3 by default
2014-12-26 23:32:53 +01:00
$nb_days = ( isset ( $_SESSION [ 'totalchoixjour' ])) ? count ( $_SESSION [ 'totalchoixjour' ]) : 3 ;
2015-03-05 18:10:41 +01:00
for ( $i = 0 ; $i < $nb_days ; $i ++ ) {
2014-12-26 23:32:53 +01:00
$day_value = isset ( $_SESSION [ 'totalchoixjour' ][ $i ]) ? strftime ( '%d/%m/%Y' , $_SESSION [ 'totalchoixjour' ][ $i ]) : '' ;
2014-09-04 17:52:18 +02:00
echo '
< fieldset >
< div class = " form-group " >
< legend >
2015-03-22 23:33:03 +01:00
< label class = " sr-only " for = " day'. $i .' " > '. __(' Generic\\Day ') .' '. ($i+1) .' </ label >
2014-09-04 17:52:18 +02:00
< div class = " input-group date col-xs-7 " >
< span class = " input-group-addon " >< i class = " glyphicon glyphicon-calendar text-info " ></ i ></ span >
2015-03-22 23:33:03 +01:00
< input type = " text " class = " form-control " id = " day'. $i .' " title = " '. __('Generic \\ Day') .' '. ( $i +1) .' " data - date - format = " '. __('Date \\ dd/mm/yyyy') .' " aria - describedby = " dateformat'. $i .' " name = " days[] " value = " '. $day_value .' " size = " 10 " maxlength = " 10 " placeholder = " '. __('Date \\ dd/mm/yyyy') .' " />
2014-09-04 17:52:18 +02:00
</ div >
2015-03-24 17:59:52 +01:00
< span id = " dateformat'. $i .' " class = " sr-only " > ( '. __(' Date\\dd / mm / yyyy ') .' ) </ span >
2014-09-04 17:52:18 +02:00
</ legend > ' . " \n " ;
// Fields hours : 3 by default
2015-03-05 18:10:41 +01:00
$moments = isset ( $_SESSION [ 'horaires' . $i ]) ? $_SESSION [ 'horaires' . $i ] : [];
for ( $j = 0 ; $j < max ( count ( $moments ), 3 ); $j ++ ) {
2014-12-26 23:32:53 +01:00
$hour_value = isset ( $_SESSION [ 'horaires' . $i ][ $j ]) ? $_SESSION [ 'horaires' . $i ][ $j ] : '' ;
2014-09-04 17:52:18 +02:00
echo '
< div class = " col-sm-2 " >
2015-03-22 23:33:03 +01:00
< label for = " d'. $i .'-h'. $j .' " class = " sr-only control-label " > '. __(' Generic\\Time ') .' '. ($j+1) .' </ label >
< input type = " text " class = " form-control hours " title = " '. $day_value .' - '. __('Generic \\ Time') .' '. ( $j +1) .' " placeholder = " '. __('Generic \\ Time') .' '. ( $j +1) .' " id = " d'. $i .'-h'. $j .' " name = " horaires'. $i .'[] " value = " '. $hour_value .' " />
2014-09-04 17:52:18 +02:00
</ div > ' . " \n " ;
}
echo '
< div class = " col-sm-2 " >< div class = " btn-group btn-group-xs " style = " margin-top: 5px; " >
2015-03-22 23:33:03 +01:00
< button type = " button " title = " '. __('Step 2 date \\ Remove an hour') .' " class = " remove-an-hour btn btn-default " >< span class = " glyphicon glyphicon-minus text-info " ></ span >< span class = " sr-only " > '. __("Remove an hour") .' </ span ></ button >
< button type = " button " title = " '. __('Step 2 date \\ Add an hour') .' " class = " add-an-hour btn btn-default " >< span class = " glyphicon glyphicon-plus text-success " ></ span >< span class = " sr-only " > '. __("Add an hour") .' </ span ></ button >
2014-09-04 17:52:18 +02:00
</ div ></ div >
</ div >
</ fieldset > ' ;
}
echo '
2014-10-21 01:31:26 +02:00
< div class = " col-md-4 " >
2015-03-22 23:33:03 +01:00
< button type = " button " id = " copyhours " class = " btn btn-default disabled " title = " '. __('Step 2 date \\ Copy hours of the first day') .' " >< span class = " glyphicon glyphicon-sort-by-attributes-alt text-info " ></ span >< span class = " sr-only " > '. __(' Step 2 date\\Copy hours of the first day ') .' </ span ></ button >
2014-09-04 17:52:18 +02:00
< div class = " btn-group btn-group " >
2015-03-22 23:33:03 +01:00
< button type = " button " id = " remove-a-day " class = " btn btn-default disabled " title = " '. __('Step 2 date \\ Remove a day') .' " >< span class = " glyphicon glyphicon-minus text-info " ></ span >< span class = " sr-only " > '. __(' Step 2 date\\Remove a day ') .' </ span ></ button >
< button type = " button " id = " add-a-day " class = " btn btn-default " title = " '. __('Step 2 date \\ Add a day') .' " >< span class = " glyphicon glyphicon-plus text-success " ></ span >< span class = " sr-only " > '. __(' Step 2 date\\Add a day ') .' </ span ></ button >
2014-09-04 17:52:18 +02:00
</ div >
</ div >
2014-10-21 01:31:26 +02:00
< div class = " col-md-8 text-right " >
2014-09-04 17:52:18 +02:00
< div class = " btn-group " >
< button type = " button " class = " btn btn-default dropdown-toggle " data - toggle = " dropdown " >
2015-03-22 23:33:03 +01:00
< span class = " glyphicon glyphicon-remove text-danger " ></ span > '. __(' Generic\\Remove ') . ' < span class = " caret " ></ span >
2014-09-04 17:52:18 +02:00
</ button >
< ul class = " dropdown-menu " role = " menu " >
2015-03-22 23:33:03 +01:00
< li >< a id = " resetdays " href = " javascript:void(0) " > '. __(' Step 2 date\\Remove all days ') .' </ a ></ li >
< li >< a id = " resethours " href = " javascript:void(0) " > '. __(' Step 2 date\\Remove all hours ') .' </ a ></ li >
2014-09-04 17:52:18 +02:00
</ ul >
</ div >
2015-03-22 23:33:03 +01:00
< a class = " btn btn-default " href = " '.Utils::get_server_name().'infos_sondage.php?choix_sondage=date " title = " '. __('Step 2 \\ Back to step 1') . ' " > '. __(' Generic\\Back ') . ' </ a >
< button name = " choixheures " value = " '. __('Generic \\ Next') .' " type = " submit " class = " btn btn-success disabled " title = " '. __('Step 2 \\ Go to step 3') . ' " > '. __(' Generic\\Next ') .' </ button >
2014-09-04 17:52:18 +02:00
</ div >
</ div >
</ div >
2015-03-05 14:53:42 +01:00
</ form >
< script type = " text/javascript " src = " js/app/framadatepicker.js " ></ script >
< script type = " text/javascript " src = " js/app/date_poll.js " ></ script >
' . " \n " ;
2014-09-04 17:52:18 +02:00
bandeau_pied ();
2011-06-23 01:21:56 +02:00
2011-05-15 03:56:54 +02:00
}
2014-06-11 19:19:17 +02:00
}