-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathaddimage.php
294 lines (286 loc) · 9.86 KB
/
addimage.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
<?php
/*
* 12/12/2005 - 22:40:00 - Scout Web Portail - v 1.1.1
*
* addimage.php v 1.1 - Sélection d'une image du portail pour divers usages (tally et pages du portail notamment)
* Copyright (C) 2005 ChMat
* http://www.scoutwebportail.org
*
* This file is part of Scout Web Portail.
*
* Scout Web Portail is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Scout Web Portail is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Scout Web Portail; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
/*
* Modifications v 1.1
* Adaptation du script pour l'ajout d'images dans plusieurs zones de texte
* Optimisation du script pour le dossier courant
* Utilisation du 3e paramètre de getimagesize
*/
include_once('connex.php');
include_once('fonc.php');
if ($user['niveau']['numniveau'] < 1)
{
header('Location: 404.php');
exit;
}
$x = (is_numeric($_GET['x'])) ? $_GET['x'] : 0;
$cible = (empty($_GET['cible']) or !eregi("^[-a-z0-9_]+$", $_GET['cible'])) ? 'contenupage' : $_GET['cible'];
// Les valeurs de x déterminent le type d'insertion
/****************************************************************************/
// Tally ou pages du site
// 0 - [img=bbcode] racine img/ pour insertion dans zone de texte id="message"
// 1 - <img src="html" /> racine img/
// 3 - [img=bbcode] racine img/ zone de texte = contenupage ou $cible
// Sélection photo pour fiche membre de l'unité
// 2 - nomfichier.jpg racine /img/photosmembres/
$dossier = urldecode($_GET['dossier']);
$suppr = array('.', '..', '///', '//');
$dossier = str_replace($suppr, '', $dossier);
if ($x == 2)
{ // photo pour fiche de membre
$racine = 'img/photosmembres';
}
else
{ // autre image
$racine = 'img';
}
// On vérifie que le dossier indiqué est bien à l'intérieur de la racine
if (!ereg("^$racine", $dossier)) {$dossier = $racine;}
$dossier = stripslashes($dossier);
?>
<?php echo '<'.'?xml version="1.0" encoding="iso-8859-1"?'.'>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Insertion d'une image</title>
<link href="templates/default/style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="fonc.js"></script>
<?php
if ($x == 0)
{ // image en bbcode pour zone=message
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function ajoutimg(nomimg, largeur, hauteur)
{
resultat = '[img=' + nomimg + '] ';
document.im.image.value = resultat;
opener.document.formulaire.message.value += resultat;
alert("L'image a été insérée.");
opener.document.formulaire.message.focus();
}
//-->
</script>
<?php
}
else if ($x == 1)
{ // image en html pour zone=$cible
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function ajoutimg(nomimg, largeur, hauteur)
{
resultat = '<img src="' + nomimg + '" width="' + largeur +'" height="' + hauteur +'" align="" alt="" />';
document.im.image.value = resultat;
//opener.document.formulaire.<?php echo $cible; ?>.value += resultat;
opener.document.forms[0].elements['<?php echo $cible; ?>'].value += resultat;
alert("L'image a été insérée.");
opener.document.formulaire.<?php echo $cible; ?>.focus();
}
//-->
</script>
<?php
}
else if ($x == 2)
{ // nom du fichier image
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function ajoutimg(nomimg, largeur, hauteur)
{
document.im.image.value = nomimg;
opener.document.form.photo.value = nomimg;
opener.document.form.photo.focus();
}
//-->
</script>
<?php
}
else if ($x == 3)
{ // image en bbcode pour zone=$cible
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function ajoutimg(nomimg, largeur, hauteur)
{
resultat = '[img=' + nomimg + '] ';
document.im.image.value = resultat;
opener.document.formulaire.<?php echo $cible; ?>.value += resultat;
alert("L'image a été insérée.");
opener.document.formulaire.<?php echo $cible; ?>.focus();
}
//-->
</script>
<?php
}
?>
</head>
<body class="body_popup">
<?php
if ($x == 0 or $x == 3)
{ // image bbcode pour le tally ou les pages du portail en format texte
?>
<h1>Insertion d'une image</h1>
<p>Voyage dans les dossiers contenant les images du site et clique sur celle
que tu veux insérer.</p>
<p> Ensuite, <br />
- l'image est automatiquement ajoutée à la fin de ta page (balise <code>[img=cheminversl'image]</code>)<br />
- Si tu veux aligner la photo à gauche ou à droite, <br />
tu peux modifier la balise : <br />
en <code>[imgleft=cheminversl'image]</code> pour l'aligner à gauche <br />
et en <code>[imgright=cheminversl'image]</code> pour l'aligner à droite,<br />
- Si ça ne marche pas, recopie le code qui apparait ici : </p>
<?php
}
else if ($x == 1)
{ // image html pour les pages du portail
?>
<h1>Insertion d'une image</h1>
<p>Voyage dans les dossiers contenant les images du site et clique sur celle
que tu veux insérer dans ta page.</p>
<p> Ensuite, <br />
- l'image est automatiquement ajoutée à la fin de ta page (balise <span class="rmqbleu"><img
src="..."></span>)<br />
- Si ça ne marche pas, recopie le code qui apparait ici : </p>
<?php
}
else if ($x == 2)
{ // sélection photo fiche membre (insertion du nom de fichier)
?>
<h1>Sélection de la photo d'un membre</h1>
<p>Clique sur la photo du membre.</p>
<p>Ensuite, <br />
- l'image est automatiquement ajoutée dans le formulaire.<br />
- Si ça ne marche pas, recopie le code qui apparait ici :</p>
<?php
}
?>
<form action="" name="im" id="im">
<p align="center">
<input name="image" type="text" id="codeimg" size="40" />
</p>
</form>
<?php
// récupération du chemin parcouru
$chemin = ereg_replace("/$", '', $dossier);
$chemin = split('/', $chemin);
$nb_pas = count($chemin); // nbre de sous-dossiers
$chemin_lien = ''; // texte du chemin à afficher ( lien/lien/...)
$chemin_pas = ''; // chemin
for ($i = 0; $i < $nb_pas; $i++)
{ // liens de déplacement entre les dossiers
// on ne fait pas de lien vers le dossier en cours (càd à la dernière itération)
$chemin_pas .= $chemin[$i]; // chemin en cours de traitement
// on ajoute le lien à la liste
$chemin_lien .= ($i < $nb_pas - 1 and ereg("^$racine", $chemin_pas)) ? '<a href="addimage.php?x='.$x.'&cible='.$cible.'&dossier='.urlencode($chemin_pas).'">' : '';
$chemin_lien .= $chemin[$i];
$chemin_lien .= ($i < $nb_pas - 1 and ereg("^$racine", $chemin_pas)) ? '</a>/' : '/';
// on ajoute le / pour le sous-dossier suivant (sauf à la dernière itération
$chemin_pas .= ($i < $nb_pas - 1) ? '/' : '';
}
// pour avoir un nom de dossier valide, on ajoute un / à la fin si nécessaire
$dossier .= (!ereg("/$", $dossier)) ? '/' : '';
if ($liste_dossier = @opendir($dossier))
{ // On parcourt le $dossier en cours et on affiche les sous-dossiers qu'il contient
echo '<p>Dossier en cours : <span class="rmqbleu">'.$chemin_lien.'</span></p>';
?>
<ul class="dir">
<?php
while ($sousdossier = @readdir($liste_dossier))
{ // on liste les répertoires d'abord
if (is_dir($dossier.$sousdossier) and $sousdossier != '.' and $sousdossier != '..')
{
?>
<li><a href="addimage.php?x=<?php echo $x; ?>&cible=<?php echo $cible; ?>&dossier=<?php echo urlencode($dossier.$sousdossier); ?>"><?php echo $sousdossier; ?></a>
<?php
// on ajoute une aide intuitive sur le contenu probable des dossiers
if ($sousdossier == 'pt' or $sousdossier == 'gd')
{
echo ($sousdossier == 'pt') ? ' <span class="petitbleu">(Galerie : Miniatures)</span>' : ' <span class="petitbleu">(Galerie : Photos) <img src="img/smileys/007.gif" alt="" /> Peut prendre du temps à charger</span>';
}
else if ($sousdossier == 'activites')
{
echo ' <span class="petitbleu">(Photos des albums du site)</span>';
}
?></li>
<?php
}
}
closedir($liste_dossier);
?>
</ul>
<?php
}
if ($liste_dossier = @opendir($dossier))
{ // On parcourt le $dossier en cours et on affiche les images qu'il contient
$i = 0;
$poids_total = 0;
$surface = 0;
?>
<?php
while($fichier = @readdir($liste_dossier))
{
if($fichier != '.' and $fichier != '..' and (eregi("\.(jpg|bmp|gif|png)$", $fichier, $regs)))
{
$i++;
$image = $dossier.$fichier;
$taille = @getimagesize($image);
$poids = @filesize($image);
$poids_total += $poids;
$poids = taille_fichier($poids);
$l = $taille[0];
$h = $taille[1];
$dimensions = $taille[3];
?>
<div class="liste_photo">
<h2><?php echo $fichier; ?> <span class="petitbleu">(<?php echo $l.' x '.$h.' - '.$poids; ?>)</span></h2>
<p align="center"><?php
echo '<img src="'.$image.'" onclick="ajoutimg(\''.$image.'\', \''.$l.'\', \''.$h.'\');" style="cursor:pointer" alt="Insérer" title="Insérer cette image" '.$dimensions.' />';
?></p>
</div>
<?php
}
}
// résumé du contenu du dossier
echo '<p align="center"><strong>';
$pl = ($i > 1) ? 's' : '';
echo ($i > 0) ? $i.' image'.$pl.' trouvée'.$pl.'</strong> - '.taille_fichier($poids_total).'.' : 'Aucune image trouvée';
echo '</p>';
closedir($liste_dossier);
}
else
{ // impossible d'ouvrir le dossier (n'existe pas ou fonction désactivée)
?>
<div class="msg">
<p align="center" class="rmq">Impossible de lire le contenu de ce dossier !</p>
<p align="center"><a href="addimage.php?x=<?php echo $x; ?>&cible=<?php echo $cible; ?>&dossier=">Retour à la
page précédente</a></p>
</div>
<?php
}
?>
</body>
</html>