/trunk/jrest/services/ImageRecreation.php |
---|
1,7 → 1,7 |
<?php |
Class ImageRecreation extends DBAccessor { |
private $droits = 0777; |
private $droits = 0755; |
private $formats = array('CRX2S','CXS','CS','S','M','L','XL','X2L','X3L'); |
public function ImageRecreation($config) { |
10,20 → 10,18 |
} |
public function getRessource() { |
return $this->getElement(array()); |
} |
public function getElement($param) { |
ini_set ('max_execution_time',0); |
$this->itererRecursivement($this->config['cel_db']['chemin_images']); |
} |
public function itererRecursivement($dossier, $formats = null) { |
public function recreerMiniaturesRecursivement() { |
$this->itererRecursivement($this->config['cel_db']['chemin_images']); |
} |
if($formats == null) { |
$formats = $this->getFormats(); |
} |
public function itererRecursivement($dossier) { |
// on ne parse que le dossier des images originales |
$dossiers_a_exclure = $this->getFormats(); |
48,10 → 46,10 |
$nom_fichier = $fichier_ou_dossier->getFilename(); |
$infos_image_originale = $this->obtenirImageEtInfosPourChemin($fichier_ou_dossier->getPathname()); |
$id = $this->convertirBaseNomFichierVersIdBdd($nom_fichier, $formats); |
$id = $this->convertirBaseNomFichierVersIdBdd($nom_fichier, $this->formats); |
// creation de miniatures pour chacuns des formats définis |
foreach($formats as $format) { |
foreach($this->formats as $format) { |
$this->creerEtStockerMiniatureFichierImageSelonFormat($id, $infos_image_originale, $format); |
} |
385,7 → 383,7 |
public function recompresserImageSurDisqueEnPreservantMeta($chemin_fichier, $compression = 100) { |
$blob = file_get_contents($chemin_fichier); |
/*$blob = file_get_contents($chemin_fichier); |
$image_a_compresser = new Imagick(); |
$image_a_compresser->readImageBlob($blob, $chemin_fichier); |
395,7 → 393,7 |
$image_a_compresser->writeImage($chemin_fichier); |
$image_a_compresser->destroy(); |
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits); |
chmod($chemin_sur_serveur_final.'/'.$nom_fichier,$this->droits);*/ |
} |
public function renvoyerEtCreerImageCarreeBlancheSelonFormat($cote) { |
/trunk/jrest/services/InventoryObservationList.php |
---|
198,7 → 198,14 |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['id_location']=="null") $pairs['id_location']="000null"; |
if ($pairs['id_location']=="null") { |
$pairs['id_location']="000null"; |
} else { |
// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0 |
if (strlen($pairs['id_location']) == 1) { |
$pairs['id_location'] = '0'.$pairs['id_location']; |
} |
} |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['station']=="null") $pairs['station']="000null"; |
/trunk/jrest/services/InventoryImageListPublic.php |
---|
2,8 → 2,10 |
Class InventoryImageListPublic extends DBAccessor { |
private $DB = null; |
private $start = 0; |
private $limit = 50; |
private $limit = 100; |
private $distinct = true; |
private $criteres = array('mot_cles' => 'c.ci_meta_mots_cles', |
22,37 → 24,109 |
} |
function getElement($uid) |
{ |
{ |
// uid[0] : utilisateur obligatoire |
// uid[1] : critères de filtrage de la forme critère1:valeur1;critère2:valeur2 |
$DB=$this->connectDB($this->config,'cel_db'); |
$this->DB = $this->connectDB($this->config,'cel_db'); |
$criteres = array() ; |
if($uid[0] != '*') { |
if($uid[0] == '*') { |
$criteres = array(); |
} else { |
$criteres[$this->criteres['auteur']] = $uid[0]; |
if(!$this->estUneRechercheGenerale()) { |
$criteres = $this->traiterCriteres($_GET); |
if(empty($criteres)) { |
header("content-type: text/html"); |
$images_json = json_encode(array()); |
print $images_json; |
exit() ; |
} |
} |
} |
$criteres = $this->traiterCriteres($_GET) ; |
// Construction de la requête |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '. |
'FROM cel_obs_images a '. |
if(isset($_GET['start'])) { |
$this->start = $_GET['start']; |
} |
if(isset($_GET['limit'])) { |
$this->limit = $_GET['limit']; |
} |
// Construction de la requête |
$requete_debut = 'SELECT * '; |
$requete_nb = 'SELECT COUNT(*) as nb_res '; |
$jointure = 'FROM cel_obs_images a '. |
'INNER JOIN cel_inventory b '. |
'ON a.coi_ce_observation = b.ordre AND a.coi_ce_utilisateur = b.identifiant '. |
'INNER JOIN cel_images c '. |
'ON a.coi_ce_image = c.ci_id_image AND a.coi_ce_utilisateur = c.ci_ce_utilisateur '. |
'WHERE b.transmission = 1 AND b.identifiant = c.ci_ce_utilisateur AND '; |
$requete_debut .= $jointure; |
$requete_nb .= $jointure; |
if($this->estUneRechercheGenerale()) { |
$chaine_requete = $_GET['recherche']; |
$requete = $this->creerSousRequeteRechercheGenerale($chaine_requete) ; |
} else { |
$criteres = $this->traiterCriteres($_GET) ; |
$requete = $this->creerSousRequeteRechercheParCriteres($criteres); |
} |
$requete_debut .= $requete; |
$requete_nb .= $requete; |
$requete_debut = rtrim($requete_debut,'AND '); |
$requete_nb = rtrim($requete_nb,'AND '); |
$requete_debut .= ' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'c.ci_meta_date_ajout DESC').' '; |
$requete_debut .= "LIMIT $this->start,$this->limit "; |
$res =& $this->DB->query($requete_debut); |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
$res_nb =& $this->DB->query($requete_nb); |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
$images = array(); |
$total = 0; |
while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) { |
$images[]= $row; |
$nb_res = $row['nb_res']; |
} |
while ($row =& $res_nb->fetchrow(DB_FETCHMODE_ASSOC)) { |
$total= $row['nb_res']; |
} |
$numero_page = 0 ; |
$limite = 50 ; |
$resultat = array('total' => $total,'images' => $images, 'requete' => $requete_debut); |
$images_json = json_encode($resultat) ; |
header("content-type: text/html") ; |
print $images_json ; |
exit() ; |
} |
private function creerSousRequeteRechercheParCriteres($criteres) { |
$requete = ''; |
foreach($criteres as $pair) |
{ |
{ |
$nom_valeur = explode("=",$pair) ; |
if(sizeof($nom_valeur) != 0) |
59,11 → 133,11 |
{ |
if($nom_valeur[0] == "ci_limite") |
{ |
$this->limite = $DB->escapeSimple($nom_valeur[1]) ; |
$this->limite = $this->DB->escapeSimple($nom_valeur[1]) ; |
} |
elseif($nom_valeur[0] == "c.ci_numero_page") |
{ |
$this->start = $this->limite*$DB->escapeSimple($nom_valeur[1]) ; |
$this->start = $this->limite*$this->DB->escapeSimple($nom_valeur[1]) ; |
} |
elseif($nom_valeur[0] == "c.ci_meta_mots_cles") |
{ |
72,7 → 146,7 |
foreach($mots_cles_liste as $mot_cle) |
{ |
$requete .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_cle).'%"' ; |
$requete .= $nom_valeur[0].' LIKE "%'.$this->DB->escapeSimple($mot_cle).'%"' ; |
$requete .= ' AND ' ; |
} |
} |
83,23 → 157,35 |
foreach($mots_comment_liste as $mot_comment) |
{ |
$mot_comment = trim($mot_comment) ; |
$requete .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_comment).'%"' ; |
$requete .= $nom_valeur[0].' LIKE "%'.$this->DB->escapeSimple($mot_comment).'%"' ; |
$requete .= ' AND ' ; |
} |
} |
elseif($nom_valeur[0] == "c.ci_meta_date") |
{ |
$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$DB->escapeSimple($nom_valeur[1]).'"' ; |
$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$this->DB->escapeSimple($nom_valeur[1]).'"' ; |
$requete .= ' AND ' ; |
} |
elseif($nom_valeur[0] == "c.ci_id_tampon") |
{ |
$ids_tampon = rtrim($nom_valeur[1], ',') ; |
$requete .= 'c.ci_id_image IN ( '.$DB->escapeSimple($ids_tampon).')' ; |
$requete .= 'c.ci_id_image IN ( '.$this->DB->escapeSimple($ids_tampon).')' ; |
} |
else |
elseif($nom_valeur[0] == "b.nom_ret") |
{ |
$requete .= $nom_valeur[0].' = "'.$DB->escapeSimple($nom_valeur[1]) ; |
if($nom_valeur[1] == "indetermine") { |
$nom_valeur[1] = 'null'; |
} |
$requete .= ' ('; |
$requete .= $nom_valeur[0].' LIKE "%'.$this->DB->escapeSimple($nom_valeur[1]).'%"' ; |
$requete .= ' OR ' ; |
$requete .= 'b.nom_sel LIKE "%'.$this->DB->escapeSimple($nom_valeur[1]).'%"' ; |
$requete .= ') AND ' ; |
} else |
{ |
$requete .= $nom_valeur[0].' = "'.$this->DB->escapeSimple($nom_valeur[1]) ; |
$requete .= '" AND ' ; |
} |
} |
106,33 → 192,51 |
} |
$requete = rtrim($requete,' AND ') ; |
return $requete; |
} |
private function creerSousRequeteRechercheGenerale($chaine_requete) { |
if(trim($chaine_requete) == '') { |
return ''; |
} |
$chaine_requete = strtolower($chaine_requete); |
$chaine_requete = str_replace(' ','_',$chaine_requete); |
$requete = ' ('; |
$requete .= 'b.nom_ret LIKE "'.$this->DB->escapeSimple($chaine_requete).'%"' ; |
$requete .= ' OR ' ; |
$requete .= 'b.nom_sel LIKE "'.$this->DB->escapeSimple($chaine_requete).'%"' ; |
$requete .= ' OR ' ; |
$requete .= ' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'c.ci_meta_date_ajout DESC').' '; |
$requete .= "LIMIT $this->start,$this->limit "; |
$requete .= 'b.location LIKE "'.$this->DB->escapeSimple($chaine_requete).'%" ' ; |
$requete .= ' OR ' ; |
$res =& $DB->query($requete); |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
$images = array(); |
while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) { |
$images[]= $row; |
} |
$images_json = json_encode($images) ; |
header("content-type: text/html") ; |
print $images_json ; |
exit() ; |
$requete .= 'b.id_location LIKE "'.$this->DB->escapeSimple($chaine_requete).'%" ' ; |
$requete .= ' OR ' ; |
$requete .= 'c.ci_ce_utilisateur LIKE "'.$this->DB->escapeSimple($chaine_requete).'%" ' ; |
$requete .= ') '; |
return $requete; |
} |
private function estUneRechercheGenerale() { |
return isset($_GET['recherche']); |
} |
private function traiterCriteres($tableau_criteres) { |
$tableau_criteres_pour_bdd = array(); |
foreach($tableau_criteres as $nom_critere => $valeur_critere) { |
foreach($tableau_criteres as $nom_critere => $valeur_critere) { |
if(isset($this->criteres[$nom_critere])) { |
$tableau_criteres_pour_bdd[] = $this->criteres[$nom_critere].'='.$valeur_critere; |
} |
141,5 → 245,4 |
return $tableau_criteres_pour_bdd; |
} |
} |
?> |
/trunk/jrest/services/InventoryImageList.php |
---|
245,7 → 245,8 |
$id_fichiers = explode(",",$id) ; |
foreach($id_fichiers as $en_cours) |
{ |
supprimer_fichier($en_cours,$this->config['cel_db']['chemin_images']) ; |
$manipulateur_image = new ImageRecreation($this->config); |
$manipulateur_image->detruireImageSurDisque($id); |
} |
echo "OK" ; |
/trunk/jrest/services/LicenceUtilisateur.php |
---|
New file |
0,0 → 1,97 |
<?php |
/** |
David Delon david.delon@clapas.net 2007 |
Ce logiciel est r�gi par la licence CeCILL soumise au droit fran�ais et |
respectant les principes de diffusion des logiciels libres. Vous pouvez |
utiliser, modifier et/ou redistribuer ce programme sous les conditions |
de la licence CeCILL telle que diffus�e par le CEA, le CNRS et l'INRIA |
sur le site "http://www.cecill.info". |
En contrepartie de l'accessibilit� au code source et des droits de copie, |
de modification et de redistribution accord�s par cette licence, il n'est |
offert aux utilisateurs qu'une garantie limit�e. Pour les m�mes raisons, |
seule une responsabilit� restreinte p�se sur l'auteur du programme, le |
titulaire des droits patrimoniaux et les conc�dants successifs. |
A cet �gard l'attention de l'utilisateur est attir�e sur les risques |
associ�s au chargement, � l'utilisation, � la modification et/ou au |
d�veloppement et � la reproduction du logiciel par l'utilisateur �tant |
donn� sa sp�cificit� de logiciel libre, qui peut le rendre complexe � |
manipuler et qui le r�serve donc � des d�veloppeurs et des professionnels |
avertis poss�dant des connaissances informatiques approfondies. Les |
utilisateurs sont donc invit�s � charger et tester l'ad�quation du |
logiciel � leurs besoins dans des conditions permettant d'assurer la |
s�curit� de leurs syst�mes et ou de leurs donn�es et, plus g�n�ralement, |
� l'utiliser et l'exploiter dans les m�mes conditions de s�curit�. |
Le fait que vous puissiez acc�der � cet en-t�te signifie que vous avez |
pris connaissance de la licence CeCILL, et que vous en avez accept� les |
termes. |
*/ |
/* |
* User.php |
* |
* Cas d'utilisation : |
* Service identification utilisateur |
* |
* |
* 1: Aucun identifiant ni mot de passe transmis |
* 1: L'application retourne l'identifiant de session en cours |
* 2: Une identification est toujours active, cette identification est retournee |
* |
* 1: L'application recoit un identifiant et un mot de passe |
* 1 : On tente login |
* 2 : Si reussi etat connecte |
* 3 : sinon pas connecte |
* |
* 1: L'application recoit un identifiant et pas de mot de passe : |
* 1 : Deconnection |
* |
/* En resume : |
* /User/ : retour id si jamais connecte, sinon retour login_utilisateur |
* /User/login_utilisateur : logout |
* /User/login_utilisateur/password : login |
* |
*/ |
Class LicenceUtilisateur extends User { |
function LicenceUtilisateur($config) { |
$this->config=$config; |
} |
function updateElement($uid,$pairs) { |
if(!isset($uid[0])) { |
return; |
} |
$this->SetPersistentCookie("cel_licence_".md5($uid[0]), true, true); |
echo "cel_licence_".md5($uid[0]); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.5 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.4 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
* Revision 1.3 2007-05-21 18:12:20 ddelon |
* Gestion des importations locale de releves |
* |
* |
*/ |
?> |
/trunk/jrest/services/Inventory.php |
---|
109,7 → 109,14 |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['id_location']=="null") $pairs['id_location']="000null"; |
if ($pairs['id_location']=="null") { |
$pairs['id_location']="000null"; |
} else { |
// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0 |
if (strlen($pairs['id_location']) == 1) { |
$pairs['id_location'] = '0'.$pairs['id_location']; |
} |
} |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['station']=="null") $pairs['station']="000null"; |
224,9 → 231,15 |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['id_location']=="null") $pairs['id_location']="000null"; |
if ($pairs['id_location']=="null") { |
$pairs['id_location']="000null"; |
} else { |
// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0 |
if (strlen($pairs['id_location']) == 1) { |
$pairs['id_location'] = '0'.$pairs['id_location']; |
} |
} |
// Pour apparaitre le premier dans les tris ... |
if ($pairs['station']=="null") $pairs['station']="000null"; |
/trunk/jrest/services/InventoryImageLink.php |
---|
220,13 → 220,13 |
$DB=$this->connectDB($this->config,'cel_db'); |
$id_img = $DB->escapeSimple($uid[1]) ; |
$id_img = $uid[1] ; |
$id_obs = $DB->escapeSimple($uid[2]) ; |
$id = $uid[0] ; |
if (isset($id)) { |
$query = "DELETE FROM cel_obs_images WHERE coi_ce_image = ".$id_img." AND coi_ce_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ; |
$query = "DELETE FROM cel_obs_images WHERE coi_ce_image IN (".$id_img.") AND coi_ce_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ; |
} |
$res =& $DB->query($query); |
/trunk/jrest/services/User.php |
---|
77,7 → 77,6 |
function getRessource(){ |
$expireTime = 60*60*24*100; // 100 jours |
session_set_cookie_params($expireTime); |
102,8 → 101,9 |
} |
$admin = $this->isAdmin($retour) ; |
$licence_acceptee = $this->isLicenceAccepted($retour); |
$output = json_encode(array($retour,$connected,$admin)); |
$output = json_encode(array($retour,$connected,$admin,$licence_acceptee)); |
print($output); |
} |
138,8 → 138,10 |
} |
$admin = $this->isAdmin($retour) ; |
$licence_acceptee = $this->isLicenceAccepted($retour) ; |
$output = json_encode(array($retour,$connected,$admin)); |
$output = json_encode(array($retour,$connected,$admin,$licence_acceptee)); |
print($output); |
163,8 → 165,9 |
} |
$admin = $this->isAdmin($name) ; |
$licence_acceptee = $this->isLicenceAccepted($name) ; |
$retour= array("name"=>$name,"password"=>$password,"admin"=>$admin); |
$retour= array("name"=>$name,"password"=>$password,"admin"=>$admin,"licence_acceptee"=>$licence_acceptee); |
return $retour; |
239,6 → 242,21 |
} |
} |
} |
function isLicenceAccepted($utilisateur) { |
//print_r($_COOKIE); |
if($_COOKIE['cel_licence_'.md5($utilisateur)] == 1) { |
return true; |
} |
if($_COOKIE['cel_licence_'.md5($utilisateur)] == true) { |
return true; |
} |
return false; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |