admin: Add availability to delete a poll
This commit is contained in:
parent
4818d7977a
commit
b5fc415edc
|
@ -189,7 +189,12 @@ if (isset($_POST['remove_all_votes'])) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (isset($_POST['confirm_remove_all_votes'])) {
|
if (isset($_POST['confirm_remove_all_votes'])) {
|
||||||
$adminPollService->cleanVotes($poll_id);
|
// TODO Add log
|
||||||
|
if ($adminPollService->cleanVotes($poll_id)) {
|
||||||
|
$message = new Message('success', _('All votes deleted.'));
|
||||||
|
} else {
|
||||||
|
$message = new Message('danger', _('Failed to delete all votes.'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
@ -242,6 +247,7 @@ if (isset($_POST['remove_all_comments'])) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (isset($_POST['confirm_remove_all_comments'])) {
|
if (isset($_POST['confirm_remove_all_comments'])) {
|
||||||
|
// TODO Add log
|
||||||
if ($adminPollService->cleanComments($poll_id)) {
|
if ($adminPollService->cleanComments($poll_id)) {
|
||||||
$message = new Message('success', _('All comments deleted.'));
|
$message = new Message('success', _('All comments deleted.'));
|
||||||
} else {
|
} else {
|
||||||
|
@ -261,7 +267,18 @@ if (isset($_POST['delete_poll'])) {
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if (isset($_POST['confirm_delete_poll'])) {
|
if (isset($_POST['confirm_delete_poll'])) {
|
||||||
// TODO
|
// TODO Add log
|
||||||
|
if ($adminPollService->deleteEntirePoll($poll_id)) {
|
||||||
|
$message = new Message('success', _('Poll fully deleted.'));
|
||||||
|
} else {
|
||||||
|
$message = new Message('danger', _('Failed to delete the poll.'));
|
||||||
|
}
|
||||||
|
$smarty->assign('poll_id', $poll_id);
|
||||||
|
$smarty->assign('admin_poll_id', $admin_poll_id);
|
||||||
|
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
|
||||||
|
$smarty->assign('message', $message);
|
||||||
|
$smarty->display('poll_deleted.tpl');
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
@ -269,6 +286,7 @@ if (isset($_POST['confirm_delete_poll'])) {
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
if (!empty($_POST['delete_column'])) {
|
if (!empty($_POST['delete_column'])) {
|
||||||
|
// TODO Add log
|
||||||
$column = filter_input(INPUT_POST, 'delete_column', FILTER_DEFAULT);
|
$column = filter_input(INPUT_POST, 'delete_column', FILTER_DEFAULT);
|
||||||
|
|
||||||
if ($adminPollService->deleteSlot($poll_id, $column)) {
|
if ($adminPollService->deleteSlot($poll_id, $column)) {
|
||||||
|
|
|
@ -127,7 +127,7 @@ class FramaDB {
|
||||||
* @param $poll_id int The ID of the given poll.
|
* @param $poll_id int The ID of the given poll.
|
||||||
* @return bool|null true if action succeeded.
|
* @return bool|null true if action succeeded.
|
||||||
*/
|
*/
|
||||||
function deleteVotesByAdminPollId($poll_id) {
|
function deleteVotesByPollId($poll_id) {
|
||||||
$prepared = $this->prepare('DELETE FROM user_studs WHERE id_sondage = ?');
|
$prepared = $this->prepare('DELETE FROM user_studs WHERE id_sondage = ?');
|
||||||
return $prepared->execute([$poll_id]);
|
return $prepared->execute([$poll_id]);
|
||||||
}
|
}
|
||||||
|
@ -197,13 +197,18 @@ class FramaDB {
|
||||||
$prepared->execute([$poll_id, $datetime]);
|
$prepared->execute([$poll_id, $datetime]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteSlotsByPollId($poll_id) {
|
||||||
|
$prepared = $this->prepare('DELETE FROM sujet_studs WHERE id_sondage = ?');
|
||||||
|
$prepared->execute([$poll_id]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete all comments of a given poll.
|
* Delete all comments of a given poll.
|
||||||
*
|
*
|
||||||
* @param $poll_id int The ID of the given poll.
|
* @param $poll_id int The ID of the given poll.
|
||||||
* @return bool|null true if action succeeded.
|
* @return bool|null true if action succeeded.
|
||||||
*/
|
*/
|
||||||
function deleteCommentsByAdminPollId($poll_id) {
|
function deleteCommentsByPollId($poll_id) {
|
||||||
$prepared = $this->prepare('DELETE FROM comments WHERE id_sondage = ?');
|
$prepared = $this->prepare('DELETE FROM comments WHERE id_sondage = ?');
|
||||||
return $prepared->execute([$poll_id]);
|
return $prepared->execute([$poll_id]);
|
||||||
}
|
}
|
||||||
|
@ -223,4 +228,9 @@ class FramaDB {
|
||||||
return $prepared->execute([$poll_id, $comment_id]);
|
return $prepared->execute([$poll_id, $comment_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteByPollId($poll_id) {
|
||||||
|
$prepared = $this->prepare('DELETE FROM sondage WHERE poll_id = ?');
|
||||||
|
$prepared->execute([$poll_id]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ class AdminPollService {
|
||||||
* @return bool|null true is action succeeded
|
* @return bool|null true is action succeeded
|
||||||
*/
|
*/
|
||||||
function cleanComments($poll_id) {
|
function cleanComments($poll_id) {
|
||||||
return $this->connect->deleteCommentsByAdminPollId($poll_id);
|
return $this->connect->deleteCommentsByPollId($poll_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,7 +61,22 @@ class AdminPollService {
|
||||||
* @return bool|null true is action succeeded
|
* @return bool|null true is action succeeded
|
||||||
*/
|
*/
|
||||||
function cleanVotes($poll_id) {
|
function cleanVotes($poll_id) {
|
||||||
return $this->connect->deleteVotesByAdminPollId($poll_id);
|
return $this->connect->deleteVotesByPollId($poll_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete the entire given poll.
|
||||||
|
*
|
||||||
|
* @param $poll_id int The ID of the poll
|
||||||
|
* @return bool true is action succeeded
|
||||||
|
*/
|
||||||
|
function deleteEntirePoll($poll_id) {
|
||||||
|
/*$this->connect->deleteVotesByPollId($poll_id);
|
||||||
|
$this->connect->deleteCommentsByPollId($poll_id);
|
||||||
|
$this->connect->deleteSlotsByPollId($poll_id);
|
||||||
|
$this->connect->deleteByPollId($poll_id);*/
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,6 +84,7 @@ class AdminPollService {
|
||||||
*
|
*
|
||||||
* @param $poll_id int The ID of the poll
|
* @param $poll_id int The ID of the poll
|
||||||
* @param $slot string The name of the slot
|
* @param $slot string The name of the slot
|
||||||
|
* @return bool true if action succeeded
|
||||||
*/
|
*/
|
||||||
public function deleteSlot($poll_id, $slot) {
|
public function deleteSlot($poll_id, $slot) {
|
||||||
$ex = explode('@', $slot);
|
$ex = explode('@', $slot);
|
||||||
|
|
|
@ -42,97 +42,6 @@ function send_mail_admin() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// reload
|
|
||||||
// TODO OPZ Pourquoi recharger
|
|
||||||
// $dsujet= $sujets->FetchObject(false);
|
|
||||||
// $dsondage= $sondage->FetchObject(false);
|
|
||||||
|
|
||||||
if (isset($_POST['ajoutsujet'])) {
|
|
||||||
Utils::print_header( _('Add a column') .' - ' . stripslashes($poll->title));
|
|
||||||
|
|
||||||
bandeau_titre(_('Make your polls'));
|
|
||||||
|
|
||||||
//on recupere les données et les sujets du sondage
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<form name="formulaire" class="form-horizontal" action="' . Utils::getUrlSondage($admin_poll_id, true) . '" method="POST">
|
|
||||||
<h2>' . _("Column's adding") . '</h2>'."\n";
|
|
||||||
|
|
||||||
if ($poll->format == "A"){
|
|
||||||
echo '
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="nouvellecolonne" class="col-md-6">' . _("Add a column") .' :</label>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="text" id="nouvellecolonne" name="nouvellecolonne" class="form-control" />
|
|
||||||
</div>
|
|
||||||
</div>'."\n";
|
|
||||||
} else {
|
|
||||||
// ajout d'une date avec creneau horaire
|
|
||||||
echo '
|
|
||||||
<p>'. _("You can add a new scheduling date to your poll.").'<br />'._("If you just want to add a new hour to an existant date, put the same date and choose a new hour.") .'</p>
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="newdate" class="col-md-4">'. _("Day") .'</label>
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="input-group date">
|
|
||||||
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
|
|
||||||
<input type="text" id="newdate" data-date-format="'. _("dd/mm/yyyy") .'" aria-describedby="dateformat" name="newdate" class="form-control" placeholder="'. _("dd/mm/yyyy") .'" />
|
|
||||||
</div>
|
|
||||||
<span id="dateformat" class="sr-only">'. _("(dd/mm/yyyy)") .'</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="newhour" class="col-md-4">'. _("Time") .'</label>
|
|
||||||
<div class="col-md-8">
|
|
||||||
<input type="text" id="newhour" name="newhour" class="form-control" />
|
|
||||||
</div>
|
|
||||||
</div>';
|
|
||||||
}
|
|
||||||
echo '
|
|
||||||
<p class="text-center">
|
|
||||||
<button class="btn btn-default" type="submit" value="retoursondage" name="retoursondage">'. _('Back to the poll'). '</button>
|
|
||||||
<button type="submit" name="ajoutercolonne" class="btn btn-success">'. _('Add a column'). '</button>
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>';
|
|
||||||
|
|
||||||
bandeau_pied();
|
|
||||||
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
|
|
||||||
//action si bouton confirmation de suppression est activé
|
|
||||||
if (isset($_POST["confirmesuppression"])) {
|
|
||||||
$nbuser=$user_studs->RecordCount();
|
|
||||||
$date=date('H:i:s d/m/Y:');
|
|
||||||
|
|
||||||
if (Utils::remove_sondage($connect, $poll_id)) {
|
|
||||||
// on ecrit dans le fichier de logs la suppression du sondage
|
|
||||||
error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'admin/logs_studs.txt');
|
|
||||||
|
|
||||||
// Email sent
|
|
||||||
send_mail_admin();
|
|
||||||
//affichage de l'ecran de confirmation de suppression de sondage
|
|
||||||
Utils::print_header(_("Your poll has been removed!"));
|
|
||||||
|
|
||||||
bandeau_titre(_("Make your polls"));
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<div class="alert alert-success text-center">
|
|
||||||
<h2>' . _("Your poll has been removed!") . '</h2>
|
|
||||||
<p>' . _('Back to the homepage of ') . ' <a href="' . Utils::get_server_name() . '"> ' . NOMAPPLICATION . '</a></p>
|
|
||||||
</div>
|
|
||||||
</form>'."\n";
|
|
||||||
|
|
||||||
bandeau_pied();
|
|
||||||
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$nbcolonnes = count($sujets);
|
$nbcolonnes = count($sujets);
|
||||||
$nblignes = count($users);
|
$nblignes = count($users);
|
||||||
|
|
||||||
|
@ -158,165 +67,11 @@ if (isset($_POST["ajoutercolonne"]) && !empty($_POST['nouvellecolonne']) && $pol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// [begin] action quand on ajoute une colonne au format DATE
|
|
||||||
if (isset($_POST['ajoutercolonne']) && $dsondage->format == 'D') {
|
|
||||||
|
|
||||||
if (!empty($_POST["newdate"])) {
|
|
||||||
$new_choice = mktime(0, 0, 0, substr($_POST["newdate"],3,2), substr($_POST["newdate"],0,2), substr($_POST["newdate"],6,4));
|
|
||||||
|
|
||||||
if (!empty($_POST["newhour"])){
|
|
||||||
$new_choice .= '@' . $_POST["newhour"];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// TODO OPZ Delete the code below
|
|
||||||
// TODO OPZ Insert new choice
|
|
||||||
// TODO OPZ Update users votes (add "0" in the right column^^)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//on rajoute la valeur dans les valeurs
|
|
||||||
$datesbase = explode(",",$dsujet->sujet);
|
|
||||||
$taillebase = sizeof($datesbase);
|
|
||||||
|
|
||||||
//recherche de l'endroit de l'insertion de la nouvelle date dans les dates deja entrées dans le tableau
|
|
||||||
if ($nouvelledate < $datesbase[0]) {
|
|
||||||
$cleinsertion = 0;
|
|
||||||
} elseif ($nouvelledate > $datesbase[$taillebase-1]) {
|
|
||||||
$cleinsertion = count($datesbase);
|
|
||||||
} else {
|
|
||||||
for ($i = 0; $i < count($datesbase); $i++) {
|
|
||||||
$j = $i + 1;
|
|
||||||
if ($nouvelledate > $datesbase[$i] && $nouvelledate < $datesbase[$j]) {
|
|
||||||
$cleinsertion = $j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
array_splice($datesbase, $cleinsertion, 0, $nouvelledate);
|
|
||||||
$cle = array_search($nouvelledate, $datesbase);
|
|
||||||
$dateinsertion = '';
|
|
||||||
for ($i = 0; $i < count($datesbase); $i++) {
|
|
||||||
$dateinsertion.=",";
|
|
||||||
$dateinsertion.=$datesbase[$i];
|
|
||||||
}
|
|
||||||
|
|
||||||
$dateinsertion = substr("$dateinsertion", 1);
|
|
||||||
|
|
||||||
//mise a jour avec les nouveaux sujets dans la base
|
|
||||||
//if (isset($erreur_ajout_date) && !$erreur_ajout_date){
|
|
||||||
$sql = 'UPDATE sujet_studs SET sujet = '.$connect->Param('dateinsertion').' WHERE id_sondage = '.$connect->Param('numsondage');
|
|
||||||
$sql = $connect->Prepare($sql);
|
|
||||||
$connect->Execute($sql, array($dateinsertion, $poll_id));
|
|
||||||
|
|
||||||
if ($nouvelledate > strtotime($dsondage->date_fin)) {
|
|
||||||
$date_fin=$nouvelledate+200000;
|
|
||||||
$sql = 'UPDATE sondage SET date_fin = '.$connect->Param('date_fin').' WHERE id_sondage = '.$connect->Param('numsondage');
|
|
||||||
$sql = $connect->Prepare($sql);
|
|
||||||
$connect->Execute($sql, array($date_fin, $poll_id));
|
|
||||||
}
|
|
||||||
//}
|
|
||||||
|
|
||||||
//mise a jour des reponses actuelles correspondant au sujet ajouté
|
|
||||||
$sql = 'UPDATE user_studs SET reponses = '.$connect->Param('reponses').' WHERE nom = '.$connect->Param('nom').' AND id_users='.$connect->Param('id_users');
|
|
||||||
$sql = $connect->Prepare($sql);
|
|
||||||
while ($data = $user_studs->FetchNextObject(false)) {
|
|
||||||
$ensemblereponses=$data->reponses;
|
|
||||||
$newcar = '';
|
|
||||||
|
|
||||||
//parcours de toutes les réponses actuelles
|
|
||||||
for ($j = 0; $j < $nbcolonnes; $j++) {
|
|
||||||
$car=substr($ensemblereponses,$j,1);
|
|
||||||
|
|
||||||
//si les reponses ne concerne pas la colonne ajoutée, on concatene
|
|
||||||
if ($j==$cle) {
|
|
||||||
$newcar.="0";
|
|
||||||
}
|
|
||||||
|
|
||||||
$newcar.=$car;
|
|
||||||
}
|
|
||||||
|
|
||||||
//mise a jour des reponses utilisateurs dans la base
|
|
||||||
if (isset($erreur_ajout_date) && !$erreur_ajout_date){
|
|
||||||
$connect->Execute($sql, array($newcar, $data->nom, $data->id_users));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Email sent to the admin
|
|
||||||
send_mail_admin();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$erreur_ajout_date="yes";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// [end] action quand on ajoute une colonne au format DATE
|
|
||||||
|
|
||||||
|
|
||||||
//on teste pour voir si une ligne doit etre modifiée
|
//on teste pour voir si une ligne doit etre modifiée
|
||||||
$testmodifier = false;
|
$testmodifier = false;
|
||||||
$testligneamodifier = false;
|
$testligneamodifier = false;
|
||||||
|
|
||||||
|
|
||||||
//suppression de colonnes dans la base
|
|
||||||
for ($i = 0; $i < $nbcolonnes; $i++) {
|
|
||||||
if ((isset($_POST["effacecolonne$i"])) && $nbcolonnes > 1){
|
|
||||||
$sujets = explode(",",$dsujet->sujet);
|
|
||||||
//sort($toutsujet, SORT_NUMERIC);
|
|
||||||
$j = 0;
|
|
||||||
$nouveauxsujets = '';
|
|
||||||
|
|
||||||
//parcours de tous les sujets actuels
|
|
||||||
while (isset($sujets[$j])) {
|
|
||||||
//si le sujet n'est pas celui qui a été effacé alors on concatene
|
|
||||||
if ($i != $j) {
|
|
||||||
$nouveauxsujets .= ',';
|
|
||||||
$nouveauxsujets .= $sujets[$j];
|
|
||||||
}
|
|
||||||
|
|
||||||
$j++;
|
|
||||||
}
|
|
||||||
|
|
||||||
//on enleve la virgule au début
|
|
||||||
$nouveauxsujets = substr("$nouveauxsujets", 1);
|
|
||||||
|
|
||||||
//nettoyage des reponses actuelles correspondant au sujet effacé
|
|
||||||
$compteur = 0;
|
|
||||||
$sql = 'UPDATE user_studs SET reponses = '.$connect->Param('reponses').' WHERE nom = '.$connect->Param('nom').' AND id_users = '.$connect->Param('id_users');
|
|
||||||
$sql = $connect->Prepare($sql);
|
|
||||||
|
|
||||||
while ($data = $user_studs->FetchNextObject(false)) {
|
|
||||||
$newcar = '';
|
|
||||||
$ensemblereponses = $data->reponses;
|
|
||||||
|
|
||||||
//parcours de toutes les réponses actuelles
|
|
||||||
for ($j = 0; $j < $nbcolonnes; $j++) {
|
|
||||||
$car=substr($ensemblereponses, $j, 1);
|
|
||||||
//si les reponses ne concerne pas la colonne effacée, on concatene
|
|
||||||
if ($i != $j) {
|
|
||||||
$newcar .= $car;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$compteur++;
|
|
||||||
|
|
||||||
//mise a jour des reponses utilisateurs dans la base
|
|
||||||
$connect->Execute($sql, array($newcar, $data->nom, $data->id_users));
|
|
||||||
}
|
|
||||||
|
|
||||||
//mise a jour des sujets dans la base
|
|
||||||
$sql = 'UPDATE sujet_studs SET sujet = '.$connect->Param('nouveauxsujets').' WHERE id_sondage = '.$connect->Param('numsondage');
|
|
||||||
$sql = $connect->Prepare($sql);
|
|
||||||
$connect->Execute($sql, array($nouveauxsujets, $poll_id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Table headers
|
|
||||||
$thead = '<thead>';
|
|
||||||
|
|
||||||
// Button in the first td to avoid remove col on "Return" keypress)
|
// Button in the first td to avoid remove col on "Return" keypress)
|
||||||
$tr_add_remove_col = '<tr><td role="presentation"><button type="submit" class="invisible" name="boutonp" ></button></td>';
|
$tr_add_remove_col = '<tr><td role="presentation"><button type="submit" class="invisible" name="boutonp" ></button></td>';
|
||||||
|
@ -325,78 +80,7 @@ $border = array(); // bordure pour distinguer les mois
|
||||||
$td_headers = array(); // for a11y, headers="M1 D4 H5" on each td
|
$td_headers = array(); // for a11y, headers="M1 D4 H5" on each td
|
||||||
$radio_title = array(); // date for
|
$radio_title = array(); // date for
|
||||||
|
|
||||||
// Display dates poll
|
if ($poll->format == "A") {
|
||||||
if ($poll->format == "D") {
|
|
||||||
|
|
||||||
$tr_months = '<tr><th role="presentation"></th>';
|
|
||||||
$tr_days = '<tr><th role="presentation"></th>';
|
|
||||||
$tr_hours = '<tr><th role="presentation"></th>';
|
|
||||||
|
|
||||||
// Headers
|
|
||||||
$colspan_month = 1;
|
|
||||||
$colspan_day = 1;
|
|
||||||
|
|
||||||
foreach ($sujets as $i=>$sujet) {
|
|
||||||
|
|
||||||
// Current date
|
|
||||||
$horoCur = explode('@', $sujet->sujet); //horoCur[0] = date, horoCur[1] = hour
|
|
||||||
if (isset($sujets[$i+1])){
|
|
||||||
$next = $sujets[$i+1]->sujet;
|
|
||||||
$horoNext = explode('@', $next);
|
|
||||||
}
|
|
||||||
$border[$i] = false;
|
|
||||||
$radio_title[$i] = strftime($date_format['txt_short'], $horoCur[0]);
|
|
||||||
|
|
||||||
// Months
|
|
||||||
$td_headers[$i] = 'M'.($i+1-$colspan_month);
|
|
||||||
|
|
||||||
if (isset($sujets[$i+1]) && strftime("%B", $horoCur[0]) == strftime("%B", $horoNext[0]) && strftime("%Y", $horoCur[0]) == strftime("%Y", $horoNext[0])){
|
|
||||||
$colspan_month++;
|
|
||||||
} else {
|
|
||||||
$border[$i] = true;
|
|
||||||
$tr_months .= '<th colspan="'.$colspan_month.'" class="bg-primary month" id="M'.($i+1-$colspan_month).'">'.strftime("%B",$horoCur[0]).' '.strftime("%Y", $horoCur[0]).'</th>';
|
|
||||||
$colspan_month=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Days
|
|
||||||
$td_headers[$i] .= ' D'.($i+1-$colspan_day);
|
|
||||||
|
|
||||||
if (isset($sujets[$i+1]) && strftime($date_format['txt_day'],$horoCur[0])==strftime($date_format['txt_day'],$horoNext[0]) && strftime("%B",$horoCur[0])==strftime("%B",$horoNext[0])){
|
|
||||||
$colspan_day++;
|
|
||||||
} else {
|
|
||||||
$rbd = ($border[$i]) ? ' rbd' : '';
|
|
||||||
$tr_days .= '<th colspan="'.$colspan_day.'" class="bg-primary day'.$rbd.'" id="D'.($i+1-$colspan_day).'">'.strftime($date_format['txt_day'],$horoCur[0]).'</th>';
|
|
||||||
$colspan_day=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hours
|
|
||||||
$rbd = ($border[$i]) ? ' rbd' : '';
|
|
||||||
if ($horoCur[1] !== "") {
|
|
||||||
$tr_hours .= '<th class="bg-info'.$rbd.'" id="H'.$i.'" title="'.$horoCur[1].'">'.$horoCur[1].'</th>';
|
|
||||||
$radio_title[$i] .= ' - '.$horoCur[1];
|
|
||||||
$td_headers[$i] .= ' H'.$i;
|
|
||||||
} else {
|
|
||||||
$tr_hours .= '<th class="bg-info'.$rbd.'"></th>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove col
|
|
||||||
$tr_add_remove_col .= (count($sujets) > 2 ) ? '<td headers="'.$td_headers[$i].'"><button type="submit" name="effacecolonne'.$i.'" class="btn btn-link btn-sm" title="' . _('Remove the column') . ' ' .$radio_title[$i]. '"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">'. _("Remove") .'</span></button></td>' : '<td role="presentation"></td>';
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$border[count($border)-1] = false; // suppression de la bordure droite du dernier mois
|
|
||||||
|
|
||||||
$tr_months .= '<th></th></tr>';
|
|
||||||
$tr_days .= '<th></th></tr>';
|
|
||||||
$tr_hours .= '<th></th></tr>';
|
|
||||||
|
|
||||||
// Add col
|
|
||||||
$tr_add_remove_col .= '<td><button type="submit" name="ajoutsujet" class="btn btn-link btn-sm" title="'. _('Add a column') . '"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. _("Add a column") .'</span></button></td></tr>';
|
|
||||||
|
|
||||||
$thead = "\n".$tr_add_remove_col."\n".$tr_months."\n".$tr_days."\n".$tr_hours."\n";
|
|
||||||
|
|
||||||
// Subjects poll
|
|
||||||
} else {
|
|
||||||
$tr_subjects = '<tr><th role="presentation"></th>';
|
$tr_subjects = '<tr><th role="presentation"></th>';
|
||||||
|
|
||||||
foreach ($sujets as $i=>$sujet) {
|
foreach ($sujets as $i=>$sujet) {
|
||||||
|
|
8
tpl/poll_deleted.tpl
Normal file
8
tpl/poll_deleted.tpl
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{extends file='page.tpl'}
|
||||||
|
|
||||||
|
{block name=main}
|
||||||
|
<div class="alert alert-success text-center">
|
||||||
|
<h2>{_("Your poll has been removed!")}</h2>
|
||||||
|
<p>{_('Back to the homepage of')} <a href="{$SERVER_URL}">{$APPLICATION_NAME}</a></p>
|
||||||
|
</div>
|
||||||
|
{/block}
|
Loading…
Reference in New Issue
Block a user