X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Fexec%2Fadmin_plugin.php;fp=www%2Fecrire%2Fexec%2Fadmin_plugin.php;h=8214d866699a73306144ae4344b3449d04ca7992;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=b4f3d96086afcdc01aacebe8525d84661f6d717f;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/ecrire/exec/admin_plugin.php b/www/ecrire/exec/admin_plugin.php index b4f3d960..8214d866 100644 --- a/www/ecrire/exec/admin_plugin.php +++ b/www/ecrire/exec/admin_plugin.php @@ -3,14 +3,22 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2016 * + * Copyright (c) 2001-2017 * * 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; +/** + * Gestion d'affichage de l'administration des plugins + * + * @package SPIP\Core\Exec + */ + +if (!defined('_ECRIRE_INC_VERSION')) { + return; +} include_spip('inc/config'); include_spip('inc/plugin'); @@ -19,31 +27,59 @@ include_spip('inc/layer'); include_spip('inc/actions'); include_spip('inc/securiser_action'); -// http://doc.spip.org/@exec_admin_plugin_dist -function exec_admin_plugin_dist($retour='') { +/** + * Affichage de la page de gestion des plugins + * + * Relance la page si des plugins ont été modifiés, sinon affiche la liste. + * + * @uses actualise_plugins_actifs() + * @param string $retour Inutilisé + */ +function exec_admin_plugin_dist($retour = '') { if (!autoriser('configurer', '_plugins')) { include_spip('inc/minipres'); echo minipres(); } else { - // on fait la verif du path avant tout, - // et l'installation des qu'on est dans la colonne principale - // si jamais la liste des plugins actifs change, il faut faire un refresh du hit - // pour etre sur que les bons fichiers seront charges lors de l'install + // on fait la verif du path avant tout, + // et l'installation des qu'on est dans la colonne principale + // si jamais la liste des plugins actifs change, il faut faire un refresh du hit + // pour etre sur que les bons fichiers seront charges lors de l'install $new = actualise_plugins_actifs(); - if ($new AND _request('actualise')<2) { + if ($new and _request('actualise') < 2) { include_spip('inc/headers'); - redirige_par_entete(parametre_url(self(),'actualise',_request('actualise')+1,'&')); - } - else { + redirige_par_entete(parametre_url(self(), 'actualise', _request('actualise') + 1, '&')); + } else { admin_plug_args(_request('voir'), _request('erreur'), _request('format')); } } } -function admin_plug_args($quoi, $erreur, $format) -{ - if (!$quoi) $quoi = 'actifs'; +/** + * Affichage spécifique de la page de gestion des plugins + * + * Affiche la liste des plugins demandés et les erreurs éventuelles. + * + * @uses plugin_donne_erreurs() + * @uses liste_chemin_plugin() + * @uses plugin_installes_meta() + * @uses affiche_les_plugins_verrouilles() + * + * @pipeline_appel affiche_gauche + * @pipeline_appel affiche_droit + * @pipeline_appel affiche_milieu + * + * @param string $quoi + * Quels plugins afficher ? actifs, ou autre + * @param string $erreur + * Erreur éventuelle à afficher + * @param string $format + * Format d'affichage (liste ou arborescence) + **/ +function admin_plug_args($quoi, $erreur, $format) { + if (!$quoi) { + $quoi = 'actifs'; + } // empecher l'affichage des erreurs dans le bandeau, on le donne ensuite // format brut par plugin $GLOBALS['erreurs_activation_raw'] = plugin_donne_erreurs(true, false); @@ -52,32 +88,33 @@ function admin_plug_args($quoi, $erreur, $format) $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('icone_admin_plugin'), "configuration", "plugin"); - echo debut_gauche('plugin',true); - echo recuperer_fond('prive/squelettes/navigation/configurer',array('exec'=>'admin_plugin')); + echo debut_gauche('plugin', true); + echo recuperer_fond('prive/squelettes/navigation/configurer', array('exec' => 'admin_plugin')); echo pipeline('affiche_gauche', array( - 'args'=>array('exec'=>'admin_plugin'), - 'data'=>afficher_librairies() + 'args' => array('exec' => 'admin_plugin'), + 'data' => afficher_librairies() ) ); echo debut_droite('plugin', true); - echo gros_titre(_T('icone_admin_plugin'),'',false); + echo gros_titre(_T('icone_admin_plugin'), '', false); // Barre d'onglets de premier niveau echo barre_onglets("plugins", "plugins_actifs"); // Barre d'onglets de second niveau - $onglet2 = $quoi=='actifs' ? 'plugins_actifs' : 'admin_plugin'; + $onglet2 = $quoi == 'actifs' ? 'plugins_actifs' : 'admin_plugin'; echo debut_onglet('onglets_simple second'); echo onglet(_T('plugins_tous_liste'), generer_url_ecrire("admin_plugin", "voir=tous"), 'admin_plugin', $onglet2); echo onglet(_T('plugins_actifs_liste'), generer_url_ecrire("admin_plugin"), 'plugins_actifs', $onglet2); echo fin_onglet(); // message d'erreur au retour d'une operation - if ($erreur) + if ($erreur) { echo "
$erreur
"; - if ($erreur_activation){ + } + if ($erreur_activation) { echo "
$erreur_activation
"; } @@ -87,70 +124,79 @@ function admin_plug_args($quoi, $erreur, $format) // Les affichages se basent sur le repertoire, pas sur le nom $actifs = liste_chemin_plugin($actifs, ''); - if (defined('_DIR_PLUGINS_SUPPL')) - $lcpas = liste_chemin_plugin($lcpa,_DIR_PLUGINS_SUPPL); + if (defined('_DIR_PLUGINS_SUPPL')) { + $lcpas = liste_chemin_plugin($lcpa, _DIR_PLUGINS_SUPPL); + } $lcpa = liste_chemin_plugin($lcpa); - + // on installe les plugins maintenant, // cela permet aux scripts d'install de faire des affichages (moches...) plugin_installes_meta(); echo "
"; - echo debut_cadre_trait_couleur('plugin-24.png',true,'',_T('plugins_liste'), 'plugins'); + echo debut_cadre_trait_couleur('plugin-24.png', true, '', _T('plugins_liste'), 'plugins'); - if ($quoi!=='actifs'){ + if ($quoi !== 'actifs') { $lpf = liste_plugin_files(); - 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 ($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') . "

"; + } } $lcpaffiche = $lpf; - if (defined('_DIR_PLUGINS_SUPPL')) + if (defined('_DIR_PLUGINS_SUPPL')) { $lcpaffichesup = liste_plugin_files(_DIR_PLUGINS_SUPPL); - } - else { + } + } else { // la liste // $quoi=='actifs' $lcpaffiche = $lcpa; - if (defined('_DIR_PLUGINS_SUPPL')) + if (defined('_DIR_PLUGINS_SUPPL')) { $lcpaffichesup = $lcpas; + } } - if ($quoi=='actifs' OR $lpf){ + if ($quoi == 'actifs' or $lpf) { $nb = count($lcpa); - if (defined('_DIR_PLUGINS_SUPPL')) + if (defined('_DIR_PLUGINS_SUPPL')) { $nb += count($lcpas); - echo "

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

"; + } + echo "

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

"; } - if (empty($format)) - $format = 'liste'; - elseif (!in_array($format,array('liste','repertoires'))) + if (empty($format)) { + $format = 'liste'; + } elseif (!in_array($format, array('liste', 'repertoires'))) { $format = 'repertoires'; + } - $afficher = charger_fonction("afficher_$format",'plugins'); - $corps = $afficher(self(),$lcpaffiche, $lcpa, $actifs); - if (defined('_DIR_PLUGINS_SUPPL')) - $corps .= $afficher(self(),$lcpaffichesup, $lcpas, $actifs, _DIR_PLUGINS_SUPPL); + $afficher = charger_fonction("afficher_$format", 'plugins'); + $corps = $afficher(self(), $lcpaffiche, $lcpa, $actifs); + if (defined('_DIR_PLUGINS_SUPPL')) { + $corps .= $afficher(self(), $lcpaffichesup, $lcpas, $actifs, _DIR_PLUGINS_SUPPL); + } - if ($corps) - $corps .= "\n"; + if ($corps) { + $corps .= "\n"; + } - echo redirige_action_post('activer_plugins','activer','admin_plugin','', $corps); + echo redirige_action_post('activer_plugins', 'activer', 'admin_plugin', '', $corps); echo fin_cadre_trait_couleur(true); - if ($quoi=='actifs') + if ($quoi == 'actifs') { echo affiche_les_plugins_verrouilles($actifs); + } echo "
"; - - echo http_script(" + + echo http_script(" jQuery(function(){ jQuery('.plugins li.item a[rel=info]').click(function(){ var li = jQuery(this).parents('li').eq(0); @@ -178,27 +224,38 @@ function admin_plug_args($quoi, $erreur, $format) echo pipeline('affiche_milieu', array( - 'args'=>array('exec'=>'admin_plugin'), - 'data'=>'' + 'args' => array('exec' => 'admin_plugin'), + 'data' => '' ) ); echo fin_gauche(), fin_page(); } -function affiche_les_plugins_verrouilles($actifs) -{ - if ((!$liste = liste_plugin_files(_DIR_PLUGINS_DIST))) return ''; +/** + * Crée le code HTML de la liste des plugins verrouillés + * + * @uses liste_plugin_files() + * + * @param array $actifs + * Liste des plugins actifs + * @return string + * Code HTML + **/ +function affiche_les_plugins_verrouilles($actifs) { + if ((!$liste = liste_plugin_files(_DIR_PLUGINS_DIST))) { + return ''; + } - $afficher = charger_fonction("afficher_liste",'plugins'); + $afficher = charger_fonction("afficher_liste", 'plugins'); $liste = $afficher(self(), $liste, array(), $actifs, _DIR_PLUGINS_DIST); - return + return "
" - . debut_cadre_trait_couleur('',true,'',_T('plugins_liste_dist'), 'liste_plugins_dist') + . debut_cadre_trait_couleur('', true, '', _T('plugins_liste_dist'), 'liste_plugins_dist') . "

" . _T('plugin_info_plugins_dist_1', array('plugins_dist' => joli_repertoire(_DIR_PLUGINS_DIST))) - . '
'. _T('plugin_info_plugins_dist_2') + . '
' . _T('plugin_info_plugins_dist_2') . "

" . $liste . fin_cadre_trait_couleur(true) @@ -206,43 +263,51 @@ function affiche_les_plugins_verrouilles($actifs) } /** - * Afficher la liste des librairies presentes + * Crée le code HTML de la liste des librairies présentes + * + * @uses liste_librairies() * - * @return + * @return string Code HTML */ -function afficher_librairies(){ +function afficher_librairies() { - if (!$libs = liste_librairies()) return ''; + if (!$libs = liste_librairies()) { + return ''; + } ksort($libs); $res = debut_cadre_enfonce('', true, '', _T('plugin_librairies_installees')); $res .= '
'; - foreach ($libs as $lib => $rep) - $res .= "
$lib
".joli_repertoire($rep)."
\n"; + foreach ($libs as $lib => $rep) { + $res .= "
$lib
" . joli_repertoire($rep) . "
\n"; + } $res .= '
'; $res .= fin_cadre_enfonce(true); + return $res; } /** * Faire la liste des librairies disponibles - * retourne un array ( nom de la lib => repertoire , ... ) * * @return array + * Tableau (nom de la lib => repertoire , ...) */ -// http://doc.spip.org/@liste_librairies function liste_librairies() { $libs = array(); foreach (array_reverse(creer_chemin()) as $d) { - if (is_dir($dir = $d.'lib/') - AND $t = @opendir($dir)) { + if (is_dir($dir = $d . 'lib/') + and $t = opendir($dir) + ) { while (($f = readdir($t)) !== false) { if ($f[0] != '.' - AND is_dir("$dir/$f")) + and is_dir("$dir/$f") + ) { $libs[$f] = $dir; + } } } } + return $libs; } -?>