/spip/ecrire/plugins/afficher_plugin_distant.php
PHP | 139 lines | 82 code | 26 blank | 31 comment | 12 complexity | 3e5fab48b2f00e207d378b140bfad0e9 MD5 | raw file
Possible License(s): LGPL-2.1, GPL-3.0
- <?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;
- }
- ?>