X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fexec%2Fadmin_plugin.php;fp=www%2Fecrire%2Fexec%2Fadmin_plugin.php;h=b7bc20f4b36738600fa316d2c4040b0c92620457;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/exec/admin_plugin.php b/www/ecrire/exec/admin_plugin.php new file mode 100644 index 0000000..b7bc20f --- /dev/null +++ b/www/ecrire/exec/admin_plugin.php @@ -0,0 +1,254 @@ +\n"; + echo "
\n"; + + $quoi = _request('voir'); + $quoi = $quoi ? $quoi : 'actifs'; + + echo gros_titre(_T('icone_admin_plugin'),'',false); + echo barre_onglets("plugins", $quoi=='actifs'?"plugins_actifs":"admin_plugin"); + + echo debut_gauche('plugin',true); + echo debut_boite_info(true); + $s = ""; + $s .= _T('info_gauche_admin_tech'); + echo $s; + echo fin_boite_info(true); + + // la valeur de retour de la fonction ci-dessus n'est pas compatible + // avec ce que fait actualise_plugins_actifs, il faut recalculer. A revoir. + $lcpa = liste_chemin_plugin_actifs(); + + echo pipeline('affiche_gauche', + array( + 'args'=>array('exec'=>'admin_plugin'), + 'data'=>afficher_librairies() + ) + ); + + echo debut_droite('plugin', true); + + // message d'erreur au retour d'un operation + if (_request('erreur')){ + echo "
" . _T(_request('erreur')) . "
"; + } + if ($erreur_activation){ + echo "
" . $erreur_activation . "
"; + effacer_meta('plugin_erreur_activation'); + } + + + // on fait l'installation ici, + // cela permet aux scripts d'install de faire des affichages (moches...) + installe_plugins(); + + $lpf = liste_plugin_files(); + $plugins_interessants = @array_keys(unserialize($GLOBALS['meta']['plugins_interessants'])); + if (!is_array($plugins_interessants)) + $plugins_interessants = array(); + + echo "
"; + + echo debut_cadre_trait_couleur('plugin-24.gif',true,'',_T('plugins_liste'), + 'plugins'); + + if ($quoi!=='actifs'){ + if ($lpf) + echo "

"._T('texte_presente_plugin')."

"; + else { + if (!@is_dir(_DIR_PLUGINS)) + echo "

"._T('plugin_info_automatique_ftp',array('rep'=>joli_repertoire(_DIR_PLUGINS))) + . " — "._T('plugin_info_automatique_creer')."

"; + } + } + + if ($quoi=='actifs' OR $lpf) + echo "

".sinon( + singulier_ou_pluriel(count($lcpa), 'plugins_actif_un', 'plugins_actifs', 'count'), + _T('plugins_actif_aucun') + )."

"; + + $sub = "\n"; + + $no_button = false; + + // la liste + if ($quoi=='actifs'){ + $aff = affiche_les_plugins($lcpa, $lcpa, $format); + $no_button = !strlen($aff); + $corps = $aff; + } + elseif ($quoi=='tous') + $corps = affiche_les_plugins($lpf, $lcpa, $format); + else { + $dir_auto = substr(_DIR_PLUGINS_AUTO, strlen(_DIR_PLUGINS)); + $lcpaffiche = array(); + foreach ($lpf as $f) + if (!strpos($f, '/') + OR ($dir_auto AND substr($f, 0, strlen($dir_auto)) == $dir_auto) + OR in_array($f, $lcpa) + OR in_array($f, $plugins_interessants)) + $lcpaffiche[] = $f; + + $corps = affiche_les_plugins($lcpaffiche, $lcpa, $format); + } + + if (!$no_button) + $corps .= "\n
" . $sub; + + echo redirige_action_post('activer_plugins','activer','admin_plugin','', $corps); + + echo fin_cadre_trait_couleur(true); + + if ($quoi=='actifs') + echo affiche_les_extensions(liste_chemin_plugin_actifs(_DIR_EXTENSIONS)); + echo "
"; + + echo http_script(" + jQuery(function(){ + jQuery('.plugins li.item a[rel=info]').click(function(){ + var li = jQuery(this).parents('li').eq(0); + var prefix = li.find('input.checkbox').attr('name'); + if (!jQuery('div.details',li).html()) { + jQuery('div.details',li).prepend(ajax_image_searching).load( + jQuery(this).attr('href').replace(/admin_plugin|plugins/, 'info_plugin'), function(){ + li.addClass('on'); + } + ); + } + else { + if (jQuery('div.details',li).toggle().is(':visible')) + li.addClass('on'); + else + li.removeClass('on'); + } + return false; + }); + jQuery('.plugins li.item input.checkbox').change(function(){ + jQuery(this).parents('form').eq(0).find('.boutons').slideDown(); + }); + }); + "); + + echo pipeline('affiche_milieu', + array( + 'args'=>array('exec'=>'admin_plugin'), + 'data'=>'' + ) + ); + + echo fin_gauche(), fin_page(); + } +} + +function affiche_les_extensions($liste_plugins_actifs){ + $res = ""; + if ($liste_extensions = liste_plugin_files(_DIR_EXTENSIONS)) { + $res .= "
"; + $res .= debut_cadre_trait_couleur('',true,'',_T('plugins_liste_extensions'), + 'liste_extensions'); + $res .= "

" + ._T('plugin_info_extension_1', array('extensions' => joli_repertoire(_DIR_EXTENSIONS))) + . '
'. _T('plugin_info_extension_2') + ."

"; + + $format = 'liste'; + $afficher = charger_fonction("afficher_$format",'plugins'); + $res .= $afficher(self(), $liste_extensions,$liste_plugins_actifs, _DIR_EXTENSIONS); + + $res .= fin_cadre_trait_couleur(true); + $res .= "
\n"; + } + return $res; +} + +// http://doc.spip.org/@affiche_les_plugins +function affiche_les_plugins($liste_plugins, $liste_plugins_actifs, $format='liste'){ + if (!$format) + $format = 'liste'; + if (!in_array($format,array('liste','repertoires'))) + $format = 'repertoires'; + + $afficher = charger_fonction("afficher_$format",'plugins'); + $res = $afficher(self(), $liste_plugins,$liste_plugins_actifs); + + if (!$res) return ""; +# var_dump(spip_timer('cachexml')); + + + return $res; +} + +/** + * Afficher la liste des librairies presentes + * + * @return + */ +function afficher_librairies(){ + $res = ""; + // Lister les librairies disponibles + if ($libs = plugins_liste_librairies()) { + $res .= debut_cadre_enfonce('', true, '', _T('plugin_librairies_installees')); + ksort($libs); + $res .= '
'; + foreach ($libs as $lib => $rep) + $res .= "
$lib
".joli_repertoire($rep)."
"; + $res .= '
'; + $res .= fin_cadre_enfonce(true); + } + return $res; +} + +?>