[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / action / tester_taille.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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/headers');
15
16 function action_tester_taille_error_handler($output)
17 {
18 // on est ici, donc echec lors de la creation de l'image
19 if ($GLOBALS['redirect']){
20 return redirige_formulaire($GLOBALS['redirect']);
21 }
22 return $output;
23 }
24
25
26 // Tester nos capacites a creer des images avec GD2 (taille memoire)
27 // http://doc.spip.org/@action_tester_taille_dist
28 function action_tester_taille_dist() {
29
30 if (!autoriser('configurer'))
31 return;
32
33 $taille = _request('arg');
34 $taille = explode('-',$taille);
35
36 $GLOBALS['taille_max'] = end($taille);
37 $GLOBALS['taille_min'] = 0;
38 if (count($taille)>1)
39 $GLOBALS['taille_min'] = reset($taille);
40
41 // si l'intervalle est assez petit, on garde la valeur min
42 if ($GLOBALS['taille_max']*$GLOBALS['taille_max']-$GLOBALS['taille_min']*$GLOBALS['taille_min']<50000){
43 ecrire_meta('max_taille_vignettes',$t=($GLOBALS['taille_min']*$GLOBALS['taille_min'])*0.9,'non');
44 echo round($t/1000000,3).' Mpx';
45 die();
46 }
47
48 $taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max']+$GLOBALS['taille_min'])/2);
49
50 include_spip('inc/filtres');
51 // des inclusions representatives d'un hit prive et/ou public pour la conso memoire
52 include_spip('public/assembler');
53 include_spip('public/balises');
54 include_spip('public/boucles');
55 include_spip('public/cacher');
56 include_spip('public/compiler');
57 include_spip('public/composer');
58 include_spip('public/criteres');
59 include_spip('public/interfaces');
60 include_spip('public/parametrer');
61 include_spip('public/phraser_html');
62 include_spip('public/references');
63
64 include_spip('inc/presentation');
65 include_spip('inc/charsets');
66 include_spip('inc/documents');
67 include_spip('inc/header');
68 propre("<doc1>"); // charger propre avec le trairement d'un modele
69
70 $i = _request('i')+1;
71 $image_source = chemin_image("test.png");
72 $GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=".$GLOBALS['taille_min']."-".$GLOBALS['taille_test']);
73
74 ob_start('action_tester_taille_error_handler');
75 filtrer('image_recadre',$image_source,$taille,$taille);
76 $GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
77 // si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee
78 $taille = $GLOBALS['taille_max'];
79 filtrer('image_recadre',$image_source,$taille,$taille);
80 $GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
81 ob_end_clean();
82
83 // on est ici, donc pas de plantage
84 echo redirige_formulaire($GLOBALS['redirect']);
85 }
86
87 ?>