/[openfoncier]/trunk/app/pdf_instruction.php
ViewVC logotype

Annotation of /trunk/app/pdf_instruction.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1127 - (hide annotations)
Thu Dec 27 15:07:37 2012 UTC (12 years, 1 month ago) by vpihour
Original Path: trunk/app/pdflettretype_instruction.php
File size: 23211 byte(s)
Mise à jour des requêtes concernant instruction

1 fraynaud 88 <?php
2     /**
3     *
4     *
5     * @package openmairie_exemple
6     * @version SVN : $Id: pdflettretype.php 278 2010-11-30 07:12:41Z fmichon $
7     */
8     // fpdf ne traite pas UTF8
9     // donc il faut utiliser decode
10     include ("../dyn/locales.inc.php");
11     require_once "../obj/utils.class.php";
12     $f = new utils("nohtml");
13    
14     /**
15     *
16     */
17     // Nom de l'objet metier
18     (isset($_GET['obj']) ? $obj = $_GET['obj'] : $obj = "");
19     (isset($_GET['idx']) ? $idx = $_GET['idx'] : $idx = "");
20    
21     /**
22     * en utilisant une table courrier (par exemple)
23     * on peut typer les courriers
24     * par destinataire
25     * suivant une date
26     * avec un complement
27     * voir openfoncier ou openpersonnalite
28     *
29     * cette table est desactivee dans l exemple
30     *
31     */
32    
33    
34 fraynaud 250 $sql_courrier="select * from ".DB_PREFIXE."instruction where instruction=".$idx;
35 fraynaud 88 $res = $f->db->query($sql_courrier);
36     $f->isDatabaseError($res);
37     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
38     $obj=$row['lettretype'];
39 fmichon 323 //if(DBCHARSET=='UTF8'){
40 fraynaud 88 // $titre= utf8_decode($lettretype["titre"]);
41     $destinataire=$row['destinataire']; // ***
42 vpihour 1127 $date_evenement=$row['date_evenement'];
43 fraynaud 88 $complement=$row['complement'];
44     $complement2=$row['complement2'];
45     $complement3=$row['complement3'];
46     $complement4=$row['complement4'];
47     $complement5=$row['complement5'];
48     $complement6=$row['complement6'];
49     $complement7=$row['complement7'];
50     $complement8=$row['complement8'];
51     $complement9=$row['complement9'];
52     $complement10=$row['complement10'];
53     $complement11=$row['complement11'];
54     $complement12=$row['complement12'];
55     $complement13=$row['complement13'];
56     $complement14=$row['complement14'];
57     $complement15=$row['complement15'];
58     }
59    
60     // ligne a desactiver ==========================================================================
61     //$destinataire ="";
62 vpihour 1127 //$date_evenement=date('d/m/Y');
63 fraynaud 88 //$complement="<-Ici le complement->";
64     // =============================================================================================
65    
66 fraynaud 234 // format date courrier en francais
67     if ($f->formatdate=="AAAA-MM-JJ"){
68 vpihour 1127 $valTemp=explode("-",$date_evenement);
69     $date_evenement = $valTemp[2]."/".$valTemp[1]."/".$valTemp[0];
70 fraynaud 88 }
71    
72 fraynaud 234
73 fraynaud 88 /**
74     * acces table om_lettretype
75     */
76     $niveau='';
77     // requete SQL
78     $sql= "select * from ".DB_PREFIXE."om_lettretype where id='".$obj."'"; // select obj
79 nhaye 469 $sql.= " and actif IS TRUE";
80 fraynaud 88 $sql.= " and om_collectivite ='".$_SESSION['collectivite']."'";
81     $res1 = $f->db->query($sql);
82     $f->isDatabaseError($res1);
83     if ($res1->numrows()==0){
84     $sql="select om_collectivite from ".DB_PREFIXE."om_collectivite where niveau ='2'";
85     $niveau=$f->db->getOne($sql);
86     //$res1->free();
87     $sql= "select * from ".DB_PREFIXE."om_lettretype where id='".$obj."'"; // select obj
88 nhaye 469 $sql.= " and actif IS TRUE";
89 fraynaud 88 $sql.= " and om_collectivite ='".$niveau."'";
90     $res1 = $f->db->query($sql);
91     $f->isDatabaseError($res1);
92     }
93    
94     if ($res1->numrows()==0){
95     //$res1->free();
96     $sql= "select * from ".DB_PREFIXE."om_lettretype where id='".$obj."'"; // select obj
97     $sql.= " and om_collectivite ='".$niveau."'";
98     $res1 = $f->db->query($sql);
99     $f->isDatabaseError($res1);
100     }
101    
102     set_time_limit(180);
103     //require_once PATH_FPDF."fpdf.php";
104     require_once "../php/fpdf/fpdf.php"; // *** mettre le path FPDF
105     $collectivite = $f->collectivite; // bug array vide
106    
107    
108     class PDF extends FPDF {
109     /**
110     * Pied de page
111     */
112     function Footer() {
113     // NUMERO DE PAGE
114 vpihour 1127 //Positionnement � 1,5 cm du bas
115 fraynaud 88 $this->SetY(-15);
116     // Police Arial italique 8
117     $this->SetFont('Arial','I',8);
118     // Numero de page
119     $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
120     }
121    
122     }
123    
124    
125     // INSTANCE PDF ================================================
126     // orientation P= portrait L=paysage
127     // unite mm (milimetre)
128     // format A4 A3
129     // =============================================================
130     $unite="mm";
131    
132     while ($lettretype =& $res1->fetchRow(DB_FETCHMODE_ASSOC)) {
133    
134     $pdf=new PDF($lettretype["orientation"],$unite,$lettretype["format"]);
135     // methode fpdf calcul nombre de page
136     $pdf->AliasNbPages();
137     // methode de creation de page
138     $pdf->AddPage();
139     // police ======================================================
140     // setFont 0 = times, arial
141     // 1 = I B ou ''
142     // 2 = 8 ....
143     // affichage image =============================================
144     // image 0 = nom
145     // 1 = left
146     // 2 = top
147     // 3 = width 0=calcul auto
148     // 4 = hauteur 0=calcul auto
149     // 5 = type image rien=exetension du fichier
150     // 6 = lien
151     // setXY (left,top) =============================================
152     // affichage multicell ==========================================
153     // multicell 0 = width =0 left->droite
154     // 1 = hauteur de la cellule
155     // 2 = texte
156     // 3 = bordure (0 ou 1)
157     // 4 = align (L C R J)
158     // 5 = 0 fd transparent
159 vpihour 1127 // 1 couleur (parametre � rajouter)
160 fraynaud 88 // ==============================================================
161 nhaye 469 if(file_exists($f->getPathFolderTrs().$lettretype["logo"])) {
162     $pdf->Image($f->getPathFolderTrs().$lettretype["logo"],
163     $lettretype["logoleft"],
164     $lettretype["logotop"],
165     0,
166     0,
167     '',
168     '');
169     }
170 fraynaud 88 // variables statiques
171     $sql = $lettretype['om_sql'];
172     $titre= $lettretype["titre"];
173     $corps= $lettretype["corps"];
174    
175    
176     //
177     include("../dyn/varlettretypepdf.inc");
178     //
179     $res = $f->db->query($sql);
180     $f->isDatabaseError($res);
181     while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
182     // titre
183     $temp = explode("[",$lettretype["titre"]);
184     for($i=1;$i<sizeof($temp);$i++){
185     $temp1 = explode("]",$temp[$i]);
186     $titre=str_replace("[".$temp1[0]."]",$row[$temp1[0]],$titre);
187     }
188     //
189     //************************************************
190     // traitement attribut affichage <b> dans titre *
191     // aout 2008 *
192     //************************************************
193     $pos_t="";
194     $pos_t = strpos($titre, "<b>");
195 fmichon 323 if(DBCHARSET=='UTF8')
196 fraynaud 88 $titre= utf8_decode($titre);
197     if ($pos_t === false) {
198     // compatibilite :aucun attribut affichage <b> dans corps
199     //***************************************************************************
200     if(trim($titre)!="") {
201     $pdf->SetFont($lettretype["titrefont"],
202     $lettretype["titreattribut"],
203     $lettretype["titretaille"]);
204     $pdf->SetXY($lettretype["titreleft"],
205     $lettretype["titretop"]);
206     $pdf->MultiCell($lettretype["titrelargeur"],
207     $lettretype["titrehauteur"],
208     $titre,
209     $lettretype["titrebordure"],
210     $lettretype["titrealign"],
211     0);
212     }
213     //****************************************************************************
214     // attribut affichage <b> present dans titre
215     }else{
216     $pdf->SetY($lettretype["titretop"]);
217     $tmptitre="";
218     $tmptitre=explode('<b>', $titre);
219     //
220     for($y=0;$y<sizeof($tmptitre);$y++){
221     $pos1="";
222     $pos1 = strpos($tmptitre[$y], "</b>");
223     //
224     if ($pos1 === false) {
225     if(trim($tmptitre[$y])!="") {
226     $pdf->SetFont($lettretype["titrefont"],$lettretype["titreattribut"],$lettretype["titretaille"]);
227     $pdf->SetX($lettretype["titreleft"]);
228     $pdf->MultiCell($lettretype["titrelargeur"],$lettretype["titrehauteur"],$tmptitre[$y],$lettretype["titrebordure"],$lettretype["titrealign"],0);
229     }
230     }else{
231     $ctrl_fin_b=0;
232     $ctrl_fin_b=substr_count($tmptitre[$y],"</b>");
233     $lettretype["titreattribut"] = str_replace("B","",$lettretype["titreattribut"]);
234     $lettretype["titreattribut"] = str_replace("b","",$lettretype["titreattribut"]);
235     if ($ctrl_fin_b>1){
236     // nbr </b> superieur a 1
237     if(trim($tmptitre[$y])!="") {
238     $pdf->SetFont($lettretype["titrefont"],"B".$lettretype["titreattribut"],$lettretype["titretaille"]);
239     $pdf->SetX($lettretype["titreleft"]);
240     $pdf->MultiCell($lettretype["titrelargeur"],$lettretype["titrehauteur"],$tmptitre[$y],$lettretype["titrebordure"],$lettretype["titrealign"],0);
241     }
242     }else{
243     $tmptitre1 = explode("</b>",$tmptitre[$y]);
244     //
245     if(trim($tmptitre1[0])!="") {
246     $pdf->SetFont($lettretype["titrefont"],"B".$lettretype["titreattribut"],$lettretype["titretaille"]);
247     $pdf->SetX($lettretype["titreleft"]);
248     $pdf->MultiCell($lettretype["titrelargeur"],$lettretype["titrehauteur"],$tmptitre1[0],$lettretype["titrebordure"],$lettretype["titrealign"],0);
249     }
250     if(trim($tmptitre1[1])!=""){
251     $pdf->SetFont($lettretype["titrefont"],$lettretype["titreattribut"],$lettretype["titretaille"]);
252     $pdf->SetX($lettretype["titreleft"]);
253     $pdf->MultiCell($lettretype["titrelargeur"],$lettretype["titrehauteur"],$tmptitre1[1],$lettretype["titrebordure"],$lettretype["titrealign"],0);
254     }
255     }
256     //
257     }
258     }
259     }
260     // corps
261    
262     $temp = explode("[",$lettretype["corps"]);
263     for($i=1;$i<sizeof($temp);$i++){
264     $temp1 = explode("]",$temp[$i]);
265 jbastide 210 $corps=str_replace("[".$temp1[0]."]",$row[$temp1[0]],$corps);
266     //18//11/2011 +
267     $temp1[0]="";
268     //FIN +
269 fraynaud 88 }
270 jbastide 210 //18//11/2011++
271     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
272     $pdf->SetXY($lettretype["corpsleft"],$lettretype["corpstop"]);
273     //FIN++
274     //18//11/2011 AJOUT \p
275     if (strstr($corps,'\p')){
276     $temp="";
277     $temp = explode("\p",$corps);
278     ////////////////////////
279     // image en fond de page
280     if (file_exists("../trs/bg_".$obj."1.png")) {
281     $pdf->Image("../trs/bg_".$obj."1.png", 0, 0, 210, 0, '', '');
282     }
283     ////////////////////////
284     //************************************************
285     //traitement attribut affichage <b> dans $temp[0]*
286     // aout 2008 *
287     //************************************************
288     $pos="";
289     $pos = strpos($temp[0], "<b>");
290     if ($pos === false) {
291     // compatibilite :aucun attribut affichage dans corps
292     //***************************************************************************
293     $pdf->MultiCell($lettretype["corpslargeur"],$lettretype["corpshauteur"],$temp[0],$lettretype["corpsbordure"],$lettretype["corpsalign"],0);
294     }else{
295     $tmp="";
296     $tmp=explode('<b>', $temp[0]);
297     //
298     for($x=0;$x<sizeof($tmp);$x++){
299     $pos1="";
300     $pos1 = strpos($tmp[$x], "</b>");
301     //
302     if ($pos1 === false) {
303     if(trim($tmp[$x])!=""){
304     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
305     $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
306     }
307     }else{
308     $ctrl_fin_b=0;
309     $ctrl_fin_b=substr_count($tmp[$x],"</b>");
310     $lettretype["corpsattribut"] = str_replace("B","",$lettretype["corpsattribut"]);
311     $lettretype["corpsattribut"] = str_replace("b","",$lettretype["corpsattribut"]);
312     if ($ctrl_fin_b>1){
313     // nbr </b> superieur a 1
314     if(trim($tmp[$x])!=""){
315     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
316     $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
317     }
318     }else{
319     $tmp1 = explode("</b>",$tmp[$x]);
320     //
321     if(trim($tmp1[0])!=""){
322     //
323     $nbcar=0;
324     $nbcar=$tmp1[0];
325     if( strlen($nbcar)==1) {
326     // ??????bug fpdf write si affichage 1 seul caractere -> ajout 2 blancs
327     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
328     $pdf->write($lettretype["corpshauteur"]," ".$tmp1[0]." ");
329     }else{
330     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
331     $pdf->write($lettretype["corpshauteur"],$tmp1[0]);
332     }
333     }
334     if(trim($tmp1[1])!=""){
335     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
336     $pdf->write($lettretype["corpshauteur"],$tmp1[1]);
337     }
338     }
339     //
340     }
341     }
342     }
343     for($i=1;$i<sizeof($temp);$i++){
344     $pdf->AddPage();
345     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
346     $pdf->SetXY($lettretype["corpsleft"],$lettretype["titretop"]);
347     ////////////////////////
348     // image en fond de page
349     if (file_exists("../trs/bg_".$obj.($i+1).".png")) {
350     $pdf->Image("../trs/bg_".$obj.($i+1).".png", 0, 0, 210, 0, '', '');
351     }
352     //************************************************
353     //traitement attribut affichage <b> dans $temp[$i]*
354     // aout 2008 *
355     //************************************************
356     $pos="";
357     $pos = strpos($temp[$i], "<b>");
358     if ($pos === false) {
359     // compatibilite :aucun attribut affichage dans corps
360     //***************************************************************************
361     $pdf->MultiCell($lettretype["corpslargeur"],$lettretype["corpshauteur"],$temp[$i],$lettretype["corpsbordure"],$lettretype["corpsalign"],0);
362     }else{
363     $tmp="";
364     $tmp=explode('<b>', $temp[$i]);
365     //
366     for($x=0;$x<sizeof($tmp);$x++){
367     $pos1="";
368     $pos1 = strpos($tmp[$x], "</b>");
369     //
370     if ($pos1 === false) {
371     if(trim($tmp[$x])!=""){
372     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
373     $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
374     }
375     }else{
376     $ctrl_fin_b=0;
377     $ctrl_fin_b=substr_count($tmp[$x],"</b>");
378     $lettretype["corpsattribut"] = str_replace("B","",$lettretype["corpsattribut"]);
379     $lettretype["corpsattribut"] = str_replace("b","",$lettretype["corpsattribut"]);
380     if ($ctrl_fin_b>1){
381     // nbr </b> superieur a 1
382     if(trim($tmp[$x])!=""){
383     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
384     $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
385     }
386     }else{
387     $tmp1 = explode("</b>",$tmp[$x]);
388     //
389     if(trim($tmp1[0])!=""){
390     //
391     $nbcar=0;
392     $nbcar=$tmp1[0];
393     if( strlen($nbcar)==1) {
394     // ??????bug fpdf write si affichage 1 seul caractere -> ajout 2 blancs
395     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
396     $pdf->write($lettretype["corpshauteur"]," ".$tmp1[0]." ");
397     }else{
398     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
399     $pdf->write($lettretype["corpshauteur"],$tmp1[0]);
400     }
401     }
402     if(trim($tmp1[1])!=""){
403     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
404     $pdf->write($lettretype["corpshauteur"],$tmp1[1]);
405     }
406     }
407     //
408     }
409     }
410     }
411     }
412     }else{ //18/11/2011 fin ajout \p
413     //************************************************
414     // traitement attribut affichage <b> dans corps *
415     // aout 2008 *
416     //************************************************
417     $pos="";
418     $pos = strpos($corps, "<b>");
419 fmichon 323 if(DBCHARSET=='UTF8')
420 jbastide 210 $corps= utf8_decode($corps);
421     if ($pos === false) {
422     // compatibilite :aucun attribut affichage dans corps
423     //***************************************************************************
424     if(trim($corps)!="") {
425     $pdf->SetFont($lettretype["corpsfont"],
426     $lettretype["corpsattribut"],
427     $lettretype["corpstaille"]);
428     $pdf->SetXY($lettretype["corpsleft"],
429     $lettretype["corpstop"]);
430     $pdf->MultiCell($lettretype["corpslargeur"],
431     $lettretype["corpshauteur"] ,
432 jbastide 212 $corps,
433 jbastide 210 $lettretype["corpsbordure"],
434     $lettretype["corpsalign"],
435     0);
436     }
437     //****************************************************************************
438     // attribut affichage <b> present dans corps
439     }else{
440     $pdf->SetXY($lettretype["corpsleft"],$lettretype["corpstop"]);
441     $tmp="";
442     $tmp=explode('<b>', $corps);
443 fraynaud 88 //
444 jbastide 210 for($x=0;$x<sizeof($tmp);$x++){
445     $pos1="";
446     $pos1 = strpos($tmp[$x], "</b>");
447     //
448     if ($pos1 === false) {
449 fraynaud 88 if(trim($tmp[$x])!=""){
450 jbastide 210 $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
451     $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
452 fraynaud 88 }
453     }else{
454 jbastide 210 $ctrl_fin_b=0;
455     $ctrl_fin_b=substr_count($tmp[$x],"</b>");
456     $lettretype["corpsattribut"] = str_replace("B","",$lettretype["corpsattribut"]);
457     $lettretype["corpsattribut"] = str_replace("b","",$lettretype["corpsattribut"]);
458     if ($ctrl_fin_b>1){
459     // nbr </b> superieur a 1
460     if(trim($tmp[$x])!=""){
461 fraynaud 88 $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
462 jbastide 210 $pdf->write($lettretype["corpshauteur"],$tmp[$x]);
463 fraynaud 88 }
464 jbastide 210 }else{
465     $tmp1 = explode("</b>",$tmp[$x]);
466     //
467     if(trim($tmp1[0])!=""){
468     //
469     $nbcar=0;
470     $nbcar=$tmp1[0];
471     if( strlen($nbcar)==1) {
472     // ??????bug fpdf write si affichage 1 seul caractere -> ajout 2 blancs
473     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
474     $pdf->write($lettretype["corpshauteur"]," ".$tmp1[0]." ");
475     }else{
476     $pdf->SetFont($lettretype["corpsfont"],"B".$lettretype["corpsattribut"],$lettretype["corpstaille"]);
477     $pdf->write($lettretype["corpshauteur"],$tmp1[0]);
478     }
479     }
480     if(trim($tmp1[1])!=""){
481     $pdf->SetFont($lettretype["corpsfont"],$lettretype["corpsattribut"],$lettretype["corpstaille"]);
482     $pdf->write($lettretype["corpshauteur"],$tmp1[1]);
483     }
484 fraynaud 88 }
485 jbastide 210 //
486 fraynaud 88 }
487 jbastide 210 }
488     }
489     } //18/11/2011 fin de 'pas de \p'
490 fraynaud 88 // fermeture pdf
491 nhaye 469 $pdf->Output($obj.date("dmY").".pdf","D");
492 fraynaud 88 }
493     }
494     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26