Rev 624 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// In : utf8// Out : iso8859// Export vers feuille de calcul d'une selection de relevesClass InventoryExport extends DBAccessor {var $config;var $extendSpreadsheetProductor;function InventoryExport($config) {$this->config=$config;// Pas d'heritage multiple en php :($this->extendSpreadsheetProductor = new SpreadsheetProductor();$this->extendSpreadsheetProductor->initSpreadsheet();}function getElement($uid){// Controle detournement utilisateursession_start();$this->controleUtilisateur($uid[0]);$DB=$this->connectDB($this->config,'database_cel');$criteres = array() ;if(isset($uid[1])){$criteres = explode("&", $uid[1]) ;}$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation," ." lieudit, station, milieu, commentaire, transmission, coord_x, coord_y, ref_geo FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND " ;foreach($criteres as $pair){$nom_valeur = explode("=",$pair) ;if(sizeof($nom_valeur) != 0) {if($nom_valeur[0] == 'limite'){$limite = $DB->escapeSimple($nom_valeur[1]) ;}elseif($nom_valeur[0] == 'numero_page') {$numero_page = $DB->escapeSimple($nom_valeur[1]) ;}elseif($nom_valeur[0] == 'annee') {$query .= "year(date_observation) = '".$DB->escapeSimple($nom_valeur[1])."'" ;$query .= ' AND ' ;}elseif($nom_valeur[0] == 'mois') {$query .= "month(date_observation) = '".$DB->escapeSimple($nom_valeur[1])."'" ;$query .= ' AND ' ;}elseif($nom_valeur[0] == 'jour') {$query .= "day(date_observation) = '".$DB->escapeSimple($nom_valeur[1])."'" ;$query .= ' AND ' ;}elseif($nom_valeur[0] == 'mots_cles') {$liste_mc = explode(";",$nom_valeur[1]);$query .= '(' ;foreach($liste_mc as $mot) {if(trim($mot) != ''){$query .= "mots_cles LIKE '%".$DB->escapeSimple($mot)."%' OR " ;}}$query = rtrim($query,' OR ');$query .= ') AND ' ;}elseif ($nom_valeur[0] == 'nom_taxon') {$nom_valeur[1] = str_replace("*","%",$nom_valeur[1]);$query .= "(nom_sel LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR identifiant LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR ordre LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR nom_sel LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR num_nom_sel LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR nom_ret LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR num_nom_ret LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR num_taxon LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR location LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR id_location LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR date_observation LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR lieudit LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR station LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR milieu LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR commentaire LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR transmission LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR coord_x LIKE '%".$DB->escapeSimple($nom_valeur[1])."%' OR coord_y LIKE '%".$DB->escapeSimple($nom_valeur[1])."%')";//"%' OR famille LIKE '%".$DB->escapeSimple($nom_valeur[1]).}else {if(trim($nom_valeur[0]) != ''){$query .= $nom_valeur[0]." = '".$DB->escapeSimple($nom_valeur[1])."'" ;$query .= ' AND ' ;}}}}$query = rtrim($query,' AND ') ;$query .=" ORDER BY ordre ";$res =& $DB->query($query);if (DB::isError($res)) {die($res->getMessage());}// Creating a workbook$workbook = new Spreadsheet_Excel_Writer();$workbook->send('liste.xls');// Creating a worksheet$worksheet = $workbook->addWorksheet('Liste');$worksheet->write(0,0,'Espece');$worksheet->write(0,1,'Numero nomenclatural');$worksheet->write(0,2,'Nom retenu');$worksheet->write(0,3,'Numero nomenclatural nom retenu');$worksheet->write(0,4,'Numero taxonomique');$worksheet->write(0,5,'Famille');$worksheet->write(0,6,'Commune');$worksheet->write(0,7,'Identifiant Commune');$worksheet->write(0,8,'Date');$worksheet->write(0,9,'Lieu-dit');$worksheet->write(0,10,'Station');$worksheet->write(0,11,'Milieu');$worksheet->write(0,12,'Notes');$worksheet->write(0,13,'Latitude');$worksheet->write(0,14,'Longitude');$worksheet->write(0,15,'Referentiel Geographique');$i=1;while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {// Denullifiageforeach($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";}$worksheet->write($i,0,$row['nom_sel']);$worksheet->write($i,1,$row['num_nom_sel']);$worksheet->write($i,2,$row['nom_ret']);$worksheet->write($i,3,$row['num_nom_ret']);$worksheet->write($i,4,$row['num_taxon']);$worksheet->write($i,5,$row['famille']);$worksheet->write($i,6,$row['location']);$worksheet->write($i,7,$row['id_location']);$worksheet->write($i,8,$row['date_observation']);$worksheet->write($i,9,$row['lieudit']);$worksheet->write($i,10,$row['station']);$worksheet->write($i,11,$row['milieu']);$worksheet->write($i,12,$row['commentaire']);$worksheet->write($i,13,$row['coord_x']);$worksheet->write($i,14,$row['coord_y']);$worksheet->write($i,15,$row['ref_geo']);$i++;}$workbook->close();exit();}}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.7 2008-11-13 11:29:12 ddelon* Reecriture gwt-ext** Revision 1.6 2008-01-30 08:57:28 ddelon* fin mise en place mygwt** Revision 1.5 2007-06-06 13:31:16 ddelon* v0.09** Revision 1.4 2007-05-22 12:54:09 ddelon* Securisation acces utilisateur****/?>