Boutons d’administration supplémentaires

Version plugin

Ce plugin ajoute, dans l’interface publique, des boutons d’administration supplémentaires permettant, par exemple, d’éditer directement le texte d’un article, d’une rubrique, d’accéder à l’interface privée, de créer un nouvel article, etc.

Depuis SPIP 2.0 le plugin MiniBando propose une fonctionnalité équivalente.

Ce plugin est développé sous SVN, dans SPIP-Zone. L’archive à télécharger est donc susceptible de recevoir des mises à jour mineures. Voir plus bas les changements.

Description

Ce plugin ajoute, dans l’interface publique, des boutons d’administration supplémentaires permettant, par exemple, d’éditer directement le texte d’un article, d’une rubrique, d’accéder à l’interface privée, de créer un nouvel article, etc. Les possibilités offertes dépendent du statut : les administrateurs seuls, par exemple, disposent d’un bouton pour créer une rubrique.

Un bouton (prenant la forme d’un plus ou d’un moins) permet de masquer/afficher les boutons de la barre d’édition et un autre (en forme de trombone) de garder cette barre au premier plan (ce bouton n’est pas activé pour Internet Explorer).

La technique employée (surcharge du fichier formulaire_admin.html) n’a rien d’original : elle est par exemple expliquée dans cette page. La seule originalité est qu’elle se présente ici sous la forme d’un plugin, qui ne nécessite donc pas de modification de fichiers ou d’ajout de squelettes et permet des mises à jour simplifiées. L’intitulé des boutons supplémentaire est localisé et s’affichera dans la langue choisie pour l’interface.

Noter que les rubriques, articles, brèves ou références à des sites externes créés par ce biais sont par défaut classés dans la rubrique depuis laquelle on a cliqué sur le bouton dans la partie publique du site.

Un fichier de configuration permet de choisir les boutons supplémentaires qu’on désire voir apparaître afin de masquer définitivement ceux qui ne semblent pas utiles. La configuration est globale et concerne tous les utilisateurs.

Ce plugin est distribué sous licence GNU/GPL

Installation

Comme pour les autres plugins, il suffit de télécharger l’archive ci-jointe, de la décompresser et d’installer le répertoire obtenu dans le répertoire /plugins de SPIP. L’activation du plugin se fait dans l’interface privée.

Version 2.4.1

Consulter la documentation officielle pour plus de détails.

Boutons ajoutés

Les boutons que le plugin ajoute sont les suivants (certains n’apparaissent que si le contexte s’y prête). Les intitulés en gras indiquent que le bouton n’est disponible qu’aux administrateurs et non à tous les rédacteurs ayant activé le cookie de correspondance.

-  Icône permettant de garder la barre de boutons au premier plan (

Icône indiquant que la barre de boutons est au premier plan

) ou non (

Icône indiquant que la barre de boutons n’est pas au premier plan

) ;
-  nom de l’utilisateur connecté et lien vers sa page ;
-  débogueur XML ;
-  écrire un nouvel article (dans la rubrique en cours) ;
-  créer une nouvelle rubrique (en tant que sous-rubrique de la rubrique en cours) ;
-  référencer un nouveau site (dans la rubrique en cours) ;
-  écrire une nouvelle brève (dans la rubrique en cours) ;
-  éditer le contenu de la rubrique, de l’article, de la brève en cours ;
-  modifier la rubrique, l’article, le mot-clef, le site référencé, l’auteur en cours ;
-  recalculer la page (

Icône de recalcul de pages
Tirée du jeu d’icônes Nuvola, sous licence LGPL

ou

Icône de recalcul de pages (recalcul nécessaire)

) ;
-  statistiques ;
-  accès à l’interface privée depuis n’importe quelle page ;
-  prévisualisation ;
-  débogage du squelette ;
-  déconnexion ;
-  masquer (

Icône servant à masquer la barre de boutons
Tirée du jeu d’icônes Nuvola, sous licence LGPL

) / afficher (

Icône servant à afficher la barre de boutons
Tirée du jeu d’icônes Nuvola, sous licence LGPL

) les boutons.

Certains de ces boutons sont déjà présents dans la version par défaut de SPIP.

Aperçu de la barre de boutons pendant la consultation d’un article
Aperçu de la barre de boutons pendant la consultation d’une rubrique
Aperçu de la barre de boutons masquée
Aperçu de la barre de boutons fixe, au premier plan

Mises à jour

À noter : le plugin étant maintenant développé sous SVN, dans SPIP-Zone, l’archive à télécharger peut avoir été modifiée sans que cette page n’indique les modifications. On pourra cependant les suivre sur cette autre page.

Version 1.2 : cette version du plugin n’affiche certains boutons qu’aux administrateurs et non à tous les rédacteurs afin d’éviter les messages d’erreur. De plus, le bouton « Recalculer cette page » est remplacé par une icône, pour gagner de la place.

Version 1.3 : le bouton « Prévisualisation », qui avait été maladroitement ôté de la version 1.2, est de nouveau présent. Le bouton « Éditer cette brève », qui avait été oublié, a été ajouté.

Version 1.4 : les boutons permettant de cacher ou montrer la barre sont maintenant compatibles avec Internet Explorer. Lorsqu’un utilisateur s’est déconnecté, les boutons n’apparaissent plus (jusqu’ici, ils restaient en place tant que le cookie d’aministration n’était pas détruit [1], ce qui les conduisait à ne mener qu’à la page d’authentification).

Version 2 : ajout d’un fichier de configuration permettant de masquer certains boutons. Ce fichier étant en PHP, il est possible d’utiliser des conditions pour l’affichage de tel ou tel bouton.

Version 2.1 : ajout d’un bouton permettant de garder la barre de bouton au premier plan tout en la fixant à la fenêtre (elle reste donc constamment en haut de la page). Ce bouton est désactivé sous Internet Explorer car la version 6 (encore utilisée) ne gère pas la valeur fixed de la propriété position de CSS.

Version 2.2 : compatibilité avec SPIP 1.9.2 et ajout d’une option de configuration permettant d’afficher les boutons verticalement à droite.

Version 2.3 : ajout d’une boîte de confirmation en cas de clic sur le bouton de déconnexion (pour éviter les fausses manœuvres, les boutons étant assez petits).

Version 2.4 : les boutons qui n’étaient pas localisés le sont maintenant. Le bouton « Recalculer » prend la forme

Icône de recalcul de pages (recalcul nécessaire)

quand le recalcul est nécessaire pour la page en cours.

Compatibilité

Ce plugin fonctionne sous SPIP 1.9.1, 1.9.2. et 2.0 (versions SVN, RC et Stable)

Notes

[1Par un clic sur « Se connecter sous un autre identifiant ».

Discussion

32 discussions

  • Génial. Merci.

    Répondre à ce message

  • 1
    Olivier BOUMATI

    Bonjour,

    Très joli travail.

    Ce plugin semble incompatible avec le plugin Habillages.

    Quelqu’un connait-il une solution a ce problème ?

    • Vincent Ramos

      Pouvez-vous être plus précis quant au problème rencontré ? En regardant (rapidement) le contenu d’habillage, je n’y ai vu aucune incompatibilité a priori.

    Répondre à ce message

  • 1

    Depuis la version 1.9.2 le fichier admin.html a été renommé administration.html

    Répondre à ce message

  • Je me joins aux remerciements... Plug in très pratique et gain de temps évident !

    Merci beaucoup !

    Répondre à ce message

  • 3

    tout est dans le titre.

    Je me suis rendu compte de ça hier. (nickel sous firefox 2)

    C’est seulement chez moi ou bien... ?

    • C’est corrigé.

      La peste soit de ce navigateur à la graisse d’ours qui exige constamment qu’on utilise son code.

      Avant que je ne publie une mise à jour, voici le code à utiliser dans le fichier fonctions_boutons_supp.js situé à la racine du répertoire plugins/boutons_admin_supp/ :


      // Fonctions pour la barre de boutons de boutons d'administration supplementaires.
      // Les fonctions createCookie() et readCookie()
      // ont ete recuperees depuis <http://www.quirksmode.org/js/cookies.html>
      // dans le respect des droits de reproduction declares sur
      // <http://www.quirksmode.org/about/copyright.html> (utilisation libre)
      function createCookie(name,value,days) {
      	if (days) {
      		var date = new Date();
      		date.setTime(date.getTime()+(days*24*60*60*1000));
      		var expires = "; expires="+date.toGMTString();
      	}
      	else var expires = "";
      	document.cookie = name+"="+value+expires+"; path=/";
      }
      
      function readCookie(name) {
      	var nameEQ = name + "=";
      	var ca = document.cookie.split(';');
      	for(var i=0;i < ca.length;i++) {
      		var c = ca[i];
      		while (c.charAt(0)==' ') c = c.substring(1,c.length);
      		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      	}
      	return null;
      }
      
      function masquer_boutons(valeur){
      	maBarre_boutons=document.getElementById("boutons_admin_supp");
      	monBouton_montrer=document.getElementById("bouton_montrer");
      
      	if(valeur=="hidden"){
      		if (document.all) { // Rustine pour IE6 -- la peste soit de ce navigateur
      		document.all.boutons_admin_supp.style.visibility="hidden";
      		document.all.bouton_montrer.style.visibility="visible";
      		}
      		else {
      		maBarre_boutons.style.visibility = "hidden";
      		monBouton_montrer.style.visibility = "visible";
      		}
      	createCookie("etat_des_boutons","hidden",7);
      	}
      	else if (valeur=="visible"){
      		if (document.all) { // Rustine pour IE6 -- la peste soit de ce navigateur
      		document.all.boutons_admin_supp.style.visibility="visible";
      		document.all.bouton_montrer.style.visibility="hidden";
      		}
      		else {
      		maBarre_boutons.style.visibility = "visible";
      		monBouton_montrer.style.visibility = "hidden";
      		}
      	createCookie("etat_des_boutons","visible",7);
      	}
      }
      var etat = readCookie("etat_des_boutons");
      masquer_boutons(etat);

    • La mise à jour est effectuée.

    • ok je met à jour la trad’ En. Belle réactivité en tout cas :)

    Répondre à ce message

  • 1

    « Editer » et « modifier » ont des attitudes confuses : Editer modifie et modifier édite...
    Peut-être faudrait-il inverser les termes ?

    • Le terme de « modifier » est déjà présent avec le sens qu’il a avec ce plugin dans la barre de boutons normale (mais il n’y a pas de lien « éditer »). De fait, il permet de modifier les auteurs, mots-clefs, le statut, etc., alors qu’« éditer » permet de toucher directement au contenu textuel.

      Je ne pense pas qu’il faille modifier cela pour plusieurs raisons :
      -  l’intitulé « modifier » est codé en dur dans SPIP. Dans le plugin, d’ailleurs, c’est une variable qui affichera la version voulue selon la langue (par exemple <:admin_modifier_article:>, remplacée par « Modifier cet article ») ;
      -  les liens ont la même sémantique : pour éditer un article, une rubrique, etc., on utilise un lien ?exec=xxx_edit&id_article=xxx (et non ?exec=xxx_modifier&id_article=xxx).

      Donc, je pense que ces termes (que je ne trouve pas ambigus) n’ont pas à être modifiés. Si cela vous gêne, vous pouvez facilement changer les intitulés dans le fichier plugins/boutons_admin_supp/formulaires/formulaire_admin.html. Les liens « éditer » n’étant pas codés en dur, leur intitulé n’est pas une variable remplacée selon la langue (au contraire des liens « modifier ») mais &Eacute;diter.

    Répondre à ce message

  • Ah, les beaux boutons bien utiles.
    Mais à nous gâter comme ça, on va finir par être blasés !
    Non, sans déc’, c’est vraiment une facilité étonnante pour l’admin.

    Merci beaucoup pour cette petite chose qui nous fait gagner tant de temps et de nerfs à la fois < :-)

    Répondre à ce message

  • 5

    Bizzarement, le plugin ne marche pas partout.
    Pas de soucis sur un site chez free, mais celà ne fontionne pas sur mes 2 sites internes sur serveur linux.
    Déjà, le plugin n’était pas visible dans l’espace privé, il fallu que je change les droits sur les fichiers du répertoire boutons_admin_supp.
    Une fois visible et donc, activé, je ne constate rien, pas de fonctionnement, la barre n’est pas visible dans l’espace public

    • Il est normal qu’il faille régler les droits après avoir installé à la main un plugin. Pour l’affichage, avez-vous vidé le cache et rafraîchi les pages ?

      Le plugin a été développé sous Gentoo/Apache2 et tourne en production sur Debian/Apache2, donc je ne pense pas que le problème vienne de là.

    • Merci pour votre réponse.
      Les autres plugins ne m’ont jamais posé de problème, je ne me suis jamais préoccupé de la gestion des droits.
      Oui, j’ai bien rafraichi les pages, et vidé le cache.
      Je suis même allé sur une autre machine : le plugin est bien marqué comme actif dans l’espace privé, mais rien ne s’affiche dans le site public, hormis les boutons classiques de spip. (mes serveurs sont en mandriva 2007).
       ???

    • Les autres plugins ne m’ont jamais posé de problème, je ne me suis jamais préoccupé de la gestion des droits.

      Je vois plusieurs explications à cela : les autres plugins que vous utilisez ont été développés sous un système d’exploitation qui n’utilise pas les droits *nix ou bien développés sous un système d’exploitation avec droits *nix mais les fichiers avaient des droits plus étendus que les miens. Dans ce cas, à moi de mieux régler les permissions des fichiers de l’archive que je donne à télécharger.

      Je vous conseille donc de vérifier que les fichiers du plugin, ainsi que ses répertoires (dont celui qui contient les fichiers du plugin) sont réglés avec les permissions indiquées ci-dessous. Utilisez le nom d’utilisateur et de groupe de votre serveur. Si vous ne les savez pas, tapez les commandes suivantes dans une console (désolé si vous savez tout cela : je ne connais pas votre niveau de compétence et tente de trouver une solution) :

      grep -w "^User\ .*" /etc/apache*/*

      Vous devriez trouver le couple User xxx, qui vous indique sous quel utilisateur tourne votre serveur web (si c’est Apache). Cherchez le groupe de la même façon :

      grep -w "^Group\ .*" /etc/apache*/*

      Si vous avez User httpd et Group www-data, réglez les droits ainsi (en considérant que votre répertoire web est /var/www/) :

      chown -R httpd:www-data /var/www/plugins
      chmod -R u+rwX,g+rX,o-rwX /var/www/plugins

      Si vous préférez que le serveur n’ait pas les droits d’écriture (ce qui n’est en rien gênant), réglez les permissions avec :

      chown -R root:www-data /var/www/plugins
      chmod -R u+rwX,g+rX,o-rwX /var/www/plugins

      Ainsi, seul root pourra éditer, le serveur ne fera qu’accéder.

      Si le problème ne vient pas de cela, je ne vois pas car les fonctions utilisées par ce plugin sont simplissimes et font appel au fonctionnement même de SPIP (surcharge d’un fichier existant par un autre de même nom placé dans une même arborescence dans les répertoires des plugins) et non à du PHP supplémentaire.

    • Merci Vincent !
      En fait, c’est vrai que je n’ai modifié que les droits sur les 4 fichiers (de mémoire) situé dans le répertoire direct du plugin, et je n’ai pas fait de même pour les sous répertoires.
      J’essaye celà lundi (avec les serveurs sous la main !) et vous tient au courant.
      Encore merci.

    • C’était celà !
      Donc, tout va bien maintenant !
      encore merci.

    Répondre à ce message

  • Superbe, merci. La possibilité de pouvoir ouvrir directement un article ou une rubrique pour modification est le plugin que j’attendais.

    Répondre à ce message

  • Formidable, vraiment merci pour cet outils devenu désormais indispensable pour des mises à jour massives ! :)
    Continuez, messieurs les développeurs, de nous offrir des outils aussi performants et surtout nous facilitant autant la tâche.

    Meilleurs voeux à tous les spipiens et spipiennes

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom