[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / plugins / afficher_plugin_distant.php
diff --git a/www/ecrire/plugins/afficher_plugin_distant.php b/www/ecrire/plugins/afficher_plugin_distant.php
new file mode 100644 (file)
index 0000000..0f14a84
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2011                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+include_spip('inc/charsets');
+include_spip('inc/texte');
+
+// http://doc.spip.org/@ligne_plug
+function plugins_afficher_plugin_distant_dist($url_page, $zip_file, $info, $expose=false, $class_li="item"){
+       static $id_input=0;
+       static $versions = array();
+       static $charger_plugin = null;
+
+       $erreur = false;
+       $s = "";
+
+       $titre = $info[0];
+       $url_doc = $info[1];
+       $info = $info[2]; // recuperer le tableau
+
+       $titre = typo('<multi>'.$titre.'</multi>'); // recuperer les blocs multi du flux de la zone (temporaire?)
+       $nick = strtolower(basename($zip_file, '.zip'));
+       $info['prefix'] = $nick;
+       $plug_file = $zip_file;
+       
+       // numerotons les occurences d'un meme prefix
+       $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : '';
+       $id = $info['prefix'] . $versions[$info['prefix']];
+       
+       $class = $class_li;
+       $class .= $actif?" actif":"";
+       $class .= $expose?" on":"";
+       $erreur = isset($info['erreur']);
+       if ($erreur)
+               $class .= " erreur";
+       $s .= "<li id='$id' class='$class'>";
+
+
+       // checkbox pour activer ou desactiver
+       // si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension)
+       /*
+       if (!$erreur AND $actif>=0){
+               $id_input++;
+               $check = "\n<input type='radio' name='url_zip_plugin' id='label_$id_input' value='O'";
+               $check .= $actif?" checked='checked'":"";
+               $check .= " class='checkbox' />";
+               $check .= "<label for='label_$id_input'>".$titre."</label>";
+               $s .= "<div class='check'>$check</div>";
+       }*/
+
+       if (!$erreur){
+               // bouton de telechargement
+               if (!$charger_plugin)
+                       $charger_plugin = generer_action_auteur('charger_plugin',"charger_zip","./");
+               $balise_img = chercher_filtre('balise_img');
+               $action = parametre_url($charger_plugin,'url_zip_plugin',$plug_file);
+               $s .= "<div class='download'>".
+               "<a href='$action' title='"._T('plugin_charger')."'>"
+               . $balise_img(find_in_path("images/telecharger-16.png"),_T('plugin_charger'))
+               ."</a></div>"
+               ;
+       }
+
+       // Cartouche Resume
+       $s .= "<div class='resume'>";
+
+       $desc = $info['descriptif'];
+       $url_stat = parametre_url($url_page, "plugin",$plug_file);
+
+       $s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".$titre."</a></h3>";
+       $s .= "<div class='short'>".couper($desc,60)."</div>";
+       if (isset($info['icon']) and $info['icon']) {
+               include_spip("inc/filtres_images_mini");
+               $s.= "<div class='icon'><a href='$url_stat' rel='info'><img src='".$info['icon']."' width='32' height='auto' /></a></div>";
+       }
+       $s .= "</div>";
+
+       if ($erreur){
+               $s .=  "<div class='erreur'>";
+               foreach($info['erreur'] as $err)
+                       $s .= "$err <br/>";
+               $s .=  "</div>";
+       }
+
+       // afficher les details d'un plug en secours ; la div sert pour l'ajax
+       $s .= "<div class='details'>";
+       if ($expose)
+               $s .= affiche_bloc_plugin_distant($plug_file, $info);
+       $s .= "</div>";
+
+       $s .= "</li>";
+       return $s;
+}
+
+// http://doc.spip.org/@affiche_bloc_plugin
+function affiche_bloc_plugin_distant($plug_file, $info) {
+       //recuperer_fond('prive/contenu/item_rss_plugin',$item)
+
+       $s = "";
+       if (isset($info['descriptif']))
+               $s .= "<div class='desc'>".$info['descriptif']. "</div>";
+
+       if (isset($info['lesauteurs']) AND trim($info['lesauteurs']))
+               $s .= "<div class='auteurs'>" . _T('public:par_auteur') .' '. $info['lesauteurs'] . "</div>";
+       if (isset($info['licence']))
+               $s .= "<div class='licence'>" . _T('intitule_licence') .' '. $info['licence'] . "</div>";
+
+       if (trim($info['url'])) {
+               $lien = $info['url'];
+               if (!preg_match(',^https?://,iS', $lien))
+                       $lien = extraire_attribut(extraire_balise($lien,'a'),'href');
+               $s .= "<div class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') .'</a></div>';
+       }
+
+       //
+       // Ajouter les infos techniques
+       //
+       $infotech = array();
+
+       // source zip le cas echeant
+       $source = _T('plugin_source').' '.trim($plug_file);
+
+       $s .= "<div class='tech'>"
+               . $source
+               ."</div>";
+
+
+       return $s;
+}
+?>