PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/spip/ecrire/plugins/afficher_plugin_distant.php

https://github.com/eyeswebcrea/espace-couture-sittler.fr
PHP | 139 lines | 82 code | 26 blank | 31 comment | 12 complexity | 3e5fab48b2f00e207d378b140bfad0e9 MD5 | raw file
Possible License(s): LGPL-2.1, GPL-3.0
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2011 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. include_spip('inc/charsets');
  13. include_spip('inc/texte');
  14. // http://doc.spip.org/@ligne_plug
  15. function plugins_afficher_plugin_distant_dist($url_page, $zip_file, $info, $expose=false, $class_li="item"){
  16. static $id_input=0;
  17. static $versions = array();
  18. static $charger_plugin = null;
  19. $erreur = false;
  20. $s = "";
  21. $titre = $info[0];
  22. $url_doc = $info[1];
  23. $info = $info[2]; // recuperer le tableau
  24. $titre = typo('<multi>'.$titre.'</multi>'); // recuperer les blocs multi du flux de la zone (temporaire?)
  25. $nick = strtolower(basename($zip_file, '.zip'));
  26. $info['prefix'] = $nick;
  27. $plug_file = $zip_file;
  28. // numerotons les occurences d'un meme prefix
  29. $versions[$info['prefix']] = isset($versions[$info['prefix']]) ? $versions[$info['prefix']] + 1 : '';
  30. $id = $info['prefix'] . $versions[$info['prefix']];
  31. $class = $class_li;
  32. $class .= $actif?" actif":"";
  33. $class .= $expose?" on":"";
  34. $erreur = isset($info['erreur']);
  35. if ($erreur)
  36. $class .= " erreur";
  37. $s .= "<li id='$id' class='$class'>";
  38. // checkbox pour activer ou desactiver
  39. // si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension)
  40. /*
  41. if (!$erreur AND $actif>=0){
  42. $id_input++;
  43. $check = "\n<input type='radio' name='url_zip_plugin' id='label_$id_input' value='O'";
  44. $check .= $actif?" checked='checked'":"";
  45. $check .= " class='checkbox' />";
  46. $check .= "<label for='label_$id_input'>".$titre."</label>";
  47. $s .= "<div class='check'>$check</div>";
  48. }*/
  49. if (!$erreur){
  50. // bouton de telechargement
  51. if (!$charger_plugin)
  52. $charger_plugin = generer_action_auteur('charger_plugin',"charger_zip","./");
  53. $balise_img = chercher_filtre('balise_img');
  54. $action = parametre_url($charger_plugin,'url_zip_plugin',$plug_file);
  55. $s .= "<div class='download'>".
  56. "<a href='$action' title='"._T('plugin_charger')."'>"
  57. . $balise_img(find_in_path("images/telecharger-16.png"),_T('plugin_charger'))
  58. ."</a></div>"
  59. ;
  60. }
  61. // Cartouche Resume
  62. $s .= "<div class='resume'>";
  63. $desc = $info['descriptif'];
  64. $url_stat = parametre_url($url_page, "plugin",$plug_file);
  65. $s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".$titre."</a></h3>";
  66. $s .= "<div class='short'>".couper($desc,60)."</div>";
  67. if (isset($info['icon']) and $info['icon']) {
  68. include_spip("inc/filtres_images_mini");
  69. $s.= "<div class='icon'><a href='$url_stat' rel='info'><img src='".$info['icon']."' width='32' height='auto' /></a></div>";
  70. }
  71. $s .= "</div>";
  72. if ($erreur){
  73. $s .= "<div class='erreur'>";
  74. foreach($info['erreur'] as $err)
  75. $s .= "$err <br/>";
  76. $s .= "</div>";
  77. }
  78. // afficher les details d'un plug en secours ; la div sert pour l'ajax
  79. $s .= "<div class='details'>";
  80. if ($expose)
  81. $s .= affiche_bloc_plugin_distant($plug_file, $info);
  82. $s .= "</div>";
  83. $s .= "</li>";
  84. return $s;
  85. }
  86. // http://doc.spip.org/@affiche_bloc_plugin
  87. function affiche_bloc_plugin_distant($plug_file, $info) {
  88. //recuperer_fond('prive/contenu/item_rss_plugin',$item)
  89. $s = "";
  90. if (isset($info['descriptif']))
  91. $s .= "<div class='desc'>".$info['descriptif']. "</div>";
  92. if (isset($info['lesauteurs']) AND trim($info['lesauteurs']))
  93. $s .= "<div class='auteurs'>" . _T('public:par_auteur') .' '. $info['lesauteurs'] . "</div>";
  94. if (isset($info['licence']))
  95. $s .= "<div class='licence'>" . _T('intitule_licence') .' '. $info['licence'] . "</div>";
  96. if (trim($info['url'])) {
  97. $lien = $info['url'];
  98. if (!preg_match(',^https?://,iS', $lien))
  99. $lien = extraire_attribut(extraire_balise($lien,'a'),'href');
  100. $s .= "<div class='site'><a href='$lien' class='spip_out'>" . _T('en_savoir_plus') .'</a></div>';
  101. }
  102. //
  103. // Ajouter les infos techniques
  104. //
  105. $infotech = array();
  106. // source zip le cas echeant
  107. $source = _T('plugin_source').' '.trim($plug_file);
  108. $s .= "<div class='tech'>"
  109. . $source
  110. ."</div>";
  111. return $s;
  112. }
  113. ?>