[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / plugins / afficher_plugin_distant.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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/charsets');
15 include_spip('inc/texte');
16
17 // http://doc.spip.org/@ligne_plug
18 function plugins_afficher_plugin_distant_dist($url_page, $zip_file, $info, $expose=false, $class_li="item"){
19 static $id_input=0;
20 static $versions = array();
21 static $charger_plugin = null;
22
23 $erreur = false;
24 $s = "";
25
26 $titre = $info[0];
27 $url_doc = $info[1];
28 $info = $info[2]; // recuperer le tableau
29
30 $titre = typo('<multi>'.$titre.'</multi>'); // recuperer les blocs multi du flux de la zone (temporaire?)
31 $nick = strtolower(basename($zip_file, '.zip'));
32 $info['prefix'] = $nick;
33 $plug_file = $zip_file;
34
35 // numerotons les occurences d'un meme prefix
36 $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : '';
37 $id = $info['prefix'] . $versions[$info['prefix']];
38
39 $class = $class_li;
40 $class .= $actif?" actif":"";
41 $class .= $expose?" on":"";
42 $erreur = isset($info['erreur']);
43 if ($erreur)
44 $class .= " erreur";
45 $s .= "<li id='$id' class='$class'>";
46
47
48 // checkbox pour activer ou desactiver
49 // si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension)
50 /*
51 if (!$erreur AND $actif>=0){
52 $id_input++;
53 $check = "\n<input type='radio' name='url_zip_plugin' id='label_$id_input' value='O'";
54 $check .= $actif?" checked='checked'":"";
55 $check .= " class='checkbox' />";
56 $check .= "<label for='label_$id_input'>".$titre."</label>";
57 $s .= "<div class='check'>$check</div>";
58 }*/
59
60 if (!$erreur){
61 // bouton de telechargement
62 if (!$charger_plugin)
63 $charger_plugin = generer_action_auteur('charger_plugin',"charger_zip","./");
64 $balise_img = chercher_filtre('balise_img');
65 $action = parametre_url($charger_plugin,'url_zip_plugin',$plug_file);
66 $s .= "<div class='download'>".
67 "<a href='$action' title='"._T('plugin_charger')."'>"
68 . $balise_img(find_in_path("images/telecharger-16.png"),_T('plugin_charger'))
69 ."</a></div>"
70 ;
71 }
72
73 // Cartouche Resume
74 $s .= "<div class='resume'>";
75
76 $desc = $info['descriptif'];
77 $url_stat = parametre_url($url_page, "plugin",$plug_file);
78
79 $s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".$titre."</a></h3>";
80 $s .= "<div class='short'>".couper($desc,60)."</div>";
81 if (isset($info['icon']) and $info['icon']) {
82 include_spip("inc/filtres_images_mini");
83 $s.= "<div class='icon'><a href='$url_stat' rel='info'><img src='".$info['icon']."' width='32' height='auto' /></a></div>";
84 }
85 $s .= "</div>";
86
87 if ($erreur){
88 $s .= "<div class='erreur'>";
89 foreach($info['erreur'] as $err)
90 $s .= "$err <br/>";
91 $s .= "</div>";
92 }
93
94 // afficher les details d'un plug en secours ; la div sert pour l'ajax
95 $s .= "<div class='details'>";
96 if ($expose)
97 $s .= affiche_bloc_plugin_distant($plug_file, $info);
98 $s .= "</div>";
99
100 $s .= "</li>";
101 return $s;
102 }
103
104 // http://doc.spip.org/@affiche_bloc_plugin
105 function affiche_bloc_plugin_distant($plug_file, $info) {
106 //recuperer_fond('prive/contenu/item_rss_plugin',$item)
107
108 $s = "";
109 if (isset($info['descriptif']))
110 $s .= "<div class='desc'>".$info['descriptif']. "</div>";
111
112 if (isset($info['lesauteurs']) AND trim($info['lesauteurs']))
113 $s .= "<div class='auteurs'>" . _T('public:par_auteur') .' '. $info['lesauteurs'] . "</div>";
114 if (isset($info['licence']))
115 $s .= "<div class='licence'>" . _T('intitule_licence') .' '. $info['licence'] . "</div>";
116
117 if (trim($info['url'])) {
118 $lien = $info['url'];
119 if (!preg_match(',^https?://,iS', $lien))
120 $lien = extraire_attribut(extraire_balise($lien,'a'),'href');
121 $s .= "<div class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') .'</a></div>';
122 }
123
124 //
125 // Ajouter les infos techniques
126 //
127 $infotech = array();
128
129 // source zip le cas echeant
130 $source = _T('plugin_source').' '.trim($plug_file);
131
132 $s .= "<div class='tech'>"
133 . $source
134 ."</div>";
135
136
137 return $s;
138 }
139 ?>