Initial commit
This commit is contained in:
351
accred_list.php
Normal file
351
accred_list.php
Normal file
@@ -0,0 +1,351 @@
|
||||
<?php
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL & ~E_NOTICE );
|
||||
// start session
|
||||
if (session_status() == PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
// CSRF Counter-measure
|
||||
$token = md5(uniqid(rand(), TRUE));
|
||||
$_SESSION['state'] = $token;
|
||||
|
||||
$userid = $_SESSION['uid'];
|
||||
$isAdmin = $_SESSION['admin']==1;
|
||||
// Bail out if not logged in
|
||||
if($userid=='') {
|
||||
header("location: index?");
|
||||
}
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
define('TMP_FILES', "/tmp/"); // temp folder where it stores the files into.
|
||||
|
||||
function merge_two_arrays($array1,$array2) {
|
||||
$data = array();
|
||||
$arrayAB = array_merge($array1,$array2);
|
||||
foreach ($arrayAB as $key => $value) {
|
||||
$data[$key] = $key;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
if($_GET['o']=='excel') {
|
||||
|
||||
$objPHPExcel = new PHPExcel();
|
||||
|
||||
// Set properties
|
||||
$objPHPExcel->getProperties()->setCreator("Caribana festival");
|
||||
$objPHPExcel->getProperties()->setLastModifiedBy("Caribana festival");
|
||||
$objPHPExcel->getProperties()->setTitle("Accréditations 2017");
|
||||
$objPHPExcel->getProperties()->setSubject("Accréditations 2017");
|
||||
$objPHPExcel->getProperties()->setDescription("Accréditations 2017.");
|
||||
|
||||
$objPHPExcel->setActiveSheetIndex(0);
|
||||
|
||||
$query = "select * from submissions";
|
||||
$mysqli = new mysqli("localhost", "caribanaaccred", "welcome99", "caribanaaccred");
|
||||
if ($mysqli->connect_errno) {
|
||||
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
|
||||
}
|
||||
if ($result = $mysqli->query($query)) {
|
||||
$line = 1;
|
||||
// First merge keys of all serialized values so we are sure to have all columns
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
$ser = $row['formdata'];
|
||||
$seru = unserialize($ser);
|
||||
$or = array_merge($row,$seru);
|
||||
if($line==1) {
|
||||
$master_array = $or;
|
||||
}
|
||||
$master_array = merge_two_arrays($master_array,$or);
|
||||
$line++;
|
||||
}
|
||||
// Now remove unwanted columns
|
||||
foreach($master_array as $key => $val ) {
|
||||
if(!($key=='UID' || $key=='modifieduid' || $key=='btnsubmit' || $key=='btnfinalise' || $key=='formdata' || $key=='name_form')) {
|
||||
$header[$key] = $key;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($result = $mysqli->query($query)) {
|
||||
|
||||
$line = 1;
|
||||
/* fetch associative array */
|
||||
while ($row = $result->fetch_assoc()) {
|
||||
$ser = $row['formdata'];
|
||||
$seru = unserialize($ser);
|
||||
$or = array_merge($row,$seru);
|
||||
// Build full row
|
||||
unset($fr);
|
||||
foreach($header as $key => $val) {
|
||||
$fr[$key] = $or[$key];
|
||||
}
|
||||
if($line==1) {
|
||||
$keys = array_keys ( $header );
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->fromArray(
|
||||
$keys, // The data to set
|
||||
NULL, // Array values with this value will not be set
|
||||
'A1' // Top left coordinate of the worksheet range where
|
||||
// we want to set these values (default is A1)
|
||||
);
|
||||
$line++;
|
||||
|
||||
}
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->fromArray(
|
||||
$fr, // The data to set
|
||||
NULL, // Array values with this value will not be set
|
||||
'A'.$line // Top left coordinate of the worksheet range where
|
||||
// we want to set these values (default is A1)
|
||||
);
|
||||
$line++;
|
||||
}
|
||||
|
||||
$mysqli->close();
|
||||
}
|
||||
$objPHPExcel->getActiveSheet()->getStyle('1')->getFont()->setBold(true);
|
||||
$objPHPExcel->getActiveSheet()->setTitle('Accréditations');
|
||||
|
||||
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
|
||||
// $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
|
||||
$filename = 'accred_list.xlsx';
|
||||
$objWriter->save($filename);
|
||||
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
||||
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8');
|
||||
header('Content-Length: ' . filesize($filename));
|
||||
header('Content-Transfer-Encoding: binary');
|
||||
header('Cache-Control: must-revalidate');
|
||||
header('Pragma: public');
|
||||
$objWriter->save('php://output');
|
||||
readfile($filename);
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="google-signin-client_id" content="538635499162-g21v86gk87qm863u03er6vnm3q15bl82.apps.googleusercontent.com">
|
||||
<script src="https://apis.google.com/js/platform.js" async defer></script>
|
||||
|
||||
<title>Carbana Acréditations</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/responsive/1.0.0/css/dataTables.responsive.css">
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.css">
|
||||
<link rel="stylesheet" type="text/css" href="accred_style.css">
|
||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
||||
|
||||
|
||||
</head>
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
$mysqli = new mysqli("localhost", "caribanaaccred", "welcome99", "caribanaaccred");
|
||||
if ($mysqli->connect_errno) {
|
||||
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
|
||||
}
|
||||
?>
|
||||
|
||||
<body <?php if($isAdmin) echo 'class="admin" '; else echo 'class="user" '; ?>>
|
||||
<div class="right-blob"><span id="identification">Bienvenue <?php echo $_SESSION['name']; if($isAdmin) echo ", tu es admin";?></span><br>
|
||||
<div id="uid" style="display:none"><?php echo $userid;?></div></div>
|
||||
<h1>Commande</h1>
|
||||
<div id="tblContent">
|
||||
<table id="example" class="display" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<ul>
|
||||
<li> <a href="accred_form">Nouvelle demande</a></li>
|
||||
<?php if($isAdmin) { ?>
|
||||
<li> <a href="./accred_list?o=excel">Export Excel</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
<tr><th>No</th><th>Stat</th><th>Salutation</th><th>Prenom</th><th>Nom</th><th>Statut</th><th>Commande</th><th>Aperçu</th><th>Création</th><th>Mise à jour</th><th>Commandé par</th>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
||||
<script>window.jQuery || document.write('<script src="path/to/jquery-1.9.1.min.js"><\/script>')</script>
|
||||
|
||||
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script>
|
||||
|
||||
<!-- load Zebra_Form's JavaScript file -->
|
||||
<script src="vendor/stefangabos/zebra_form/public/javascript/zebra_form.js"></script>
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
|
||||
function format ( row ) {
|
||||
var d = $.parseJSON(row).data[0];
|
||||
// `d` is the original data object for the row
|
||||
console.log(d);
|
||||
var ret = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">'+
|
||||
'<tr>'+
|
||||
'<td>Commande pour:</td>'+
|
||||
'<td>'+d.salutation+' '+d.prenom+' '+d.nom+' - ' + d.email +'</td>'+
|
||||
'</tr>'+
|
||||
'<tr>'+
|
||||
'<td>Commande:</td><td>'+d.nor_tot+' billets normaux et '+d.vip_tot+' billets VIP, pour un montant total de CHF '+d.presta_tot;
|
||||
if(d.vip_gratuit=='oui') {
|
||||
ret += ' (billets VIP gratuits) ';
|
||||
}
|
||||
ret += '</td>'+
|
||||
'</tr>'+
|
||||
'<tr><td>Billets normaux:</td><td>'+ (d.mer_nor || 0) +' mercredi ' + (d.jeu_nor ||0)+' jeudi, '+(d.ven_nor ||0)+' vendredi, '+(d.sam_nor ||0)+' samedi et '+(d.dim_nor ||0)+' dimanche.</td></tr>'+
|
||||
'<tr><td>Billets VIP:</td><td>'+(d.mer_vip ||0)+' mercredi, '+(d.jeu_vip ||0)+' jeudi, '+(d.ven_vip ||0)+' vendredi, '+(d.sam_vip ||0)+' samedi et '+(d.dim_vip ||0)+' dimanche.</td></tr>'+
|
||||
'<td>Société:</td>'+
|
||||
'<td>'+d.societe+'</td>'+
|
||||
'</tr>'+
|
||||
'<tr>'+
|
||||
'<td>Nature de la prestation: </td>'+
|
||||
'<td>';
|
||||
if(d.nature_prest=='Concours') {
|
||||
ret += d.presta_concours;
|
||||
}
|
||||
else {
|
||||
ret += d.nature_prest;
|
||||
}
|
||||
ret += '</td></tr>'+
|
||||
'<tr><td>Précisions</td>'+
|
||||
'<td>'+d.why+'</td></tr>'+
|
||||
'<tr><td>Paiement:</td><td>' + d.type_paiement;
|
||||
if(d.type_paiement!='Offert') {
|
||||
ret += ' - ' + d.choix_paiement_payant;
|
||||
}
|
||||
ret += '</td></tr>';
|
||||
if(d.choix_paiement_payant=='Autre') {
|
||||
ret += '<tr><td>Précisions:</td><td>'+d.paiement_autre+'</td></tr>';
|
||||
}
|
||||
ret += '<tr><td>Distribution:</td><td>' + d.distribution + '</td>';
|
||||
if(d.distribution=='Poste') {
|
||||
ret += '<tr><td>Adresse:</td><td>'+d.adresse_distrib+'</td></tr>';
|
||||
}
|
||||
'</table>';
|
||||
return ret;
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var table = $('#example').DataTable( {
|
||||
"language": {
|
||||
"sInfoEmpty": "Il n'y a rien à montrer...",
|
||||
"sEmptyTable": "Tu n'as pas encore de demandes enregistrées...",
|
||||
"lengthMenu": "Montrer _MENU_ demandes par page",
|
||||
"zeroRecords": "Pas de résultats - désolé",
|
||||
"info": "Page _PAGE_ de _PAGES_ affichée",
|
||||
"infoFiltered": "(filtrage de _MAX_ demandes au total)",
|
||||
"paginate": {
|
||||
"next": "Page suivante",
|
||||
"previous": "Page précédente"
|
||||
},
|
||||
"search": "Rechercher"
|
||||
},
|
||||
"ajax": 'ajax/data/arrays',
|
||||
"columns": [
|
||||
{ "data": "mid" },
|
||||
{ "data": "stat", "visible" : false, },
|
||||
{ "data": "nom", "visible": false },
|
||||
{ "data": "prenom", "visible" : false},
|
||||
{ "data": "salutation", "visible" : false },
|
||||
{
|
||||
"orderData": 1,
|
||||
"data": null,
|
||||
"defaultContent": "",
|
||||
"createdCell": function(td, cellData, rowData, row, col) {
|
||||
switch(rowData.stat) {
|
||||
case "0":
|
||||
$(td).addClass('bck-check <?php if($isAdmin) echo " editable"; ?>');
|
||||
break;
|
||||
case "1":
|
||||
$(td).addClass('bck-edit editable');
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
{ "data": "societe" },
|
||||
{ "data": null,
|
||||
"defaultContent": "",
|
||||
"className": "details-control",
|
||||
},
|
||||
{ "data" : "crea" },
|
||||
{ "data": "maj" },
|
||||
{ "data": "name", "visible": true }
|
||||
]
|
||||
|
||||
|
||||
}
|
||||
);
|
||||
$('#identification').on('click', function() {
|
||||
$('#uid').toggle();
|
||||
});
|
||||
|
||||
// Add event listener for opening and closing details
|
||||
$('#example tbody').on('click', 'td.details-control', function () {
|
||||
var tr = $(this).closest('tr');
|
||||
var id= $(tr).find("td:first").text() ;
|
||||
$.ajax({
|
||||
url: 'ajax/data/arrays?aid='+id
|
||||
}).done(function(data) {
|
||||
var row = table.row( tr );
|
||||
if ( row.child.isShown() ) {
|
||||
// This row is already open - close it
|
||||
row.child.hide();
|
||||
tr.removeClass('shown');
|
||||
}
|
||||
else {
|
||||
// Open this row
|
||||
row.child( format(data) ).show();
|
||||
tr.addClass('shown');
|
||||
}
|
||||
|
||||
});;
|
||||
} );
|
||||
|
||||
// Add event listener for editing entries
|
||||
$('#example tbody').on('click', 'td.bck-edit', function () {
|
||||
var tr = $(this).closest('tr');
|
||||
var id= $(tr).find("td:first").text() ;
|
||||
self.location="accred_form?aid="+id;
|
||||
} );
|
||||
|
||||
<?php
|
||||
if($isAdmin) {
|
||||
?>
|
||||
$('#example tbody').on('click', 'td.bck-check', function () {
|
||||
var tr = $(this).closest('tr');
|
||||
var id= $(tr).find("td:first").text() ;
|
||||
self.location="accred_form?aid="+id;
|
||||
} );
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="g-signin2" data-onsuccess="onSignIn" style="display:none"></div>
|
||||
|
||||
<br>
|
||||
<a href="#" onclick="signOut();">Déconnexion</a>
|
||||
<script>
|
||||
function signOut() {
|
||||
var auth2 = gapi.auth2.getAuthInstance();
|
||||
auth2.signOut().then(function () {
|
||||
console.log('User signed out.');
|
||||
$.post('tokensignin',
|
||||
{ mode: "logout" }, // data
|
||||
function(data) { // callback function
|
||||
location.href="./index?";
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user