security_check();
if ($resultat_session == 'c') {
header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
die();
} else if ($resultat_session == '0') {
header("Location: ../logout.php?auto=1");
die();
}
$sql="SELECT 1=1 FROM droits WHERE id='/mod_trombinoscopes/trombino_decoupe.php';";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)==0) {
$sql="INSERT INTO droits SET id='/mod_trombinoscopes/trombino_decoupe.php',
administrateur='V',
professeur='F',
cpe='F',
scolarite='V',
eleve='F',
responsable='F',
secours='F',
autre='F',
description='Génération d une grille PDF pour les trombinoscopes,...',
statut='';";
$insert=mysqli_query($GLOBALS["mysqli"], $sql);
}
//======================================================================================
// Section checkAccess() à décommenter en prenant soin d'ajouter le droit correspondant:
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
//======================================================================================
//debug_var();
$msg="";
$mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL);
$generer_pdf=isset($_POST['generer_pdf']) ? $_POST['generer_pdf'] : NULL;
$parametrer_pdf=isset($_POST['parametrer_pdf']) ? $_POST['parametrer_pdf'] : NULL;
$id_grille=isset($_POST['id_grille']) ? $_POST['id_grille'] : (isset($_GET['id_grille']) ? $_GET['id_grille'] : NULL);
$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL;
//=================================================
$mysql_collate=getSettingValue("mysql_collate") ? getSettingValue("mysql_collate") : "";
$chaine_mysql_collate="";
if($mysql_collate!="") {$chaine_mysql_collate="COLLATE $mysql_collate";}
$sql="CREATE TABLE IF NOT EXISTS trombino_decoupe (
id_grille INT(11) NOT NULL,
classe VARCHAR(100) NOT NULL default '',
elenoet VARCHAR(50) $chaine_mysql_collate NOT NULL default '',
x TINYINT(1) NOT NULL,
y TINYINT(1) NOT NULL,
page TINYINT(1) NOT NULL,
page_global SMALLINT(6) NOT NULL,
PRIMARY KEY (id_grille, elenoet)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;";
$create_table=mysqli_query($GLOBALS["mysqli"], $sql);
$test=mysqli_query($GLOBALS["mysqli"], "SHOW COLUMNS FROM trombino_decoupe LIKE 'id_grille';");
if(mysqli_num_rows($test)==0) {
$query=mysqli_query($GLOBALS["mysqli"], "ALTER TABLE trombino_decoupe ADD id_grille INT(11) NOT NULL;");
}
$test=mysqli_query($GLOBALS["mysqli"], "SHOW index FROM trombino_decoupe WHERE Key_name='PRIMARY';");
if(mysqli_num_rows($test)<2) {
$query=mysqli_query($GLOBALS["mysqli"], "ALTER TABLE trombino_decoupe DROP PRIMARY KEY, ADD PRIMARY KEY ( id_grille,elenoet );");
}
$sql="CREATE TABLE IF NOT EXISTS trombino_decoupe_param (
id_grille INT(11) NOT NULL,
nom VARCHAR(255) NOT NULL default '',
valeur VARCHAR(255) NOT NULL default '',
PRIMARY KEY (id_grille, nom)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;";
$create_table=mysqli_query($GLOBALS["mysqli"], $sql);
//=================================================
//=================================================
if(isset($parametrer_pdf)) {
check_token();
$trombino_pdf_nb_lig=isset($_POST['trombino_pdf_nb_lig']) ? $_POST['trombino_pdf_nb_lig'] : 0;
$trombino_pdf_nb_lig=my_ereg_replace("[^0-9]","",$trombino_pdf_nb_lig);
$trombino_pdf_nb_col=isset($_POST['trombino_pdf_nb_col']) ? $_POST['trombino_pdf_nb_col'] : 0;
$trombino_pdf_nb_col=my_ereg_replace("[^0-9]","",$trombino_pdf_nb_col);
if(($trombino_pdf_nb_lig>0)&&($trombino_pdf_nb_col>0)) {
if (!saveSetting("trombino_pdf_nb_col", $trombino_pdf_nb_col)) {
$msg .= "Erreur lors de l'enregistrement de trombino_pdf_nb_col !";
}
if (!saveSetting("trombino_pdf_nb_lig", $trombino_pdf_nb_lig)) {
$msg .= "Erreur lors de l'enregistrement de trombino_pdf_nb_lig !";
}
if($msg=="") {$msg="Enregistrement des paramètres effectué.";}
}
}
//=================================================
if(isset($_POST['suppr_grille'])) {
check_token();
$suppr_grille=$_POST['suppr_grille'];
for($i=0;$i
";}
}
}
if($msg=="") {$msg="Suppression effectuée.
";}
}
//=================================================
include('trombino.inc.php');
/*
// Initialisation des valeurs
$largeur_page=210;
$hauteur_page=297;
$MargeHaut=10;
$MargeDroite=10;
$MargeGauche=10;
$MargeBas=10;
$largeur_utile_page=$largeur_page-$MargeDroite-$MargeGauche;
$x0=$MargeGauche;
$y0=$MargeHaut;
$trombino_pdf_nb_col=getSettingValue("trombino_pdf_nb_col");
if($trombino_pdf_nb_col=="") {$trombino_pdf_nb_col=4;}
$trombino_pdf_nb_lig=getSettingValue("trombino_pdf_nb_lig");
if($trombino_pdf_nb_lig=="") {$trombino_pdf_nb_lig=5;}
// Espace entre deux photos
$dx=2;
$dy=2;
// Hauteur classe
$hauteur_classe=10;
// J'ai ajouté depuis un $ecart_sous_classe=2;
// Espace pour Nom et prénom dans le cadre
$hauteur_info_eleve=5;
// Pour pouvoir ne pas imprimer le Footer
$no_footer="n";
// Il arrive qu'il y ait un décalage vertical s'amplifiant ligne après ligne sur les découpes
// Par défaut, pas de décalage:
$correctif_vertical=1;
//===================
// Valeurs calculées:
// Nombre de cases par page
$nb_cell=$trombino_pdf_nb_lig*$trombino_pdf_nb_col;
// Hauteur d'un cadre
$haut_cadre=Floor($hauteur_page-$MargeHaut-$MargeBas-$hauteur_classe-($trombino_pdf_nb_lig-1)*$dy)/$trombino_pdf_nb_lig;
// Largeur d'un cadre
$larg_cadre=Floor($largeur_page-$MargeDroite-$MargeGauche-($trombino_pdf_nb_col-1)*$dx)/$trombino_pdf_nb_col;
*/
//=================================================
//=================================================
if(isset($_POST['upload_scan'])) {
check_token();
if((isset($_POST['correctif_vertical']))&&($_POST['correctif_vertical']!='')) {
// A FAIRE: FILTRER...
$test=my_ereg_replace("[^0-9.]","",$_POST['correctif_vertical']);
if($test!="") {$correctif_vertical=$test;}else{$correctif_vertical=1;}
$_SESSION['trombi_decoupe_correctif_vertical']=$correctif_vertical;
}
//echo "1";
if(!isset($_POST['fin_form_upload_scan'])) {
$msg="Le formulaire n'a pas été POSTé entièrement.
Vous avez peut-être été trop gourmand avec le nombre et le volume des photos proposées.
";
// Ca ne fonctionne pas... si on est trop gourmand, on se retrouve avec $_POST vide.
}
$tempdir=get_user_temp_directory();
if(!$tempdir){
$msg="Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n";
// Il ne faut pas aller plus loin...
}
elseif(!isset($id_grille)) {
$msg="Aucun id_grille n'a été choisi.
\n";
}
else {
//echo "2";
$sql="SELECT page_global FROM trombino_decoupe WHERE id_grille='$id_grille' ORDER BY page_global DESC LIMIT 1;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
$msg="L'id_grille n°$id_grille ne correspond à aucun enregistrement dans la table 'trombino_decoupe'.
\n";
}
else {
//echo "3";
// Récuperer les paramètres et calculer les dimensions des cadres d'après les nombres de colonnes et de lignes
$sql="SELECT * FROM trombino_decoupe_param WHERE id_grille='$id_grille';";
//$msg.="$sql
";
$res_param=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_param)==0) {
$msg="Aucun paramètre n'a été trouvé pour l'id_grille n°$id_grille dans la table 'trombino_decoupe_param'.
\n";
}
else {
while($lig_param=mysqli_fetch_object($res_param)) {
//echo "\$lig_param->nom=$lig_param->nom
";
//echo "\$lig_param->valeur=$lig_param->valeur";
$nom=$lig_param->nom;
$$nom=$lig_param->valeur;
//if($lig_param->nom=='trombino_pdf_nb_lig') {$trombino_pdf_nb_lig=$lig_param->value;}
//elseif($lig_param->nom=='trombino_pdf_nb_col') {$trombino_pdf_nb_col=$lig_param->value;}
}
// Nombre de cases par page
$nb_cell=$trombino_pdf_nb_lig*$trombino_pdf_nb_col;
// Hauteur d'un cadre
$haut_cadre=Floor($hauteur_page-$MargeHaut-$MargeBas-$hauteur_classe-$ecart_sous_classe-($trombino_pdf_nb_lig-1)*$dy)/$trombino_pdf_nb_lig;
// Largeur d'un cadre
$larg_cadre=Floor($largeur_page-$MargeDroite-$MargeGauche-($trombino_pdf_nb_col-1)*$dx)/$trombino_pdf_nb_col;
/*
$msg.="\$trombino_pdf_nb_lig=$trombino_pdf_nb_lig
";
$msg.="\$trombino_pdf_nb_col=$trombino_pdf_nb_col
";
$msg.="\$nb_cell=$nb_cell
";
$msg.="\$haut_cadre=$haut_cadre
";
$msg.="\$larg_cadre=$larg_cadre
";
*/
$msg.="Traitement des découpes avec une grille de $trombino_pdf_nb_col colonnes sur $trombino_pdf_nb_lig lignes (id_grille n°$id_grille).
";
if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') {
// On récupère le RNE de l'établissement
$repertoire2=$_COOKIE['RNE']."/";
}
else {
$repertoire2="";
}
$lig=mysqli_fetch_object($res);
for($i=0;$i<=$lig->page_global;$i++) {
if($_FILES["image_".$i]['type']!='') {
//$image=isset($_FILES["image_".$i]) ? $_FILES["image_".$i] : NULL;
$image=$_FILES["image_".$i];
$post_max_size=ini_get('post_max_size');
$upload_max_filesize=ini_get('upload_max_filesize');
if(!is_uploaded_file($image['tmp_name'])) {
$msg.="L'upload du fichier n°$i a échoué.
\n";
$msg.="Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
$msg.="post_max_size=$post_max_size
\n";
$msg.="upload_max_filesize=$upload_max_filesize
\n";
}
else{
if(!file_exists($image['tmp_name'])){
$msg.="Le fichier n°$i aurait été uploadé... mais ne serait pas présent/conservé.
\n";
$msg.="Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
$msg.="post_max_size=$post_max_size
\n";
$msg.="upload_max_filesize=$upload_max_filesize
\n";
$msg.="et le volume de ".$image['name']." serait
\n";
$msg.="\$image['size']=".volume_human($image['size'])."
\n";
}
//echo "
Le fichier ".$image['name']." sous ".$image['tmp_name']." a été uploadé.
\n"; if($image['name']=="") {$msg.="Il s'est passé un problème lors de l'upload/traitement.
Retour";
echo "
Choisissez :
\n"; echo "NOTES :
\n"; echo "
Accueil trombinoscopes";
echo " | Accueil découpe\n";
echo "
Accueil trombinoscopes";
echo " | Accueil découpe\n";
echo "
ERREUR : Il n'existe encore aucune classe.
\n"; require("../lib/footer.inc.php"); die(); } echo "\n"; echo "
Accueil trombinoscopes";
echo " | Accueil découpe\n";
echo "
Les images uploadées doivent être de type JPEG.
\n"; if(!isset($id_grille)) { $sql="SELECT DISTINCT id_grille FROM trombino_decoupe ORDER BY id_grille;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "ERREUR : Aucune grille n'a encore été générée.
\n"; require("../lib/footer.inc.php"); die(); } elseif(mysqli_num_rows($test)==1) { $lig=mysqli_fetch_object($test); $id_grille=$lig->id_grille; } else { echo "Pour quelle grille souhaitez-vous uploader des photos?
\n"; echo "Grille n°$id_grille
\n"; $sql="SELECT DISTINCT classe, page, page_global FROM trombino_decoupe WHERE id_grille='$id_grille' ORDER BY page_global, page;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "ERREUR : Aucune classe n'est associée à la grille n°$id_grille.
\n"; } else { echo "\n"; echo "Notes :
\n"; echo "Les images uploadées doivent être de type JPEG.
L'upload des photos est limité à $max_file_uploads fichier(s) simultanément.
Les paramètres suivants peuvent influer sur le nombre de photos que vous pourrez uploader d'un coup :
\n";
$post_max_size=ini_get('post_max_size');
$upload_max_filesize=ini_get('upload_max_filesize');
echo " \$post_max_size=$post_max_size
\n";
echo " \$upload_max_filesize=$upload_max_filesize
\n";
echo "
Si après avoir cliqué sur Uploader, vous revenez à la page d'accueil de découpe, c'est probablement que vous avez mis trop de photos ou pour un volume trop grand d'un coup.
"; echo "Deux conseils pour les opérations de scan :
Veiller à scanner toutes les pages de la même façon, bien alignées (pas en biais).
Scanner sans rabattre le couvercle pour que les bords de la page ressortent sur fond noir.
Vous découperez ensuite les images scannées pour faire disparaitre le bord noir.
De cette façon, les paramètres par défaut sont en principe corrects pour les découpes.
Accueil trombinoscopes";
echo " | Accueil découpe\n";
echo "
ERREUR : Aucune grille n'a encore été générée.
\n"; require("../lib/footer.inc.php"); die(); } else { echo "\n"; echo "