squellete2
[aidenligne_francais_universite.git] / ecrire / action / tester_taille.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14 include_spip('inc/meta');
15 include_spip('inc/headers');
16
17
18 // Tester nos capacites a creer des images avec GD2 (taille memoire)
19 // http://doc.spip.org/@action_tester_taille_dist
20 function action_tester_taille_dist() {
21 global $arg;
22 //$securiser_action = charger_fonction('securiser_action', 'inc');
23 //$arg = $securiser_action();
24 $max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0;
25 $max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0;
26 $max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0;
27 $taille = intval($arg);
28 $file = _DIR_IMG_PACK . 'jauge-vert.gif';
29 $file_size = 94;
30
31 if (($s = $taille*$taille)>$max_size){
32 if (!$max_size_echec OR $s < $max_size_echec) {
33 include_spip('inc/filtres');
34 // des inclusions representatives d'un hit prive et/ou public pour la conso memoire
35 include_spip('public/assembler');
36 include_spip('public/balises');
37 include_spip('public/boucles');
38 include_spip('public/cacher');
39 include_spip('public/compiler');
40 include_spip('public/composer');
41 include_spip('public/criteres');
42 include_spip('public/interfaces');
43 include_spip('public/parametrer');
44 include_spip('public/phraser_html');
45 include_spip('public/references');
46
47 include_spip('inc/presentation');
48 include_spip('inc/charsets');
49 include_spip('inc/documents');
50 include_spip('inc/lang');
51 include_spip('inc/texte');
52 $dummy = propre("<doc1>");
53
54 $image_source = _DIR_IMG_PACK."test.png";
55 $res = spip_query("SELECT valeur FROM spip_meta WHERE nom='max_taille_vignettes_test'");
56 if ($row = spip_fetch_array($res))
57 $max_size_test = $row['valeur'];
58 if (!$max_size_test OR $max_size_test>$s)
59 ecrire_meta('max_taille_vignettes_test',$s,'non');
60 $result = filtrer('image_recadre',$image_source,$taille,$taille);
61 // on est ici, donc pas de plantage
62 if ($max_size_test>$s)
63 ecrire_meta('max_taille_vignettes_test',$max_size_test,'non');
64 else
65 effacer_meta('max_taille_vignettes_test');
66 $src = extraire_attribut($result,'src');
67 }
68 // et maintenant envoyer la vignette de tests
69 if ($src) {
70 ecrire_meta('max_taille_vignettes',$taille*$taille,'non');
71 ecrire_metas();
72 @unlink($src);
73 }
74 else {
75 if (!$max_size_echec OR $s < $max_size_echec)
76 ecrire_meta('max_taille_vignettes_echec',$taille*$taille,'non');
77 # image echec
78 $file = _DIR_IMG_PACK . 'jauge-rouge.gif';
79 $file_size = 84;
80 }
81 }
82
83 header('Content-Type: image/gif');
84 header("Content-Length: $file_size");
85 header('Cache-Control: max-age=20');
86 header('Pragma: public');
87 readfile($file);
88 exit;
89 }
90
91 ?>