Subversion Repositories eFlore/Applications.cel

Rev

Rev 416 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 416 Rev 436
Line 9... Line 9...
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
10
* @version   SVN: <svn_id>
11
* @link      /doc/jrest/
11
* @link      /doc/jrest/
12
*/
12
*/
Line 13... Line 13...
13
 
13
 
-
 
14
Class InventoryMaintenance extends Cel {
-
 
15
	
-
 
16
	private $nb_fichiers_orphelins = 0;
Line 14... Line -...
14
Class InventoryMaintenance extends DBAccessor {
-
 
15
 
-
 
16
	function InventoryMaintenance($config) {
-
 
17
		$this->config=$config;
-
 
18
	}
-
 
19
 
-
 
20
 
17
	private $espace_libere = 0;
21
	// renvoie l'enregistrement correspond � une image
18
 
22
	function getElement($uid)
19
	function getElement($uid)
23
	{
-
 
24
		if($this->isAdmin($uid[0])) {
-
 
25
			// uid[0] : utilisateur obligatoire
-
 
26
			// uid[1] : identifiant fonction
-
 
27
 
-
 
28
			// Controle detournement utilisateur
-
 
Line 29... Line 20...
29
		   	session_start();
20
	{			
30
			$this->controleUtilisateur($uid[0]);
21
		if ($this->authentifier()) {
31
 
22
 
32
			if($uid[1] == "dates_images") {
23
			if($uid[0] == "dates_images") {
-
 
24
				$this->reparerDatesImages();
-
 
25
			}
-
 
26
			
33
				$this->reparerDatesImages();
27
			if($uid[0] == "suppression_images_orphelines") {
34
			}
-
 
35
 
28
				$this->suppressionFichiersImagesOrphelins();
Line 36... Line 29...
36
		}
29
			}
Line 37... Line 30...
37
 
30
		}
Line 44... Line 37...
44
 
37
 
45
		$DB=$this->connectDB($this->config,'cel_db');
38
		$DB=$this->connectDB($this->config,'cel_db');
Line 46... Line 39...
46
		$res =& $DB->query($query);
39
		$res =& $DB->query($query);
47
 
40
 
48
        if (PEAR::isError($res)) {
41
        if (PEAR::isError($res)) {
49
			logger('InventoryMaintenance','Erreur lors de la réparation des dates '.$query);
42
			logger('InventoryMaintenance','Erreur lors de la r&eacute;paration des dates '.$query);
Line -... Line 43...
-
 
43
        	die($res->getMessage());
-
 
44
        }
-
 
45
 
-
 
46
		header("content-type: text/html charset=utf-8") ;
-
 
47
		print "Reparation des dates effectu&eacute;es" ;
-
 
48
		exit() ;
-
 
49
	}
50
        	die($res->getMessage());
50
	
-
 
51
	private function suppressionFichiersImagesOrphelins() {
-
 
52
		
-
 
53
		header("content-type: text/html") ;
-
 
54
		$header_html = '
-
 
55
		<head>		
-
 
56
			<title>Maintenance</title>
-
 
57
			
-
 
58
			<style type="text/css">
-
 
59
			
-
 
60
				h1 {
-
 
61
					color: blue;
-
 
62
				}
-
 
63
				
-
 
64
				h2 {
-
 
65
					color: green;
-
 
66
				}
-
 
67
				
-
 
68
				.titre_dossier {
-
 
69
					cursor: pointer;
-
 
70
				}
-
 
71
				
-
 
72
				li {
-
 
73
					list-style-type: none;
-
 
74
				}
-
 
75
				
-
 
76
				.liste_profondeur_1 {
-
 
77
					border: 1px solid blue;
-
 
78
					background-color: #DFDFFF;
-
 
79
				}
-
 
80
				
-
 
81
				.liste_profondeur_2 {
-
 
82
					border: 1px solid green;
-
 
83
					background-color: #E1FFDF;
-
 
84
					width: 1500px;
-
 
85
				}
-
 
86
				
-
 
87
				.liste_profondeur_3 {
-
 
88
					border: 1px solid yellow;
-
 
89
					background-color: #FFFCDF;
-
 
90
					width: 1200px;
-
 
91
				}
-
 
92
				
-
 
93
				.attention {
-
 
94
					border: 1px solid red;
-
 
95
					background-color: white;
-
 
96
					width: 600px;
-
 
97
				}
-
 
98
				
-
 
99
			</style>
-
 
100
			
-
 
101
			<script src="http://162.38.234.9/cel_consultation/squelettes/js/jquery-1.4.2.min.js" type="text/javascript"></script>
51
        }
102
			<script type="text/javascript" language="javascript">
-
 
103
			//<![CDATA[
-
 
104
			
-
 
105
				function initialiserElementsPliables() {
-
 
106
					$(\'.titre_dossier\').bind(\'click\', function() {
-
 
107
 
-
 
108
						$(this).siblings(\'li\').toggle();
-
 
109
						return false;
-
 
110
					});
-
 
111
				}
-
 
112
				
-
 
113
				$(document).ready(function() {
-
 
114
					initialiserElementsPliables();
-
 
115
				});
-
 
116
			//]]>
-
 
117
			</script> ';'
-
 
118
			
-
 
119
		</head>';
-
 
120
		
-
 
121
		echo $header_html;
-
 
122
		
-
 
123
        $chemin_base_images = $this->config['cel_db']['chemin_images'];
-
 
124
       	$profondeur = 1;
-
 
125
       	
-
 
126
       	echo '<ul id="liste_profondeur_0">';
-
 
127
			$this->itererRecursivement($chemin_base_images, $profondeur);
-
 
128
		echo '</ul>';
-
 
129
        
52
 
130
		print '<p class="resultat">Suppression des images orphelines effectu&eacute;es </p><br />' ;
53
		header("content-type: text/html") ;
131
		print '<p class="resultat">'.$this->nb_fichiers_orphelins.' fichiers orphelins ont &eacute;t&eacute; d&eacute;tect&eacute;s et supprim&eacute;s</p>';
-
 
132
		print '<p class="resultat">'.$this->convertir_poid($this->espace_libere).' d\'espace disque ont &eacute;t&eacute; &eacute;conomis&eacute; </p>';
-
 
133
		exit() ;
-
 
134
	}
-
 
135
	
-
 
136
	private function itererRecursivement($dossier, $profondeur) {
-
 
137
				
-
 
138
		foreach (new DirectoryIterator($dossier) as $fichier_ou_dossier) {
-
 
139
			
-
 
140
			if($fichier_ou_dossier->isDot()) {
-
 
141
				continue;
-
 
142
			}
-
 
143
				
-
 
144
			$dossiers_autorises = array('L','M','S');
-
 
145
			
-
 
146
			if($fichier_ou_dossier->getBasename() == 'export') {
-
 
147
				continue;
-
 
148
			}
-
 
149
			
-
 
150
			echo '<li>';
-
 
151
			
-
 
152
		    if($fichier_ou_dossier->isDir()) {
-
 
153
		    	
-
 
154
		    	$profondeur_dossier_fils = $profondeur + 1;
-
 
155
	    		echo '<ul class="liste_profondeur_'.$profondeur.'"> <h'.$profondeur.' class="titre_dossier"> analyse du dossier '.$fichier_ou_dossier->getPathname().'</h'.$profondeur.'>' ;
-
 
156
	    			$this->itererRecursivement($fichier_ou_dossier->getPathname(), $profondeur_dossier_fils);
-
 
157
	    		echo '</ul><br /><br />';
-
 
158
		    } else {	    	
-
 
159
		    	$nom_fichier = $fichier_ou_dossier->getFilename();
-
 
160
		    	$this->verifierImageSurDDExisteDansBaseDeDonnees($nom_fichier);
-
 
161
		    }
-
 
162
		    
-
 
163
		    echo '</li>';
-
 
164
		}
-
 
165
	}
-
 
166
	
-
 
167
	private function verifierImageSurDDExisteDansBaseDeDonnees($nom_fichier) {
-
 
168
		
-
 
169
		$nom_fichier_sans_extension = trim($nom_fichier, '.jpg');
-
 
170
		$nom_fichier_sans_extension = trim($nom_fichier_sans_extension, '_L');
-
 
171
		$nom_fichier_sans_extension = trim($nom_fichier_sans_extension, '_M');
-
 
172
		$nom_fichier_sans_extension = trim($nom_fichier_sans_extension, '_S');
-
 
173
		$id_image = str_replace('_', '', $nom_fichier_sans_extension);
-
 
174
		
-
 
175
		// suppression des 0 devant
-
 
176
		$id_image += 0;
-
 
177
		
-
 
178
		$requete_id_image_existe = 'SELECT COUNT(ci_id_image) as image_existe FROM cel_images WHERE ci_id_image = '.$id_image;
-
 
179
		$image_existe = $this->executerRequete($requete_id_image_existe);
-
 
180
		
-
 
181
		if($image_existe[0]['image_existe'] < 1) {
-
 
182
			echo $nom_fichier.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Image introuvable dans la base de donn&eacute;es';
-
 
183
			$this->supprimerImage($id_image);
-
 
184
		}
-
 
185
	}
-
 
186
	
-
 
187
	private function supprimerImage($id) {
-
 
188
		
-
 
189
		$chemin_sur_serveur = $this->config['cel_db']['chemin_images'] ;
-
 
190
 
-
 
191
		$id = sprintf('%09s', $id) ;
-
 
192
		$id = wordwrap($id, 3 , '_', true) ;
-
 
193
	
-
 
194
		$id_fichier = $id.".jpg" ;
-
 
195
	
-
 
196
		$niveauDossier = split("_", $id) ;
-
 
197
	
-
 
198
		$dossierNiveau1 = $niveauDossier[0] ;
-
 
199
		$dossierNiveau2 = $niveauDossier[1] ;
-
 
200
		
-
 
201
		$fichier_s = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2.'/S/'.$id.'_S.jpg' ;
-
 
202
		$fichier_m = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2.'/M/'.$id.'_M.jpg' ;
-
 
203
		$fichier_l = $chemin_sur_serveur.'/'.$dossierNiveau1.'/'.$dossierNiveau2.'/L/'.$id.'_L.jpg' ;
-
 
204
		
-
 
205
		$erreur = false;
-
 
206
		
-
 
207
		echo '<ul class="liste_suppression">';
-
 
208
		
-
 
209
		if(file_exists($fichier_s))
-
 
210
		{
-
 
211
			$this->espace_libere += filesize($fichier_s);
-
 
212
			$suppression_s = true;
-
 
213
			//$suppression_s = unlink($fichier_s) ;
-
 
214
	
-
 
215
			if(!$suppression_s) {
-
 
216
				$erreur =  '<li> probleme durant la suppression de l\'image '.$fichier_s.' </li>' ;
-
 
217
				echo $erreur;
-
 
218
			} else {
-
 
219
			//	$this->nb_fichiers_orphelins++;
-
 
220
			}
-
 
221
		} else {
-
 
222
			$erreur =  '<li> probleme : l\'image '.$fichier_s.' n\'existe pas </li>' ;
-
 
223
			echo $erreur;
-
 
224
		} // Si le fichier existe
-
 
225
	
-
 
226
		if(file_exists($fichier_m))
-
 
227
		{
-
 
228
			$this->espace_libere += filesize($fichier_m);
-
 
229
			$suppression_m = true;
-
 
230
			//$suppression_m = unlink($fichier_m) ;
-
 
231
			
-
 
232
			if(!$suppression_m) {
-
 
233
				$erreur =  '<li> probleme durant la suppression de l\'image '.$fichier_m.' </li>' ;
-
 
234
				$this->logger('CEL_images_bugs',$erreur);
-
 
235
			} else {
-
 
236
			//	$this->nb_fichiers_orphelins++;
-
 
237
			}
-
 
238
		} else {
-
 
239
			$erreur =  '<li> probleme : l\'image '.$fichier_m.' n\'existe pas </li>' ;
-
 
240
			echo $erreur;
-
 
241
		} // Si le fichier existe
-
 
242
	
-
 
243
		if(file_exists($fichier_l))
-
 
244
		{
-
 
245
			$this->espace_libere += filesize($fichier_l);
-
 
246
			$suppression_l = true;
-
 
247
			//$suppression_l = unlink($fichier_l) ;
-
 
248
			
-
 
249
			if(!$suppression_l) {
-
 
250
				$erreur =  '<li> probleme durant la suppression de l\'image '.$fichier_l.' </li>' ;
-
 
251
				echo $erreur;
-
 
252
			} else {
-
 
253
			//	$this->nb_fichiers_orphelins++;
-
 
254
			}
-
 
255
		} else {
-
 
256
			$erreur =  '<li> probleme : l\'image '.$fichier_l.' n\'existe pas </li>' ;
-
 
257
			echo $erreur;
-
 
258
		} // Si le fichier existe
-
 
259
		
-
 
260
		if(!$erreur) {
Line -... Line 261...
-
 
261
			echo '<p class="attention">Suppression dans tous les formats de l\'image '.$id.' effectuee </p>';
-
 
262
			$this->nb_fichiers_orphelins++;
-
 
263
		}
-
 
264
 
-
 
265
		echo '</ul>';
-
 
266
		echo '<br />';
-
 
267
	}
-
 
268
	
-
 
269
	private function convertir_poid($size) {
54
		print "Reparation des dates effectuées" ;
270
	    $units = array(' B', ' KB', ' MB', ' GB', ' TB');
55
		exit() ;
271
	    for ($i = 0; $size >= 1024 && $i < 4; $i++) $size /= 1024;