config=$config; // Pas d'heritage multiple en php :( $this->extendPDFProductor = new PDFProductor(); $this->extendPDFProductor->initPDF(); } function getElement($uid){ // Controle detournement utilisateur session_start(); $this->controleUtilisateur($uid[0]); // uid[0] : utilisateur obligatoire // uid[1] : si absent : valeur 'all' (commune) // uid[2] : si absent : valeur 'all' (date) // uid[3] : si absent : valeur 'all' (recherche libre) // uid[4] : si absent : valeur 'all' (station) $DB=$this->connectDB($this->config,'database_cel'); if (!isset($uid[1]) || $uid[1]=="" || $uid[1]=="all" ) { $uid[1]="all"; $query_location=""; } else { $query_location=" AND location='".$DB->escapeSimple($uid[1])."' "; } if (!isset($uid[2]) || $uid[2]=="" || $uid[2]=="all") { $uid[2]="all"; $query_date=""; } else { $query_date=" AND date_observation='".$DB->escapeSimple($uid[2])."' "; } if (!isset($uid[3]) || $uid[3]=="" || $uid[3]=="all") { $uid[3]="all"; $query_libre=""; } else { $query_libre=" AND (nom_sel like '%".$DB->escapeSimple($uid[3])."%' OR nom_ret like '%".$DB->escapeSimple($uid[3])."%' OR station like '%".$DB->escapeSimple($uid[3])."%' OR commentaire like '%".$DB->escapeSimple($uid[3])."%') "; } if (!isset($uid[4]) || $uid[4]=="" || $uid[4]=="all") { $uid[4]="all"; $query_station=""; } else { $query_station=" AND station='".$DB->escapeSimple($uid[4])."' "; } $value=array(); $query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, date_observation," . " station, commentaire, transmission FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' " . $query_location. $query_date. $query_libre. $query_station. " ORDER BY ordre "; $res =& $DB->query($query); if (DB::isError($res)) { die($res->getMessage()); } // Set up the pdf object. $pdf = &File_PDF::factory(array('orientation' => 'P', 'format' => 'A4')); // DesActivate compression. $pdf->setCompression(false); $pdf->setMargins(0, 0); // Enable automatic page breaks. $pdf->setAutoPageBreak(true); // Start the document. $pdf->open(); // Start a page. $pdf->addPage(); $pdf->setFont('Times', '' , 12); $i=1; $tempfn = tempnam("",""); while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) { // Denullifiage foreach($row as $k=>$v) { if (($v=="null") || ($v=="000null")) { $row[$k]=""; } else { $row[$k]=utf8_decode($v); } } if ($row['date_observation']!="0000-00-00 00:00:00") { list($year,$month,$day)= split ('-',$row['date_observation']); list($day)= split (' ',$day); $row['date_observation']=$day."/".$month."/".$year; } else { $row['date_observation']="00/00/0000"; } $text= $row['nom_sel']." ".$row['num_nom_sel']." ".$row['nom_ret']." ".$row['num_nom_ret']." ".$row['num_taxon']." ". $row['famille']." ".$row['location']." ".$row['id_location']." ".$row['date_observation']." ".$row['station']; $row['commentaire']; $pdf->write(10, $text."\n"); $projet_photo = 'photoflora'; $tab_retour[$projet_photo]=chercherIllustrationsServiceXml(sprintf(EF_URL_PHOTOFLORA_SERVICE, $row['num_taxon'])); $url_miniature =''; foreach ($tab_retour[$projet_photo] as $cle => $illustration) { if (preg_match(EF_URL_PHOTOFLORA_REGEXP, $illustration['about'], $match)) { $abreviation = $match[1]; $fichier = $match[2]; $url_miniature = sprintf(EF_URL_PHOTOFLORA_IMG_MIN, $abreviation, $fichier);; // Priorite aux images en png if (strstr($fichier, '.png')) { break; } } } if ($url_miniature!='') { list($debut,$ext)=split("\.",basename($url_miniature)); $temp = fopen($tempfn, "w"); $buf=file_get_contents($url_miniature); fwrite($temp,$buf); fclose($temp); $pdf->image($tempfn,10,($i*10),0,0,$ext); } $i++; } // Print the generated file. echo $pdf->output("Rapport"); } } function chercherIllustrationsServiceXml($url) { return analyserFichierRdf($url); } function analyserFichierRdf($chemin) { $aso_info = array(); $dom = new DOMDocument(); $dom->validateOnParse = true; if (preg_match('/^http:\/\//', $chemin)) { $dom->loadXML(file_get_contents($chemin)); } else { $dom->load($chemin); } $tab_infos = array(); foreach ($dom->getElementsByTagNameNS('http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'Description') as $rdf_description) { $aso_info['about'] = $rdf_description->getAttribute('about'); $aso_info['dc:identifier'] = $rdf_description->getAttribute('identifier'); $aso_info['dc:title'] = utf8_decode($rdf_description->getAttribute('title')); $aso_info['dc:creator'] = utf8_decode($rdf_description->getAttribute('creator')); $aso_info['dc:contributor'] = utf8_decode($rdf_description->getAttribute('contributor')); $aso_info['dc:publisher'] = utf8_decode($rdf_description->getAttribute('publisher')); $aso_info['dc:type'] = utf8_decode($rdf_description->getAttribute('type')); $aso_info['dc:format'] = utf8_decode($rdf_description->getAttribute('format')); if (function_exists('date_default_timezone_set')) { date_default_timezone_set('Europe/Paris'); } if (preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $rdf_description->getAttribute('created'))) { $aso_info['dcterms:created'] = date('j-m-Y � H:i:s', strtotime($rdf_description->getAttribute('created'))); } else { $aso_info['dcterms:created'] = $rdf_description->getAttribute('created'); } $aso_info['dcterms:dateSubmitted'] = utf8_decode($rdf_description->getAttribute('dateSubmitted')); $aso_info['dcterms:spatial'] = utf8_decode($rdf_description->getAttribute('spatial')); $aso_info['dcterms:licence'] = utf8_decode($rdf_description->getAttribute('licence')); $tab_infos[$rdf_description->getAttribute('identifier')] = $aso_info; } //echo '
'.$chemin.print_r($tab_infos, true).'
'; return $tab_infos; } /* +--Fin du code ---------------------------------------------------------------------------------------+ * $Log$ * Revision 1.2 2008-01-30 08:57:28 ddelon * fin mise en place mygwt * * Revision 1.1 2007-06-06 13:31:16 ddelon * v0.09 * * Revision 1.4 2007-05-22 12:54:09 ddelon * Securisation acces utilisateur * * * */ ?>