Subversion Repositories eFlore/Applications.cel

Rev

Rev 2095 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2095 Rev 2100
Line 22... Line 22...
22
					$this->viderMotsClesTexteImagesSansMotsCles();
22
					$this->viderMotsClesTexteImagesSansMotsCles();
23
					break;
23
					break;
24
				case 'viderMotsClesTexteObsSansMotsCles' :
24
				case 'viderMotsClesTexteObsSansMotsCles' :
25
					$this->viderMotsClesTexteObsSansMotsCles();
25
					$this->viderMotsClesTexteObsSansMotsCles();
26
					break;
26
					break;
-
 
27
				case 'regenererChampsTailleImage' :
-
 
28
					$this->regenererChampsTailleImage();
-
 
29
					break;
27
				default :
30
				default :
28
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
31
					$msg = "Erreur : la commande '$cmd' n'existe pas!\n".
29
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
32
						"Commandes existantes : regenererMotsClesTexteImages, regenererMotsClesTexteObs";
30
					throw new Exception($msg);
33
					throw new Exception($msg);
31
			}
34
			}
Line 75... Line 78...
75
	protected function viderMotsClesTexteObsSansMotsCles() {
78
	protected function viderMotsClesTexteObsSansMotsCles() {
76
		$req = "UPDATE cel_obs SET mots_cles_texte = NULL WHERE id_observation NOT IN (SELECT id_element_lie FROM cel_mots_cles_obs_liaison)";
79
		$req = "UPDATE cel_obs SET mots_cles_texte = NULL WHERE id_observation NOT IN (SELECT id_element_lie FROM cel_mots_cles_obs_liaison)";
77
		$res = $this->bdd->requeter($req);
80
		$res = $this->bdd->requeter($req);
78
		echo "$res observations mises à jour\n";
81
		echo "$res observations mises à jour\n";
79
	}
82
	}
-
 
83
	
-
 
84
	protected function regenererChampsTailleImage() {
-
 
85
		$req = "SELECT id_image FROM cel_images WHERE hauteur = 0 OR largeur = 0";
-
 
86
		$res = $this->bdd->recupererTous($req);
-
 
87
		
-
 
88
		echo count($res)." images concernees \n";
-
 
89
		echo "Début du traitement \n";
-
 
90
		$images_maj = 0;
-
 
91
		$image_meta_ratees = 0;
-
 
92
		$images_inexistantes = 0;
-
 
93
		
-
 
94
		foreach($res as $image) {
-
 
95
			$chemin = $this->getCheminImage($image['id_image']); 
-
 
96
			if(file_exists($chemin)) {
-
 
97
				list($largeur, $hauteur) = @getimagesize($chemin);
-
 
98
				if(is_numeric($largeur) && is_numeric($hauteur)) {
-
 
99
					$req_maj = "UPDATE cel_images SET hauteur = '".$hauteur."', largeur = '".$largeur."' ".
-
 
100
					           "WHERE id_image = '".$image['id_image']."'";
-
 
101
					$maj_taille_image = $this->bdd->requeter($req_maj);
-
 
102
					if($maj_taille_image) {
-
 
103
						$images_maj++;
-
 
104
					}
-
 
105
				} else {
-
 
106
					$image_meta_ratees++;
-
 
107
				}
-
 
108
			} else {
-
 
109
				$images_inexistantes++;
-
 
110
			}
-
 
111
			$this->afficherAvancement("\tImages traitées : ", 1);
-
 
112
		}	
-
 
113
		echo "\n";
-
 
114
		echo "Fin de la régénération des tailles des images à partir des metadonnées \n";
-
 
115
		echo $images_maj." images ont vu leur infos de taille régénérées \n";
-
 
116
		echo $image_meta_ratees." images ont raté l'extraction de metadonnées \n";
-
 
117
		echo $images_inexistantes." images n'existent pas en tant que fichier \n";
-
 
118
	}
-
 
119
	
-
 
120
	private function getCheminImage($id) {
-
 
121
		$chemin_base = Config::get('dossierImages');
-
 
122
				
-
 
123
		$id = sprintf('%09s', $id);
-
 
124
		$id = wordwrap($id, 3 , '_', true);
-
 
125
		
-
 
126
		list($dossierNiveau1, $dossierNiveau2) = explode('_', $id);
-
 
127
		
-
 
128
		$chemin = $chemin_base.$dossierNiveau1.'/'.$dossierNiveau2.'/O/'.$id.'_O.jpg';
-
 
129
		
-
 
130
		return $chemin;
-
 
131
	}
80
}
132
}
81
?>
133
?>
82
134