diff --git a/ecrire/action/charger_plugin.php b/ecrire/action/charger_plugin.php index f8b36611d29b7f5822e8bbbf570955bbb5c98400..0d9ca2fd0b9138723281db79b72c4be15a6cd827 100644 --- a/ecrire/action/charger_plugin.php +++ b/ecrire/action/charger_plugin.php @@ -145,6 +145,7 @@ function action_charger_plugin_dist() { . $retour; if (_request('extract')) { + $afficher = charger_fonction('afficher_plugin','plugins'); // pour plugin_propre $texte = plugin_propre( spip_xml_aplatit($arbre['plugin'][0]['description'])); $texte .= '<p>'._T('plugin_zip_installe_finie',array('zip'=>$zip)).'</p>'; @@ -192,7 +193,7 @@ function action_charger_plugin_dist() { // par defaut on revient sur la page admin_plugin if($redirect == _DIR_RESTREINT OR $redirect == "./"){ $redirect_annul = generer_url_ecrire('admin_plugin'); - $redirect_form = 'admin_plugin&'.$type.'='.preg_replace(',^[^/]+/|/$,', '', $status['dirname']); + $redirect_form = 'admin_plugin&voir=recents&'.$type.'='.preg_replace(',^[^/]+/|/$,', '', $status['dirname']); $redirect_action = ''; } else{ diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php index 5a6f7d7e49acebfb40e8490f2c841ed39cb703d1..9faffd7155abcb9aa0d16ea0ae475dbda6c43af4 100644 --- a/ecrire/exec/admin_plugin.php +++ b/ecrire/exec/admin_plugin.php @@ -72,51 +72,68 @@ function exec_admin_plugin_dist($retour='') { $plugins_interessants = array(); if ($lpf) { - echo "<div class='liste_plugins'>"; + echo "<div class='liste-plugins formulaire_spip'>"; echo debut_cadre_trait_couleur('plugin-24.png',true,'',_T('plugins_liste'), 'liste_plugins'); echo "<p>"._T('texte_presente_plugin')."</p>"; - $sub = "\n<div style='text-align:".$GLOBALS['spip_lang_right']."'>" - . "<input type='submit' value='"._T('bouton_valider') - ."' class='fondo' />" . "</div>"; + $sub = "\n<div class='boutons'>" + . "<input type='submit' class='submit' value='"._T('bouton_enregistrer') + ."' />" . "</div>"; - // S'il y a plus de 10 plugins pas installes, les signaler a part ; - // mais on affiche tous les plugins mis a la racine ou dans auto/ - if (count($lpf) - count($lcpa) > 9 - AND _request('afficher_tous_plugins') != 'oui') { + $quoi = _request('voir'); + $quoi = $quoi ? $quoi : 'actifs'; - $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; - if (count($lcpaffiche)<10 AND !$format) $format = 'liste'; - $lien_format = $format!='liste' ? + $corps .= "<div class='liens'>" + . lien_ou_expose(parametre_url(self(),'voir','actifs'), _T('plugins_actifs',array('count'=>count($lcpa))), $quoi=='actifs') + . ' | ' + . lien_ou_expose(parametre_url(self(),'voir','recents'), _T('plugins_recents'), $quoi=='recents') + . ' | ' + . lien_ou_expose(parametre_url(self(),'voir','tous'), _T('plugins_disponibles',array('count'=>count($lpf))), $quoi=='tous') + . "</div>"; + + // les liens de navigation (actifs, frequents, tous) + /* $lien_format = $format!='liste' ? ("<a href='".parametre_url(self(),'format','liste')."'>"._T('plugins_vue_liste')."</a>") :("<a href='".parametre_url(self(),'format','arbre')."'>"._T('plugins_vue_hierarchie')."</a>"); $corps = "<p>$lien_format | "._T('plugins_actifs',array('count'=>count($lcpa)))."\n" . " | <a href='". parametre_url(self(),'afficher_tous_plugins', 'oui') ."'>" ._T('plugins_disponibles',array('count'=>count($lpf)))."</a></p>\n" - . affiche_les_plugins($lcpaffiche, $lcpa, $format); - - } else { + * + else { if (count($lpf)<10 AND !$format) $format = 'liste'; $lien_format = $format!='liste' ? ("<a href='".parametre_url(self(),'format','liste')."'>"._T('plugins_vue_liste')."</a>") :("<a href='".parametre_url(self(),'format','arbre')."'>"._T('plugins_vue_hierarchie')."</a>"); - $corps = + $corps = "<p>$lien_format | " ."<a href='". parametre_url(self(),'afficher_tous_plugins', '') ."'>" . _T('plugins_actifs',array('count'=>count($lcpa)))."</a> | \n" . ""._T('plugins_disponibles',array('count'=>count($lpf))) . "</p>\n" . (count($lpf)>20 ? $sub : '') . affiche_les_plugins($lpf, $lcpa, $format); + } + */ + + // la liste + if ($quoi=='actifs') + $corps .= affiche_les_plugins($lcpa, $lcpa, $format); + 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); + } $corps .= "\n<br />" . $sub; @@ -147,7 +164,7 @@ function affiche_les_extensions($liste_plugins_actifs){ $res .= "<p>"._L('Les extensions ci-dessous sont chargées et activées dans le répertoire @extensions@. Elles ne sont pas désactivables.', array('extensions' => joli_repertoire(_DIR_EXTENSIONS)))."</p>"; $afficher = charger_fonction("afficher_$format",'plugins'); - $res .= $afficher($liste_extensions,$liste_plugins_actifs); + $res .= $afficher(self(), $liste_extensions,$liste_plugins_actifs); $res .= fin_cadre_trait_couleur(true); $res .= "</div>\n"; @@ -160,38 +177,41 @@ function affiche_les_plugins($liste_plugins, $liste_plugins_actifs, $format='lis # (spip_timer('cachexml')); + if (!$format) + $format = 'liste'; if (!in_array($format,array('liste','repertoires'))) $format = 'repertoires'; $afficher = charger_fonction("afficher_$format",'plugins'); - $res = $afficher($liste_plugins,$liste_plugins_actifs); + $res = $afficher(self(), $liste_plugins,$liste_plugins_actifs); # var_dump(spip_timer('cachexml')); - return http_script(" + return + http_script(" jQuery(function(){ - jQuery('input.check').click(function(){ - jQuery(this).parent().toggleClass('nomplugin_on'); - }); - jQuery('div.nomplugin a[rel=info]').click(function(){ - var prefix = jQuery(this).parent().prev().attr('name'); - if (!jQuery(this).siblings('div.info').html()) { - jQuery(this).siblings('div.info').prepend(ajax_image_searching).load( - jQuery(this).attr('href').replace(/admin_plugin|plugins/, 'info_plugin'), {}, - function() { - document.location = '#' + prefix; + 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(this).siblings('div.info').toggle().attr('display') != 'none') { - document.location = '#' + prefix; - } + } + else { + if (jQuery('div.details',li).toggle().is(':visible')) + li.addClass('on'); + else + li.removeClass('on'); } return false; }); }); - ") . $res; + ") . + $res; } /** diff --git a/ecrire/exec/info_plugin.php b/ecrire/exec/info_plugin.php index e781bc4fe5599faf3dddba0bed3be99498e64795..27e4535b27d70afe3e9901e252de9b794e652c37 100644 --- a/ecrire/exec/info_plugin.php +++ b/ecrire/exec/info_plugin.php @@ -2,9 +2,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; -include_spip('inc/plugin'); include_spip('inc/actions'); - // http://doc.spip.org/@exec_info_plugin_dist function exec_info_plugin_dist() { if (!autoriser('configurer', 'plugins')) { @@ -14,6 +12,7 @@ function exec_info_plugin_dist() { $plug = _request('plugin'); $get_infos = charger_fonction('get_infos','plugins'); $info = $get_infos($plug); + $afficher_plugin = charger_fonction("afficher_plugin","plugins"); ajax_retour(affiche_bloc_plugin($plug, $info)); } } diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php index f349cc6ab1a8a6ff0fda44059fa87d56baea9fff..ab0de21e714dadac0273be952bb39fc70c778e92 100644 --- a/ecrire/inc/plugin.php +++ b/ecrire/inc/plugin.php @@ -685,117 +685,5 @@ function message_crash_plugins() { } -// http://doc.spip.org/@affiche_bloc_plugin -function affiche_bloc_plugin($plug_file, $info, $dir_plugins=null) { - global $spip_lang_right; - if (!$dir_plugins) - $dir_plugins = _DIR_PLUGINS; - - // puce d'etat du plugin - // <etat>dev|experimental|test|stable</etat> - $etat = 'dev'; - if (isset($info['etat'])) - $etat = $info['etat']; - switch ($etat) { - case 'experimental': - $puce = 'puce-rouge.gif'; - $titre_etat = _T('plugin_etat_experimental'); - break; - case 'test': - $puce = 'puce-orange.gif'; - $titre_etat = _T('plugin_etat_test'); - break; - case 'stable': - $puce = 'puce-verte.gif'; - $titre_etat = _T('plugin_etat_stable'); - break; - default: - $puce = 'puce-poubelle.gif'; - $titre_etat = _T('plugin_etat_developpement'); - break; - } - - $s .= "<div class='detailplugin verdana2'>"; - - if (isset($info['icon'])) { - include_spip("inc/filtres_images_mini"); - $s.= "<div style='float:$spip_lang_right;'>".image_reduire($dir_plugins.$plug_file.'/'.trim($info['icon']), 64)."</div>"; - - } - // TODO: le traiter_multi ici n'est pas beau - // cf. description du plugin/_stable_/ortho/plugin.xml - if (isset($info['description'])) - $s .= plugin_propre($info['description']) . "<br/>"; - - if (isset($info['auteur'])) - $s .= "<hr/>" . _T('auteur') .' '. plugin_propre($info['auteur']) . "<br/>"; - if (isset($info['licence'])) - $s .= "<hr/>" . _T('intitule_licence') .' '. plugin_propre($info['licence']) . "<br/>"; - - if (trim($info['lien'])) { - if (preg_match(',^https?://,iS', $info['lien'])) - $s .= "<hr/>" . _T('info_url') .' '. plugin_propre("[->".$info['lien']."]") . "<br/>"; - else - $s .= "<hr/>" . _T('info_url') .' '. plugin_propre($info['lien']) . "<br/>"; - } - - $s .= "</div>"; - - // - // Ajouter les infos techniques - // - $infotech = array(); - - $version = _T('version') .' '. $info['version']; - if ($svn_revision = version_svn_courante($dir_plugins.$plug_file)) - $version .= ($svn_revision<0 ? ' SVN':'').' ['.abs($svn_revision).']'; - - $infotech[] = $version; - $infotech[] = "<strong>$titre_etat</strong>"; - - // Version SVN - - // bouton de desinstallation - if (plugin_est_installe($plug_file)){ - $action = redirige_action_auteur('desinstaller_plugin',$plug_file,'admin_plugin'); - $infotech[] = "<a href='$action' - onclick='return confirm(\""._T('bouton_desinstaller') - ." ".basename($plug_file)." ?\\n"._T('info_desinstaller_plugin')."\")' - title=\""._T('info_desinstaller_plugin')."\">" - . http_img_pack('spip-pack-24.png','spip-pack','', - '') - ."</a>" - ; - } - - // source zip le cas echeant - $source = (lire_fichier($dir_plugins.$plug_file.'/install.log', $log) - AND preg_match(',^source:(.*)$,m', $log, $r)) - ? '<br />'._T('plugin_source').' '.trim($r[1]) - :''; - - $s .= "<div style='text-align:$spip_lang_right' class='spip_pack'>" - . join(' — ', $infotech) . - '<br />' . _T('repertoire_plugins') .' '. $plug_file - . $source - ."</div>"; - - - return $s; -} - -// http://doc.spip.org/@plugin_propre -function plugin_propre($texte) { - $mem = $GLOBALS['toujours_paragrapher']; - $GLOBALS['toujours_paragrapher'] = false; - $regexp = "|\[:([^>]*):\]|"; - if (preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER)) - foreach ($matches as $regs) - $texte = str_replace($regs[0], - _T('spip/ecrire/public:'.$regs[1]), $texte); - $texte = propre($texte); - $GLOBALS['toujours_paragrapher'] = $mem; - return $texte; -} ?> diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php index 2c6aab6ec39a36dbf760524e660c52e24150cf71..a8dd547f37527b5ff1f2b252bf4fd2d9a9ec9ff2 100644 --- a/ecrire/lang/ecrire_fr.php +++ b/ecrire/lang/ecrire_fr.php @@ -914,6 +914,7 @@ dans une couleur qui indique leur état :', 'plugins_actifs' => '@count@ plugins activés.', 'plugins_compte' => '@count@ plugins', 'plugins_disponibles' => '@count@ plugins disponibles.', +'plugins_recents' => 'Plugins récents.', 'plugins_erreur' => 'Erreur dans les plugins : @plugins@', 'plugins_liste' => 'Liste des plugins', 'plugins_vue_hierarchie' => 'Hiérarchie', diff --git a/ecrire/plugins/afficher_liste.php b/ecrire/plugins/afficher_liste.php index 68945a62104ea0c5cde4de0a45132af5e0acde7e..72d76f65ad89658c8c9cce6fb58ed2cc091a50f8 100644 --- a/ecrire/plugins/afficher_liste.php +++ b/ecrire/plugins/afficher_liste.php @@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/charsets'); // http://doc.spip.org/@affiche_liste_plugins -function plugins_afficher_liste_dist($liste_plugins, $liste_plugins_actifs){ +function plugins_afficher_liste_dist($url_page,$liste_plugins, $liste_plugins_actifs, $dir_plugins=_DIR_PLUGINS){ $get_infos = charger_fonction('get_infos','plugins'); $ligne_plug = charger_fonction('afficher_plugin','plugins'); $liste_plugins = array_flip($liste_plugins); @@ -40,8 +40,8 @@ function plugins_afficher_liste_dist($liste_plugins, $liste_plugins_actifs){ // le rep suivant $actif = @isset($fast_liste_plugins_actifs[$plug]); $block_actif = $block_actif | $actif; - $id = substr(md5($plug),0,16); - $block .= $ligne_plug($plug, $actif, "item")."\n"; + $expose = (urldecode(_request('plugin'))==$plug OR urldecode(_request('plugin'))==substr(_DIR_PLUGINS,strlen(_DIR_RACINE)) . $plug); + $block .= $ligne_plug($url_page, $plug, $actif, $expose, "item", $dir_plugins)."\n"; } $res .= $block_par_lettre ? affiche_block_initiale($initiale,$block,$block_actif): $block; return "<ul class='liste-items plugins'>" diff --git a/ecrire/plugins/afficher_plugin.php b/ecrire/plugins/afficher_plugin.php index ffd42d675271cc6782a9217fcc2c6d5bf4639f4f..cbe6e89f111d8896e560b65cff8473652526c86c 100644 --- a/ecrire/plugins/afficher_plugin.php +++ b/ecrire/plugins/afficher_plugin.php @@ -12,10 +12,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/charsets'); +include_spip('inc/texte'); // http://doc.spip.org/@ligne_plug -function plugins_afficher_plugin_dist($plug_file, $actif,$class_li="item"){ - global $spip_lang_right; +function plugins_afficher_plugin_dist($url_page, $plug_file, $actif, $expose=false, $class_li="item", $dir_plugins=_DIR_PLUGINS){ static $id_input=0; static $versions = array(); @@ -30,61 +30,149 @@ function plugins_afficher_plugin_dist($plug_file, $actif,$class_li="item"){ $id = $info['prefix'] . $versions[$info['prefix']]; $class = $class_li; - $class .= $actif?"on":""; - if (isset($info['erreur'])) + $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){ + $name = 's' . substr(md5("statusplug_$plug_file"),0,16); + $id_input++; + $check = "\n<input type='checkbox' name='$name' id='label_$id_input' value='O'"; + $check .= $actif?" checked='checked'":""; + $check .= " class='checkbox' />"; + $check .= "\n<label for='label_$id_input'>"._T('activer_plugin')."</label>"; + $s .= "<div class='check'>$check</div>"; + } + + // Cartouche Resume + $s .= "<div class='resume'>"; + + $desc = plugin_propre($info['description']); + $url_stat = parametre_url($url_page, "plugin",$plug_file); + + $s .= "<h3 class='nom'><a href='$url_stat' rel='info'>".typo($info['nom'])."</a></h3>"; + $s .= " <span class='version'>".$info['version']."</span>"; + $s .= " <span class='etat'> - ".plugin_etat_en_clair($info['etat'])."</span>"; + $s .= "<div class='short'>".couper($desc,60)."</div>"; + if (isset($info['icon'])) { + include_spip("inc/filtres_images_mini"); + $s.= "<div class='icon'>".image_reduire($dir_plugins.$plug_file.'/'.trim($info['icon']), 32)."</div>"; + } + $s .= "</div>"; + // plug pour CFG if ($actif AND defined('_DIR_PLUGIN_CFG')) { if (include_spip('inc/cfg') // test CFG version >= 1.0.5 - AND $i = icone_lien_cfg(_DIR_PLUGINS.$plug_file)) + AND $i = icone_lien_cfg($dir_plugins.$plug_file)) $s .= '<div class="cfg_link">'.$i.'</div>'; } - // nom - - $s .= "<div class='nomplugin ".($actif?'nomplugin_on':'')."'>"; - if (isset($info['erreur'])){ - $s .= "<div class='plugin_erreur'>"; - $erreur = true; + if ($erreur){ + $s .= "<div class='erreur'>"; foreach($info['erreur'] as $err) - $s .= "/!\ $err <br/>"; + $s .= "$err <br/>"; $s .= "</div>"; } - $etat = 'dev'; - if (isset($info['etat'])) - $etat = $info['etat']; - $nom = typo($info['nom']); - - $id = "aide_$id"; - // si $actif vaut -1, c'est actif, et ce n'est pas desactivable (extension) - if (!$erreur - AND $actif>=0 - ){ - $name = 's' . substr(md5("statusplug_$plug_file"),0,16); - $s .= "\n<input type='checkbox' name='$name' id='label_$id_input' value='O'"; - $s .= $actif?" checked='checked'":""; - $s .= " class='check' />"; - $s .= "\n<label for='label_$id_input'>"._T('activer_plugin')."</label>"; + // bouton de desinstallation + if (plugin_est_installe($plug_file)){ + $action = redirige_action_auteur('desinstaller_plugin',$plug_file,'admin_plugin'); + $s .= "<div class='actions'>[". + "<a href='$action' + onclick='return confirm(\""._T('bouton_desinstaller') + ." ".basename($plug_file)." ?\\n"._T('info_desinstaller_plugin')."\")'>" + ._T('bouton_desinstaller') + ."</a>]</div>" + ; } - $id_input++; - - $url_stat = generer_url_ecrire(_request('exec'),"plugin=".urlencode($plug_file)); - $s .= "<a href='$url_stat' rel='info'>$nom</a>"; // afficher les details d'un plug en secours ; la div sert pour l'ajax - $s .= "<div class='info'>"; - if (urldecode(_request('plugin'))==$plug_file OR urldecode(_request('plugin'))==substr(_DIR_PLUGINS,strlen(_DIR_RACINE)) . $plug_file) + $s .= "<div class='details'>"; + if ($expose) $s .= affiche_bloc_plugin($plug_file, $info); $s .= "</div>"; - $s .= "</div>"; $s .= "</li>"; return $s; } +function plugin_etat_en_clair($etat){ + if (!in_array($etat,array('stable','test','experimental'))) + $etat = 'developpement'; + return _T('plugin_etat_'.$etat); +} + +// http://doc.spip.org/@plugin_propre +function plugin_propre($texte) { + $mem = $GLOBALS['toujours_paragrapher']; + $GLOBALS['toujours_paragrapher'] = false; + $regexp = "|\[:([^>]*):\]|"; + if (preg_match_all($regexp, $texte, $matches, PREG_SET_ORDER)) + foreach ($matches as $regs) + $texte = str_replace($regs[0], + _T('spip/ecrire/public:'.$regs[1]), $texte); + $texte = propre($texte); + $GLOBALS['toujours_paragrapher'] = $mem; + return $texte; +} + + + +// http://doc.spip.org/@affiche_bloc_plugin +function affiche_bloc_plugin($plug_file, $info, $dir_plugins=null) { + if (!$dir_plugins) + $dir_plugins = _DIR_PLUGINS; + + $s = ""; + // TODO: le traiter_multi ici n'est pas beau + // cf. description du plugin/_stable_/ortho/plugin.xml + if (isset($info['description'])) + $s .= "<div class='desc'>".plugin_propre($info['description']) . "</div>"; + + if (isset($info['auteur']) AND trim($info['auteur'])) + $s .= "<div class='auteurs'>" . _T('public:par_auteur') .' '. plugin_propre($info['auteur']) . "</div>"; + if (isset($info['licence'])) + $s .= "<div class='licence'>" . _T('intitule_licence') .' '. plugin_propre($info['licence']) . "</div>"; + + if (trim($info['lien'])) { + $lien = $info['lien']; + if (preg_match(',^https?://,iS', $lien)) + $lien = "[->$lien]"; + $s .= "<div class='site'>" . _T('en_savoir_plus') .' '. plugin_propre($lien) . "</div>"; + } + + // + // Ajouter les infos techniques + // + $infotech = array(); + + $version = _T('version') .' '. $info['version']; + // Version SVN + if ($svn_revision = version_svn_courante($dir_plugins.$plug_file)) + $version .= ($svn_revision<0 ? ' SVN':'').' ['.abs($svn_revision).']'; + $infotech[] = $version; + + // source zip le cas echeant + $source = (lire_fichier($dir_plugins.$plug_file.'/install.log', $log) + AND preg_match(',^source:(.*)$,m', $log, $r)) + ? '<br />'._T('plugin_source').' '.trim($r[1]) + :''; + + $s .= "<div class='tech'>" + . join(' — ', $infotech) . + '<br />' . _T('repertoire_plugins') .' '. $plug_file + . $source + ."</div>"; + + + return $s; +} ?> \ No newline at end of file diff --git a/ecrire/plugins/afficher_repertoires.php b/ecrire/plugins/afficher_repertoires.php index d4342b9ab6adb6a4912a1315d7a9d1c7cf053e7d..95cb96675c34609adab8260d26c47e98fe8a03e4 100644 --- a/ecrire/plugins/afficher_repertoires.php +++ b/ecrire/plugins/afficher_repertoires.php @@ -13,7 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // http://doc.spip.org/@affiche_arbre_plugins -function plugins_afficher_repertoires_dist($liste_plugins, $liste_plugins_actifs){ +function plugins_afficher_repertoires_dist($url_page, $liste_plugins, $liste_plugins_actifs){ $ligne_plug = charger_fonction('afficher_plugin','plugins'); $racine = basename(_DIR_PLUGINS); $init_dir = $current_dir = ""; @@ -54,7 +54,7 @@ function plugins_afficher_repertoires_dist($liste_plugins, $liste_plugins_actifs $plug = $liste_plugins[$key]; $actif = @isset($fast_liste_plugins_actifs[$plug]); $id = substr(md5($plug),0,16); - $res .= $ligne_plug(str_replace(_DIR_PLUGINS, '', _DIR_RACINE.$plug), $actif, 'menu-entree') . "\n"; + $res .= $ligne_plug($url_page, str_replace(_DIR_PLUGINS, '', _DIR_RACINE.$plug), $actif, 'menu-entree') . "\n"; unset($liste_plugins[$key]); } } diff --git a/prive/style_prive.html b/prive/style_prive.html index 81c3dffe777ed58e72152b051156046d3a00b2af..4522bcd0253b93f4ade2bc34d117b2834cde4a71 100644 --- a/prive/style_prive.html +++ b/prive/style_prive.html @@ -479,23 +479,32 @@ td.message, a.message { background: url([(#CHEMIN_IMAGE{m_envoi[(#GET{rtl})].gif #sauvegarder,#restaurer,#reparer { margin: 0 0 2em 0; } /* exec=admin_plugin */ -.liste_plugins ul li { list-style: none; border-bottom: 1px solid #fff; } -.liste_plugins ul { padding-#GET{left}: 1em; margin:.5em 0 .5em 0; } -.liste_plugins ul ul { border-#GET{left}:5px solid #dfdfdf; } -.liste_plugins ul li li { margin: 0; padding:0 0 0.25em 0; } -.liste_plugins ul li div.nomplugin { border-bottom: 1px solid #afafaf; font-weight: normal; padding:.3em; } -.liste_plugins ul li li div.nomplugin {padding:.1em .3em .2em; } -.liste_plugins ul li li div.nomplugin>a { outline:0; outline:0 !important; -moz-outline:0 !important; color: #000; } -.liste_plugins ul li li div.nomplugin_on>a { font-weight: bold; } - -.liste_plugins div.droite label { padding:.3em; background: #efefef; border:1px dotted #95989f !important; border: 1px solid #95989f; cursor:pointer; margin:.2em; display: block; width:10.1em; } -.liste_plugins input { cursor:pointer; } -.liste_plugins div.detailplugin { border-top: 1px solid #b5becf; padding:.6em; background: #f5f5f5; } -.liste_plugins div.detailplugin hr { border-top: 1px solid #67707f; border-bottom:0; border-#GET{left}:0; border-#GET{right}:0; } -.liste_plugins div.nomplugin label { display: none; } -.liste_plugins .nomplugin_on { background: #GET{claire}; } -.liste_plugins .plugin_erreur { background:red; } -.desc_plug { height:1.9em;overflow:hidden;border-bottom:1px dotted grey; } +.liste-plugins.formulaire_spip {border:0;background:none;padding:0;} +.liste-plugins .liens {padding:5px;background:#ddd;} +.liste-plugins .liste-items .item {position:relative;padding-left:70px;} +.liste-plugins .liste-items .item.actif {background:#eee;} +.liste-plugins .liste-items .item.actif:hover {background:#e8e8e8;} +.liste-plugins .liste-items .item.erreur {background:#fdd;} +.liste-plugins .liste-items .item.erreur .erreur {color:red;font-weight:bold;} +.liste-plugins .liste-items .item .short {color:#666;font-size:0.95em;} +.liste-plugins .liste-items .item.on .short {display:none;} + +.liste-plugins .liste-items .item .check {float:#GET{left};margin-#GET{left}:-70px;position:relative;display:inline;} +.liste-plugins .liste-items .item .check input {margin:0;} +.liste-plugins .liste-items .item .check label {display:none;} + +.liste-plugins .liste-items .item .nom {font-size:1.2em;display:inline;} +.liste-plugins .liste-items .item .nom a {color:#444;} +.liste-plugins .liste-items .item.actif .nom a {color:#GET{foncee};} + +.liste-plugins .liste-items .item .icon {position:absolute;top:3px;left:28px;} +.liste-plugins .liste-items .item .actions {float:#GET{right};visibility:hidden;} +.liste-plugins .liste-items .item:hover .actions {visibility:visible;} + +.liste-plugins .liste-items .item .details .desc {padding:5px 0 2px;} +.liste-plugins .liste-items .item .details .auteurs {font-style:italic;padding-bottom:5px;} +.liste-plugins .liste-items .item .details .tech {font-size:0.9em;float:#GET{right};text-align:#GET{right};} + #liste_plug { border: solid 1px #GET{foncee}; padding:3px; background-color:white; height: 200px; overflow:auto;overflow-y: auto; } /* agenda */ diff --git a/prive/style_prive_plugins.html b/prive/style_prive_plugins.html index 7288218e3cb1d64ed21b606c96a38130215de560..3615e325527194b1b1c293edfe19b75c3ba669fa 100644 --- a/prive/style_prive_plugins.html +++ b/prive/style_prive_plugins.html @@ -25,17 +25,17 @@ h2.titrem { display: block; padding-top: 6px; padding-bottom: 4px; background-re /* listes */ -.liste_items {list-style:none;margin:1em 0;padding:0;border-top:1px solid #ddd;clear:both;} -.liste_items li.item {border-bottom:1px solid #ddd;padding:0.4em 0; font-size: 11px;overflow:hidden;clear:both;} -.liste_items li.item.odd {background:#eee;} -.liste_items li.item:hover {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];} -.liste_items li.court:hover {background-color:#eee;} -.liste_items li.item.on {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];font-weight:normal;} -.liste_items li.item.on:hover {background-color:[#(#GET{claire}|couleur_eclaircir)];} -.liste_items li.item h3 {margin:0;} +.liste_items,.liste-items {list-style:none;margin:1em 0;padding:0;border-top:1px solid #ddd;clear:both;} +.liste_items .item,.liste-items .item {border-bottom:1px solid #ddd;padding:0.4em 0; font-size: 11px;overflow:hidden;clear:both;} +.liste_items .item.odd,.liste-items .item.odd {background:#eee;} +.liste_items .item:hover,.liste-items .item:hover {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];} +.liste_items .court:hover,.liste-items .court:hover {background-color:#eee;} +.liste_items .item.on,.liste-items .item.on {background-color:[#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)];font-weight:normal;} +.liste_items .item.on:hover,.liste-items .item.on:hover {background-color:[#(#GET{claire}|couleur_eclaircir)];} +.liste_items .item h3,.liste-items .item h3 {margin:0;} -.liste_items li.item .actions {float:none;margin:0;clear:both;text-align:#GET{right};} +.liste_items .item .actions,.liste-items .item .actions {float:none;margin:0;clear:both;text-align:#GET{right};} .tri, .pagination {background:#eee;border-top:1px solid #ddd;border-bottom:1px solid #ddd; margin: 0;padding:2px 0; font-size: 11px; font-weight: bold; text-align: #GET{right}; white-space: nowrap;margin-top:1em; } .tri {text-align:#GET{left};}