Completed
Push — master ( 012705...9a8729 )
by cam
01:11
created
ecrire/plugins/afficher_plugin.php 2 patches
Indentation   +283 added lines, -283 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 include_spip('inc/charsets');
23 23
 include_spip('inc/texte');
@@ -25,195 +25,195 @@  discard block
 block discarded – undo
25 25
 
26 26
 // https://code.spip.net/@ligne_plug
27 27
 function plugins_afficher_plugin_dist(
28
-	$url_page,
29
-	$plug_file,
30
-	$checked,
31
-	$actif,
32
-	$expose = false,
33
-	$class_li = "item",
34
-	$dir_plugins = _DIR_PLUGINS
28
+    $url_page,
29
+    $plug_file,
30
+    $checked,
31
+    $actif,
32
+    $expose = false,
33
+    $class_li = "item",
34
+    $dir_plugins = _DIR_PLUGINS
35 35
 ) {
36 36
 
37
-	static $id_input = 0;
38
-	static $versions = array();
39
-
40
-	$force_reload = (_request('var_mode') == 'recalcul');
41
-	$get_infos = charger_fonction('get_infos', 'plugins');
42
-	$info = $get_infos($plug_file, $force_reload, $dir_plugins);
43
-	$prefix = $info['prefix'];
44
-	$cfg = "";
45
-	$checkable = ($dir_plugins !== _DIR_PLUGINS_DIST);
46
-	$nom = plugin_nom($info, $dir_plugins, $plug_file);
47
-	$erreur = "";
48
-
49
-	if (!plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
50
-		$info['slogan'] = _T('plugin_info_non_compatible_spip');
51
-		$erreur = http_img_pack("plugin-dis-32.png", _T('plugin_info_non_compatible_spip'), " class='picto_err'",
52
-			_T('plugin_info_non_compatible_spip'));
53
-		$class_li .= " disabled";
54
-		$checkable = false;
55
-
56
-	} elseif (isset($info['erreur'])) {
57
-		$class_li .= " error";
58
-		$erreur = http_img_pack("plugin-err-32.png", _T('plugin_info_erreur_xml'), " class='picto_err'",
59
-				_T('plugin_info_erreur_xml'))
60
-			. "<div class='erreur'>" . join('<br >', $info['erreur']) . "</div>";
61
-		$checkable = false;
62
-
63
-	} elseif (isset($GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file])) {
64
-		$class_li .= " error";
65
-		$erreur = http_img_pack("plugin-err-32.png", _T('plugin_impossible_activer', array('plugin' => $nom)),
66
-				" class='picto_err'", _T('plugin_impossible_activer', array('plugin' => $nom)))
67
-			. "<div class='erreur'>" . implode("<br />",
68
-				$GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file]) . "</div>";
69
-	} else {
70
-		$cfg = $actif ? plugin_bouton_config($plug_file, $info, $dir_plugins) : "";
71
-		if (defined('_DEV_VERSION_SPIP_COMPAT') and !plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'])){
72
-			//$info['slogan'] = _T('plugin_info_non_compatible_spip');
73
-			$erreur = http_img_pack("plugin-dis-32.png", _T('plugin_info_non_compatible_spip'), " class='picto_err picto_compat_forcee'",
74
-				_L('Version incompatible : compatibilité forcée'));
75
-		}
76
-	}
77
-
78
-	// numerotons les occurrences d'un meme prefix
79
-	$versions[$prefix] = $id = isset($versions[$prefix]) ? intval($versions[$prefix]) + 1 : '';
80
-
81
-	$class_li .= ($actif ? " actif" : "") . ($expose ? " on" : "");
82
-
83
-	return "<li id='$prefix$id' class='$class_li'>"
84
-	. ((!$checkable and !$checked)
85
-		? '' : plugin_checkbox(++$id_input, $dir_plugins . $plug_file, $checked))
86
-	. plugin_resume($info, $dir_plugins, $plug_file, $url_page)
87
-	. $cfg
88
-	. $erreur
89
-	. (($dir_plugins !== _DIR_PLUGINS_DIST and plugin_est_installe($plug_file))
90
-		? plugin_desintalle($plug_file, $nom, $dir_plugins) : '')
91
-	. "<div class='details'>" // pour l'ajax de exec/info_plugin
92
-	. (!$expose ? '' : affiche_bloc_plugin($plug_file, $info, $dir_plugins))
93
-	. "</div>"
94
-	. "</li>";
37
+    static $id_input = 0;
38
+    static $versions = array();
39
+
40
+    $force_reload = (_request('var_mode') == 'recalcul');
41
+    $get_infos = charger_fonction('get_infos', 'plugins');
42
+    $info = $get_infos($plug_file, $force_reload, $dir_plugins);
43
+    $prefix = $info['prefix'];
44
+    $cfg = "";
45
+    $checkable = ($dir_plugins !== _DIR_PLUGINS_DIST);
46
+    $nom = plugin_nom($info, $dir_plugins, $plug_file);
47
+    $erreur = "";
48
+
49
+    if (!plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
50
+        $info['slogan'] = _T('plugin_info_non_compatible_spip');
51
+        $erreur = http_img_pack("plugin-dis-32.png", _T('plugin_info_non_compatible_spip'), " class='picto_err'",
52
+            _T('plugin_info_non_compatible_spip'));
53
+        $class_li .= " disabled";
54
+        $checkable = false;
55
+
56
+    } elseif (isset($info['erreur'])) {
57
+        $class_li .= " error";
58
+        $erreur = http_img_pack("plugin-err-32.png", _T('plugin_info_erreur_xml'), " class='picto_err'",
59
+                _T('plugin_info_erreur_xml'))
60
+            . "<div class='erreur'>" . join('<br >', $info['erreur']) . "</div>";
61
+        $checkable = false;
62
+
63
+    } elseif (isset($GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file])) {
64
+        $class_li .= " error";
65
+        $erreur = http_img_pack("plugin-err-32.png", _T('plugin_impossible_activer', array('plugin' => $nom)),
66
+                " class='picto_err'", _T('plugin_impossible_activer', array('plugin' => $nom)))
67
+            . "<div class='erreur'>" . implode("<br />",
68
+                $GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file]) . "</div>";
69
+    } else {
70
+        $cfg = $actif ? plugin_bouton_config($plug_file, $info, $dir_plugins) : "";
71
+        if (defined('_DEV_VERSION_SPIP_COMPAT') and !plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'])){
72
+            //$info['slogan'] = _T('plugin_info_non_compatible_spip');
73
+            $erreur = http_img_pack("plugin-dis-32.png", _T('plugin_info_non_compatible_spip'), " class='picto_err picto_compat_forcee'",
74
+                _L('Version incompatible : compatibilité forcée'));
75
+        }
76
+    }
77
+
78
+    // numerotons les occurrences d'un meme prefix
79
+    $versions[$prefix] = $id = isset($versions[$prefix]) ? intval($versions[$prefix]) + 1 : '';
80
+
81
+    $class_li .= ($actif ? " actif" : "") . ($expose ? " on" : "");
82
+
83
+    return "<li id='$prefix$id' class='$class_li'>"
84
+    . ((!$checkable and !$checked)
85
+        ? '' : plugin_checkbox(++$id_input, $dir_plugins . $plug_file, $checked))
86
+    . plugin_resume($info, $dir_plugins, $plug_file, $url_page)
87
+    . $cfg
88
+    . $erreur
89
+    . (($dir_plugins !== _DIR_PLUGINS_DIST and plugin_est_installe($plug_file))
90
+        ? plugin_desintalle($plug_file, $nom, $dir_plugins) : '')
91
+    . "<div class='details'>" // pour l'ajax de exec/info_plugin
92
+    . (!$expose ? '' : affiche_bloc_plugin($plug_file, $info, $dir_plugins))
93
+    . "</div>"
94
+    . "</li>";
95 95
 }
96 96
 
97 97
 function plugin_bouton_config($nom, $infos, $dir) {
98
-	// la verification se base sur le filesystem
99
-	// il faut donc n'utiliser que des minuscules, par convention
100
-	$prefix = strtolower($infos['prefix']);
101
-	// si paquet.xml fournit un squelette, le prendre
102
-	if (isset($infos['config']) and $infos['config']) {
103
-		return recuperer_fond("$dir$nom/" . $infos['config'],
104
-			array(
105
-				'script' => 'configurer_' . $prefix,
106
-				'nom' => $nom
107
-			));
108
-	}
109
-
110
-	// si le plugin CFG est la, l'essayer
111
-	if (defined('_DIR_PLUGIN_CFG')) {
112
-		if (include_spip('inc/cfg')) // test CFG version >= 1.0.5
113
-		{
114
-			if ($cfg = icone_lien_cfg("$dir$nom", "cfg")) {
115
-				return "<div class='cfg_link'>$cfg</div>";
116
-			}
117
-		}
118
-	}
119
-
120
-	// sinon prendre le squelette std sur le nom std
121
-	return recuperer_fond("prive/squelettes/inclure/cfg",
122
-		array(
123
-			'script' => 'configurer_' . $prefix,
124
-			'nom' => $nom
125
-		));
98
+    // la verification se base sur le filesystem
99
+    // il faut donc n'utiliser que des minuscules, par convention
100
+    $prefix = strtolower($infos['prefix']);
101
+    // si paquet.xml fournit un squelette, le prendre
102
+    if (isset($infos['config']) and $infos['config']) {
103
+        return recuperer_fond("$dir$nom/" . $infos['config'],
104
+            array(
105
+                'script' => 'configurer_' . $prefix,
106
+                'nom' => $nom
107
+            ));
108
+    }
109
+
110
+    // si le plugin CFG est la, l'essayer
111
+    if (defined('_DIR_PLUGIN_CFG')) {
112
+        if (include_spip('inc/cfg')) // test CFG version >= 1.0.5
113
+        {
114
+            if ($cfg = icone_lien_cfg("$dir$nom", "cfg")) {
115
+                return "<div class='cfg_link'>$cfg</div>";
116
+            }
117
+        }
118
+    }
119
+
120
+    // sinon prendre le squelette std sur le nom std
121
+    return recuperer_fond("prive/squelettes/inclure/cfg",
122
+        array(
123
+            'script' => 'configurer_' . $prefix,
124
+            'nom' => $nom
125
+        ));
126 126
 }
127 127
 
128 128
 // checkbox pour activer ou desactiver
129 129
 // si ce n'est pas une extension
130 130
 
131 131
 function plugin_checkbox($id_input, $file, $actif) {
132
-	$name = substr(md5($file), 0, 16);
133
-
134
-	return "<div class='check'>\n"
135
-	. "<input type='checkbox' name='s$name' id='label_$id_input'"
136
-	. ($actif ? " checked='checked'" : "")
137
-	. " class='checkbox'  value='O' />"
138
-	. "\n<label for='label_$id_input'>" . _T('activer_plugin') . "</label>"
139
-	. "</div>";
132
+    $name = substr(md5($file), 0, 16);
133
+
134
+    return "<div class='check'>\n"
135
+    . "<input type='checkbox' name='s$name' id='label_$id_input'"
136
+    . ($actif ? " checked='checked'" : "")
137
+    . " class='checkbox'  value='O' />"
138
+    . "\n<label for='label_$id_input'>" . _T('activer_plugin') . "</label>"
139
+    . "</div>";
140 140
 }
141 141
 
142 142
 function plugin_nom($info, $dir_plugins, $plug_file) {
143
-	$prefix = $info['prefix'];
144
-	$dir = "$dir_plugins$plug_file";
145
-	// Si dtd paquet, on traite le nom soit par son item de langue soit par sa valeur immediate a l'index "nom"
146
-	if ($info['dtd'] == "paquet") {
147
-		$nom = plugin_typo("{$prefix}_nom", "$dir/lang/paquet-$prefix");
148
-		if (!$nom) {
149
-			$nom = typo($info['nom']);
150
-		}
151
-	} else {
152
-		$nom = typo(attribut_html($info['nom']));
153
-	}
154
-
155
-	return trim($nom);
143
+    $prefix = $info['prefix'];
144
+    $dir = "$dir_plugins$plug_file";
145
+    // Si dtd paquet, on traite le nom soit par son item de langue soit par sa valeur immediate a l'index "nom"
146
+    if ($info['dtd'] == "paquet") {
147
+        $nom = plugin_typo("{$prefix}_nom", "$dir/lang/paquet-$prefix");
148
+        if (!$nom) {
149
+            $nom = typo($info['nom']);
150
+        }
151
+    } else {
152
+        $nom = typo(attribut_html($info['nom']));
153
+    }
154
+
155
+    return trim($nom);
156 156
 }
157 157
 
158 158
 // Cartouche Resume
159 159
 function plugin_resume($info, $dir_plugins, $plug_file, $url_page) {
160
-	$prefix = $info['prefix'];
161
-	$dir = "$dir_plugins$plug_file";
162
-	$slogan = PtoBR(plugin_propre($info['slogan'], "$dir/lang/paquet-$prefix"));
163
-	// une seule ligne dans le slogan : couper si besoin
164
-	if (($p = strpos($slogan, "<br />")) !== false) {
165
-		$slogan = substr($slogan, 0, $p);
166
-	}
167
-	// couper par securite
168
-	$slogan = couper($slogan, 80);
169
-
170
-	$nom = plugin_nom($info, $dir_plugins, $plug_file);
171
-
172
-	$url = parametre_url($url_page, "plugin", substr($dir, strlen(_DIR_RACINE)));
173
-
174
-	$icon_class = 'icon';
175
-	$img = '';
176
-	if (isset($info['logo']) and $i = trim($info['logo'])) {
177
-		$img = http_img_pack("$dir/$i", '', " width='32' height='32'", '', ['variante_svg_si_possible' => true, 'chemin_image' => false]);
178
-		if (!extraire_attribut($img, 'src')) {
179
-			$img = '';
180
-		}
181
-	}
182
-	if (!$img) {
183
-		$img = http_img_pack("plugin-xx.svg", '', " width='32' height='32'");
184
-		$icon_class .= ' no-logo';
185
-	}
186
-
187
-	$i = "<div class='$icon_class'><a href='$url' rel='info'>$img</a></div>";
188
-
189
-	return "<div class='resume'>"
190
-	. "<h3><a href='$url' rel='info'>"
191
-	. $nom
192
-	. "</a></h3>"
193
-	. " <span class='version'>" . $info['version'] . "</span>"
194
-	. " <span class='etat'> - "
195
-	. plugin_etat_en_clair($info['etat'])
196
-	. "</span>"
197
-	. "<div class='short'>" . $slogan . "</div>"
198
-	. $i
199
-	. "</div>";
160
+    $prefix = $info['prefix'];
161
+    $dir = "$dir_plugins$plug_file";
162
+    $slogan = PtoBR(plugin_propre($info['slogan'], "$dir/lang/paquet-$prefix"));
163
+    // une seule ligne dans le slogan : couper si besoin
164
+    if (($p = strpos($slogan, "<br />")) !== false) {
165
+        $slogan = substr($slogan, 0, $p);
166
+    }
167
+    // couper par securite
168
+    $slogan = couper($slogan, 80);
169
+
170
+    $nom = plugin_nom($info, $dir_plugins, $plug_file);
171
+
172
+    $url = parametre_url($url_page, "plugin", substr($dir, strlen(_DIR_RACINE)));
173
+
174
+    $icon_class = 'icon';
175
+    $img = '';
176
+    if (isset($info['logo']) and $i = trim($info['logo'])) {
177
+        $img = http_img_pack("$dir/$i", '', " width='32' height='32'", '', ['variante_svg_si_possible' => true, 'chemin_image' => false]);
178
+        if (!extraire_attribut($img, 'src')) {
179
+            $img = '';
180
+        }
181
+    }
182
+    if (!$img) {
183
+        $img = http_img_pack("plugin-xx.svg", '', " width='32' height='32'");
184
+        $icon_class .= ' no-logo';
185
+    }
186
+
187
+    $i = "<div class='$icon_class'><a href='$url' rel='info'>$img</a></div>";
188
+
189
+    return "<div class='resume'>"
190
+    . "<h3><a href='$url' rel='info'>"
191
+    . $nom
192
+    . "</a></h3>"
193
+    . " <span class='version'>" . $info['version'] . "</span>"
194
+    . " <span class='etat'> - "
195
+    . plugin_etat_en_clair($info['etat'])
196
+    . "</span>"
197
+    . "<div class='short'>" . $slogan . "</div>"
198
+    . $i
199
+    . "</div>";
200 200
 }
201 201
 
202 202
 function plugin_desintalle($plug_file, $nom, $dir_plugins = null) {
203
-	if (!$dir_plugins) {
204
-		$dir_plugins = _DIR_PLUGINS;
205
-	}
203
+    if (!$dir_plugins) {
204
+        $dir_plugins = _DIR_PLUGINS;
205
+    }
206 206
 
207
-	$action = redirige_action_auteur('desinstaller_plugin', "$dir_plugins::$plug_file", 'admin_plugin');
208
-	$text = _T('bouton_desinstaller');
209
-	$text2 = _T('info_desinstaller_plugin');
210
-	$file = basename($plug_file);
207
+    $action = redirige_action_auteur('desinstaller_plugin', "$dir_plugins::$plug_file", 'admin_plugin');
208
+    $text = _T('bouton_desinstaller');
209
+    $text2 = _T('info_desinstaller_plugin');
210
+    $file = basename($plug_file);
211 211
 
212
-	return "<div class='actions'>[" .
213
-	"<a href='$action'
212
+    return "<div class='actions'>[" .
213
+    "<a href='$action'
214 214
 		onclick='return confirm(\"$text $nom ?\\n$text2\")'>"
215
-	. $text
216
-	. "</a>]</div>";
215
+    . $text
216
+    . "</a>]</div>";
217 217
 }
218 218
 
219 219
 /**
@@ -227,137 +227,137 @@  discard block
 block discarded – undo
227 227
  *     Traduction de l'état dans la langue en cours
228 228
  **/
229 229
 function plugin_etat_en_clair($etat) {
230
-	if (!in_array($etat, array('stable', 'test', 'experimental'))) {
231
-		$etat = 'developpement';
232
-	}
230
+    if (!in_array($etat, array('stable', 'test', 'experimental'))) {
231
+        $etat = 'developpement';
232
+    }
233 233
 
234
-	return _T('plugin_etat_' . $etat);
234
+    return _T('plugin_etat_' . $etat);
235 235
 }
236 236
 
237 237
 // https://code.spip.net/@plugin_propre
238 238
 function plugin_propre($texte, $module = '',$propre='propre') {
239
-	// retirer le retour a la racine du module, car le find_in_path se fait depuis la racine
240
-	if (_DIR_RACINE and strncmp($module, _DIR_RACINE, strlen(_DIR_RACINE)) == 0) {
241
-		$module = substr($module, strlen(_DIR_RACINE));
242
-	}
243
-	if (preg_match("|^\w+_[\w_]+$|", $texte)) {
244
-		$texte = _T(($module ? "$module:" : '') . $texte, array(), array('force' => false));
245
-	}
246
-
247
-	return $propre($texte);
239
+    // retirer le retour a la racine du module, car le find_in_path se fait depuis la racine
240
+    if (_DIR_RACINE and strncmp($module, _DIR_RACINE, strlen(_DIR_RACINE)) == 0) {
241
+        $module = substr($module, strlen(_DIR_RACINE));
242
+    }
243
+    if (preg_match("|^\w+_[\w_]+$|", $texte)) {
244
+        $texte = _T(($module ? "$module:" : '') . $texte, array(), array('force' => false));
245
+    }
246
+
247
+    return $propre($texte);
248 248
 }
249 249
 
250 250
 function plugin_typo($texte, $module = '') {
251
-	return plugin_propre($texte, $module, 'typo');
251
+    return plugin_propre($texte, $module, 'typo');
252 252
 }
253 253
 
254 254
 
255 255
 // https://code.spip.net/@affiche_bloc_plugin
256 256
 function affiche_bloc_plugin($plug_file, $info, $dir_plugins = null) {
257
-	if (!$dir_plugins) {
258
-		$dir_plugins = _DIR_PLUGINS;
259
-	}
260
-
261
-	$prefix = $info['prefix'];
262
-	$dir = "$dir_plugins$plug_file/lang/paquet-$prefix";
263
-
264
-	$s = "";
265
-	// TODO: le traiter_multi ici n'est pas beau
266
-	// cf. description du plugin/_stable_/ortho/plugin.xml
267
-	// concerne les anciens plugin.xml donc on devrait plus en avoir besoin
268
-	$description = "";
269
-	if (isset($info['description'])) {
270
-		$description = plugin_propre($info['description'], $dir);
271
-	}
272
-
273
-	if (isset($info['documentation'])
274
-		and $lien = $info['documentation']
275
-	) {
276
-		$description .= "<p><em class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') . '</a></em></p>';
277
-	}
278
-	$s .= "<dd class='desc'>" . $description . "</dd>\n";
279
-
280
-	if (isset($info['auteur'])) {
281
-		if (is_array($info['auteur'])) {
282
-			$a = formater_credits($info['auteur'], ', ');
283
-		} // pour compat mais ne doit plus arriver
284
-		else {
285
-			$a = trim($info['auteur']);
286
-		}
287
-		if ($a) {
288
-			$s .= "<dt class='auteurs'>" . _T('public:par_auteur') . "</dt><dd class='auteurs'>" . PtoBR(propre($a,
289
-					$dir)) . "</dd>\n";
290
-		}
291
-	}
292
-
293
-	if (isset($info['credit'])) {
294
-		if ($a = formater_credits($info['credit'], ', ')) {
295
-			$s .= "<dt class='credits'>" . _T('plugin_info_credit') . "</dt><dd class='credits'>" . PtoBR(propre($a,
296
-					$dir)) . "</dd>\n";
297
-		}
298
-	}
299
-
300
-	if (isset($info['licence'])) {
301
-		if (is_array($info['licence'])) {
302
-			$a = formater_credits($info['licence'], ', ');
303
-		} // pour compat mais ne doit plus arriver
304
-		else {
305
-			$a = trim($info['licence']);
306
-		}
307
-		if ($a) {
308
-			$s .= "<dt class='licence'>" . _T('intitule_licence') . "</dt><dd class='licence'>" . PtoBR(propre($a,
309
-					$dir)) . "</dd>\n";
310
-		}
311
-	}
312
-
313
-	$s = "<dl class='description'>$s</dl>";
314
-
315
-	//
316
-	// Ajouter les infos techniques
317
-	//
318
-	$infotech = array();
319
-
320
-	$version = "<dt>" . _T('version') . "</dt><dd>" . $info['version'];
321
-	// Version VCS
322
-	if ($vcs = version_vcs_courante($dir_plugins . $plug_file)) {
323
-		$version .= ' ' . $vcs;
324
-	}
325
-	$version .= "</dd>";
326
-	$infotech[] = $version;
327
-	$infotech[] = "<dt>" . _T('repertoire_plugins') . "</dt><dd>" . joli_repertoire("$dir_plugins$plug_file") . "</dd>";
328
-	// source zip le cas echeant
329
-	$infotech[] = (lire_fichier($dir_plugins . $plug_file . '/install.log', $log)
330
-		and preg_match(',^source:(.*)$,m', $log, $r))
331
-		? '<dt>' . _T('plugin_source') . '</dt><dd>' . trim($r[1]) . "</dd>"
332
-		: '';
333
-
334
-	$infotech[] = !$info['necessite'] ? '' :
335
-		('<dt>' . _T('plugin_info_necessite') . '</dt><dd>' . join(' ',
336
-				array_map('array_shift', $info['necessite'])) . '</dd>');
337
-
338
-	$s .= "<dl class='tech'>"
339
-		. join('', $infotech)
340
-		. "</dl>";
341
-
342
-
343
-	return $s;
257
+    if (!$dir_plugins) {
258
+        $dir_plugins = _DIR_PLUGINS;
259
+    }
260
+
261
+    $prefix = $info['prefix'];
262
+    $dir = "$dir_plugins$plug_file/lang/paquet-$prefix";
263
+
264
+    $s = "";
265
+    // TODO: le traiter_multi ici n'est pas beau
266
+    // cf. description du plugin/_stable_/ortho/plugin.xml
267
+    // concerne les anciens plugin.xml donc on devrait plus en avoir besoin
268
+    $description = "";
269
+    if (isset($info['description'])) {
270
+        $description = plugin_propre($info['description'], $dir);
271
+    }
272
+
273
+    if (isset($info['documentation'])
274
+        and $lien = $info['documentation']
275
+    ) {
276
+        $description .= "<p><em class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') . '</a></em></p>';
277
+    }
278
+    $s .= "<dd class='desc'>" . $description . "</dd>\n";
279
+
280
+    if (isset($info['auteur'])) {
281
+        if (is_array($info['auteur'])) {
282
+            $a = formater_credits($info['auteur'], ', ');
283
+        } // pour compat mais ne doit plus arriver
284
+        else {
285
+            $a = trim($info['auteur']);
286
+        }
287
+        if ($a) {
288
+            $s .= "<dt class='auteurs'>" . _T('public:par_auteur') . "</dt><dd class='auteurs'>" . PtoBR(propre($a,
289
+                    $dir)) . "</dd>\n";
290
+        }
291
+    }
292
+
293
+    if (isset($info['credit'])) {
294
+        if ($a = formater_credits($info['credit'], ', ')) {
295
+            $s .= "<dt class='credits'>" . _T('plugin_info_credit') . "</dt><dd class='credits'>" . PtoBR(propre($a,
296
+                    $dir)) . "</dd>\n";
297
+        }
298
+    }
299
+
300
+    if (isset($info['licence'])) {
301
+        if (is_array($info['licence'])) {
302
+            $a = formater_credits($info['licence'], ', ');
303
+        } // pour compat mais ne doit plus arriver
304
+        else {
305
+            $a = trim($info['licence']);
306
+        }
307
+        if ($a) {
308
+            $s .= "<dt class='licence'>" . _T('intitule_licence') . "</dt><dd class='licence'>" . PtoBR(propre($a,
309
+                    $dir)) . "</dd>\n";
310
+        }
311
+    }
312
+
313
+    $s = "<dl class='description'>$s</dl>";
314
+
315
+    //
316
+    // Ajouter les infos techniques
317
+    //
318
+    $infotech = array();
319
+
320
+    $version = "<dt>" . _T('version') . "</dt><dd>" . $info['version'];
321
+    // Version VCS
322
+    if ($vcs = version_vcs_courante($dir_plugins . $plug_file)) {
323
+        $version .= ' ' . $vcs;
324
+    }
325
+    $version .= "</dd>";
326
+    $infotech[] = $version;
327
+    $infotech[] = "<dt>" . _T('repertoire_plugins') . "</dt><dd>" . joli_repertoire("$dir_plugins$plug_file") . "</dd>";
328
+    // source zip le cas echeant
329
+    $infotech[] = (lire_fichier($dir_plugins . $plug_file . '/install.log', $log)
330
+        and preg_match(',^source:(.*)$,m', $log, $r))
331
+        ? '<dt>' . _T('plugin_source') . '</dt><dd>' . trim($r[1]) . "</dd>"
332
+        : '';
333
+
334
+    $infotech[] = !$info['necessite'] ? '' :
335
+        ('<dt>' . _T('plugin_info_necessite') . '</dt><dd>' . join(' ',
336
+                array_map('array_shift', $info['necessite'])) . '</dd>');
337
+
338
+    $s .= "<dl class='tech'>"
339
+        . join('', $infotech)
340
+        . "</dl>";
341
+
342
+
343
+    return $s;
344 344
 }
345 345
 
346 346
 function formater_credits($infos, $sep = ', ') {
347
-	$texte = '';
348
-
349
-	foreach ($infos as $_credit) {
350
-		if ($texte) {
351
-			$texte .= $sep;
352
-		}
353
-		// Si le credit en cours n'est pas un array c'est donc un copyright
354
-		$texte .=
355
-			(!is_array($_credit))
356
-				? PtoBR(propre($_credit))
357
-				: ($_credit['url'] ? '<a href="' . $_credit['url'] . '">' : '') .
358
-				$_credit['nom'] .
359
-				($_credit['url'] ? '</a>' : '');
360
-	}
361
-
362
-	return $texte;
347
+    $texte = '';
348
+
349
+    foreach ($infos as $_credit) {
350
+        if ($texte) {
351
+            $texte .= $sep;
352
+        }
353
+        // Si le credit en cours n'est pas un array c'est donc un copyright
354
+        $texte .=
355
+            (!is_array($_credit))
356
+                ? PtoBR(propre($_credit))
357
+                : ($_credit['url'] ? '<a href="' . $_credit['url'] . '">' : '') .
358
+                $_credit['nom'] .
359
+                ($_credit['url'] ? '</a>' : '');
360
+    }
361
+
362
+    return $texte;
363 363
 }
Please login to merge, or discard this patch.
Spacing   +35 added lines, -36 removed lines patch added patch discarded remove patch
@@ -57,18 +57,18 @@  discard block
 block discarded – undo
57 57
 		$class_li .= " error";
58 58
 		$erreur = http_img_pack("plugin-err-32.png", _T('plugin_info_erreur_xml'), " class='picto_err'",
59 59
 				_T('plugin_info_erreur_xml'))
60
-			. "<div class='erreur'>" . join('<br >', $info['erreur']) . "</div>";
60
+			. "<div class='erreur'>".join('<br >', $info['erreur'])."</div>";
61 61
 		$checkable = false;
62 62
 
63
-	} elseif (isset($GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file])) {
63
+	} elseif (isset($GLOBALS['erreurs_activation_raw'][$dir_plugins.$plug_file])) {
64 64
 		$class_li .= " error";
65 65
 		$erreur = http_img_pack("plugin-err-32.png", _T('plugin_impossible_activer', array('plugin' => $nom)),
66 66
 				" class='picto_err'", _T('plugin_impossible_activer', array('plugin' => $nom)))
67
-			. "<div class='erreur'>" . implode("<br />",
68
-				$GLOBALS['erreurs_activation_raw'][$dir_plugins . $plug_file]) . "</div>";
67
+			. "<div class='erreur'>".implode("<br />",
68
+				$GLOBALS['erreurs_activation_raw'][$dir_plugins.$plug_file])."</div>";
69 69
 	} else {
70 70
 		$cfg = $actif ? plugin_bouton_config($plug_file, $info, $dir_plugins) : "";
71
-		if (defined('_DEV_VERSION_SPIP_COMPAT') and !plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'])){
71
+		if (defined('_DEV_VERSION_SPIP_COMPAT') and !plugin_version_compatible($info['compatibilite'], $GLOBALS['spip_version_branche'])) {
72 72
 			//$info['slogan'] = _T('plugin_info_non_compatible_spip');
73 73
 			$erreur = http_img_pack("plugin-dis-32.png", _T('plugin_info_non_compatible_spip'), " class='picto_err picto_compat_forcee'",
74 74
 				_L('Version incompatible : compatibilité forcée'));
@@ -78,11 +78,11 @@  discard block
 block discarded – undo
78 78
 	// numerotons les occurrences d'un meme prefix
79 79
 	$versions[$prefix] = $id = isset($versions[$prefix]) ? intval($versions[$prefix]) + 1 : '';
80 80
 
81
-	$class_li .= ($actif ? " actif" : "") . ($expose ? " on" : "");
81
+	$class_li .= ($actif ? " actif" : "").($expose ? " on" : "");
82 82
 
83 83
 	return "<li id='$prefix$id' class='$class_li'>"
84 84
 	. ((!$checkable and !$checked)
85
-		? '' : plugin_checkbox(++$id_input, $dir_plugins . $plug_file, $checked))
85
+		? '' : plugin_checkbox(++$id_input, $dir_plugins.$plug_file, $checked))
86 86
 	. plugin_resume($info, $dir_plugins, $plug_file, $url_page)
87 87
 	. $cfg
88 88
 	. $erreur
@@ -100,9 +100,9 @@  discard block
 block discarded – undo
100 100
 	$prefix = strtolower($infos['prefix']);
101 101
 	// si paquet.xml fournit un squelette, le prendre
102 102
 	if (isset($infos['config']) and $infos['config']) {
103
-		return recuperer_fond("$dir$nom/" . $infos['config'],
103
+		return recuperer_fond("$dir$nom/".$infos['config'],
104 104
 			array(
105
-				'script' => 'configurer_' . $prefix,
105
+				'script' => 'configurer_'.$prefix,
106 106
 				'nom' => $nom
107 107
 			));
108 108
 	}
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 	// sinon prendre le squelette std sur le nom std
121 121
 	return recuperer_fond("prive/squelettes/inclure/cfg",
122 122
 		array(
123
-			'script' => 'configurer_' . $prefix,
123
+			'script' => 'configurer_'.$prefix,
124 124
 			'nom' => $nom
125 125
 		));
126 126
 }
@@ -135,7 +135,7 @@  discard block
 block discarded – undo
135 135
 	. "<input type='checkbox' name='s$name' id='label_$id_input'"
136 136
 	. ($actif ? " checked='checked'" : "")
137 137
 	. " class='checkbox'  value='O' />"
138
-	. "\n<label for='label_$id_input'>" . _T('activer_plugin') . "</label>"
138
+	. "\n<label for='label_$id_input'>"._T('activer_plugin')."</label>"
139 139
 	. "</div>";
140 140
 }
141 141
 
@@ -190,11 +190,11 @@  discard block
 block discarded – undo
190 190
 	. "<h3><a href='$url' rel='info'>"
191 191
 	. $nom
192 192
 	. "</a></h3>"
193
-	. " <span class='version'>" . $info['version'] . "</span>"
193
+	. " <span class='version'>".$info['version']."</span>"
194 194
 	. " <span class='etat'> - "
195 195
 	. plugin_etat_en_clair($info['etat'])
196 196
 	. "</span>"
197
-	. "<div class='short'>" . $slogan . "</div>"
197
+	. "<div class='short'>".$slogan."</div>"
198 198
 	. $i
199 199
 	. "</div>";
200 200
 }
@@ -209,7 +209,7 @@  discard block
 block discarded – undo
209 209
 	$text2 = _T('info_desinstaller_plugin');
210 210
 	$file = basename($plug_file);
211 211
 
212
-	return "<div class='actions'>[" .
212
+	return "<div class='actions'>[".
213 213
 	"<a href='$action'
214 214
 		onclick='return confirm(\"$text $nom ?\\n$text2\")'>"
215 215
 	. $text
@@ -231,17 +231,17 @@  discard block
 block discarded – undo
231 231
 		$etat = 'developpement';
232 232
 	}
233 233
 
234
-	return _T('plugin_etat_' . $etat);
234
+	return _T('plugin_etat_'.$etat);
235 235
 }
236 236
 
237 237
 // https://code.spip.net/@plugin_propre
238
-function plugin_propre($texte, $module = '',$propre='propre') {
238
+function plugin_propre($texte, $module = '', $propre = 'propre') {
239 239
 	// retirer le retour a la racine du module, car le find_in_path se fait depuis la racine
240 240
 	if (_DIR_RACINE and strncmp($module, _DIR_RACINE, strlen(_DIR_RACINE)) == 0) {
241 241
 		$module = substr($module, strlen(_DIR_RACINE));
242 242
 	}
243 243
 	if (preg_match("|^\w+_[\w_]+$|", $texte)) {
244
-		$texte = _T(($module ? "$module:" : '') . $texte, array(), array('force' => false));
244
+		$texte = _T(($module ? "$module:" : '').$texte, array(), array('force' => false));
245 245
 	}
246 246
 
247 247
 	return $propre($texte);
@@ -273,9 +273,9 @@  discard block
 block discarded – undo
273 273
 	if (isset($info['documentation'])
274 274
 		and $lien = $info['documentation']
275 275
 	) {
276
-		$description .= "<p><em class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') . '</a></em></p>';
276
+		$description .= "<p><em class='site'><a href='$lien' class='spip_out'>"._T('en_savoir_plus').'</a></em></p>';
277 277
 	}
278
-	$s .= "<dd class='desc'>" . $description . "</dd>\n";
278
+	$s .= "<dd class='desc'>".$description."</dd>\n";
279 279
 
280 280
 	if (isset($info['auteur'])) {
281 281
 		if (is_array($info['auteur'])) {
@@ -285,15 +285,15 @@  discard block
 block discarded – undo
285 285
 			$a = trim($info['auteur']);
286 286
 		}
287 287
 		if ($a) {
288
-			$s .= "<dt class='auteurs'>" . _T('public:par_auteur') . "</dt><dd class='auteurs'>" . PtoBR(propre($a,
289
-					$dir)) . "</dd>\n";
288
+			$s .= "<dt class='auteurs'>"._T('public:par_auteur')."</dt><dd class='auteurs'>".PtoBR(propre($a,
289
+					$dir))."</dd>\n";
290 290
 		}
291 291
 	}
292 292
 
293 293
 	if (isset($info['credit'])) {
294 294
 		if ($a = formater_credits($info['credit'], ', ')) {
295
-			$s .= "<dt class='credits'>" . _T('plugin_info_credit') . "</dt><dd class='credits'>" . PtoBR(propre($a,
296
-					$dir)) . "</dd>\n";
295
+			$s .= "<dt class='credits'>"._T('plugin_info_credit')."</dt><dd class='credits'>".PtoBR(propre($a,
296
+					$dir))."</dd>\n";
297 297
 		}
298 298
 	}
299 299
 
@@ -305,8 +305,8 @@  discard block
 block discarded – undo
305 305
 			$a = trim($info['licence']);
306 306
 		}
307 307
 		if ($a) {
308
-			$s .= "<dt class='licence'>" . _T('intitule_licence') . "</dt><dd class='licence'>" . PtoBR(propre($a,
309
-					$dir)) . "</dd>\n";
308
+			$s .= "<dt class='licence'>"._T('intitule_licence')."</dt><dd class='licence'>".PtoBR(propre($a,
309
+					$dir))."</dd>\n";
310 310
 		}
311 311
 	}
312 312
 
@@ -317,23 +317,22 @@  discard block
 block discarded – undo
317 317
 	//
318 318
 	$infotech = array();
319 319
 
320
-	$version = "<dt>" . _T('version') . "</dt><dd>" . $info['version'];
320
+	$version = "<dt>"._T('version')."</dt><dd>".$info['version'];
321 321
 	// Version VCS
322
-	if ($vcs = version_vcs_courante($dir_plugins . $plug_file)) {
323
-		$version .= ' ' . $vcs;
322
+	if ($vcs = version_vcs_courante($dir_plugins.$plug_file)) {
323
+		$version .= ' '.$vcs;
324 324
 	}
325 325
 	$version .= "</dd>";
326 326
 	$infotech[] = $version;
327
-	$infotech[] = "<dt>" . _T('repertoire_plugins') . "</dt><dd>" . joli_repertoire("$dir_plugins$plug_file") . "</dd>";
327
+	$infotech[] = "<dt>"._T('repertoire_plugins')."</dt><dd>".joli_repertoire("$dir_plugins$plug_file")."</dd>";
328 328
 	// source zip le cas echeant
329
-	$infotech[] = (lire_fichier($dir_plugins . $plug_file . '/install.log', $log)
329
+	$infotech[] = (lire_fichier($dir_plugins.$plug_file.'/install.log', $log)
330 330
 		and preg_match(',^source:(.*)$,m', $log, $r))
331
-		? '<dt>' . _T('plugin_source') . '</dt><dd>' . trim($r[1]) . "</dd>"
331
+		? '<dt>'._T('plugin_source').'</dt><dd>'.trim($r[1])."</dd>"
332 332
 		: '';
333 333
 
334
-	$infotech[] = !$info['necessite'] ? '' :
335
-		('<dt>' . _T('plugin_info_necessite') . '</dt><dd>' . join(' ',
336
-				array_map('array_shift', $info['necessite'])) . '</dd>');
334
+	$infotech[] = !$info['necessite'] ? '' : ('<dt>'._T('plugin_info_necessite').'</dt><dd>'.join(' ',
335
+				array_map('array_shift', $info['necessite'])).'</dd>');
337 336
 
338 337
 	$s .= "<dl class='tech'>"
339 338
 		. join('', $infotech)
@@ -354,8 +353,8 @@  discard block
 block discarded – undo
354 353
 		$texte .=
355 354
 			(!is_array($_credit))
356 355
 				? PtoBR(propre($_credit))
357
-				: ($_credit['url'] ? '<a href="' . $_credit['url'] . '">' : '') .
358
-				$_credit['nom'] .
356
+				: ($_credit['url'] ? '<a href="'.$_credit['url'].'">' : '').
357
+				$_credit['nom'].
359 358
 				($_credit['url'] ? '</a>' : '');
360 359
 	}
361 360
 
Please login to merge, or discard this patch.