SPIP 3.0.4 et 3.0.5 + Autorité : modification impossible d'un article par le rédacteur (liste de rubrique vide ???) #2948

Closed
opened 10 years ago by thiebaut.jourdain · 9 comments

J'ai paramétré le plugin Autorité pour que les rédacteurs d'Arboristes.fr puissent modifier leurs articles après publication.

Or, si les rédacteurs peuvent en effet modifier leurs articles dans l'espace privé, il leur est impossible d'enregistrer les modifications, car le menu déroulant "à l'intérieur de la rubrique" est vide !

Je ne suis apparemment pas le seul à avoir constaté cette anomalie : http://contrib.spip.net/Le-plugin-Autorite#forum462691

Si c'est un problème de Plugin, pourquoi poster un ticket ici ?

Selon l'auteur (http://contrib.spip.net/Le-plugin-Autorite#forum465755) cela ne viendrait pas du plugin, mais de SPIP.
Suivant ses conseils j'ouvre donc un ticket ici.

En attendant d'en savoir plus, la parade que j'ai trouvée est d'utiliser le plugin Crayons : il est en effet possible pour les rédacteurs de modifier et d'enregistrer leurs articles dans l'espace public à l'aide de l'outil crayon.

J'ai paramétré le plugin Autorité pour que les rédacteurs d'Arboristes.fr puissent modifier leurs articles après publication. Or, si les rédacteurs peuvent en effet modifier leurs articles dans l'espace privé, il leur est impossible d'enregistrer les modifications, car le menu déroulant "à l'intérieur de la rubrique" est vide ! Je ne suis apparemment pas le seul à avoir constaté cette anomalie : http://contrib.spip.net/Le-plugin-Autorite#forum462691 Si c'est un problème de Plugin, pourquoi poster un ticket ici ? Selon l'auteur (http://contrib.spip.net/Le-plugin-Autorite#forum465755) cela ne viendrait pas du plugin, mais de SPIP. Suivant ses conseils j'ouvre donc un ticket ici. En attendant d'en savoir plus, la parade que j'ai trouvée est d'utiliser le plugin Crayons : il est en effet possible pour les rédacteurs de modifier et d'enregistrer leurs articles dans l'espace public à l'aide de l'outil crayon.
Owner

je confirme.
spip 3.0.5 svn
avec 'certains' plugins (autorité, diogene, ...) il est impossible à un rédacteur de créer (je parle même pas de modifier...) un article parce qu'il n'y a aucun select de choix de rubrique qui apparait.

Version cible mise à 3.0

je confirme. spip 3.0.5 svn avec 'certains' plugins (autorité, diogene, ...) il est impossible à un rédacteur de créer (je parle même pas de modifier...) un article parce qu'il n'y a aucun select de choix de rubrique qui apparait. **Version cible mise à 3.0**
Owner
There is no content yet.
Owner

Hop, je viens de tester sur SPIP 3.0.5 SVN [20230] (sans le plugin autorité) et en tant que rédacteur je peux bien créer un article (le select des rubriques n'est pas vide chez moi).

Hop, je viens de tester sur SPIP 3.0.5 SVN [20230] (sans le plugin autorité) et en tant que rédacteur je peux bien créer un article (le select des rubriques n'est pas vide chez moi).
Owner

Après recherche, lorsqu'on utilise le plugin autorité et qu'on active l'option "Auteur modifie article" le sélecteur de rubrique est vide à cause de cette autorisation :

http://core.spip.org/projects/spip/repository/entry/spip/ecrire/inc/chercher_rubrique.php#L99

On avance un peu...

Après recherche, lorsqu'on utilise le plugin autorité et qu'on active l'option "Auteur modifie article" le sélecteur de rubrique est vide à cause de cette autorisation : http://core.spip.org/projects/spip/repository/entry/spip/ecrire/inc/chercher_rubrique.php#L99 On avance un peu...
Owner

a priori, la salution ci-dessous m'a l'air fonctionnelle (testée en 3.0.7 avec autorité) :

// http://doc.spip.org/`sous_menu_rubriques
function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) {
  static $decalage_secteur;

  // Si on a demande l'exclusion ne pas descendre dans la rubrique courante
  if ($exclus > 0
  AND $root == $exclus) return '';

  // en fonction du niveau faire un affichage plus ou moins kikoo

  // selected ?
  $selected = ($root == $id_rubrique) ? ' selected="selected"' : '';

  // le style en fonction de la profondeur
  list($class, $style, $espace) = style_menu_rubriques($niv);

  $class .= " selec_rub";

  // si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques
  $disabled = "";
  if ($restreint AND !autoriser('publierdans','rubrique',$root))
    $disabled = " disabled='disabled'";

  // creer l'<option> pour la rubrique $root
  if (isset($data[$root])) {
    // pas de racine sauf pour les rubriques
    $r = "<option$selected value='$root' class='$class' style='$style'$disabled>$espace"
    .$data[$root]
    .'</option>'."\n";
  } else $r = '';

  // et le sous-menu pour ses enfants
  $sous = '';
  if (isset($enfants[$root]))
    foreach ($enfants[$root] as $sousrub)
      $sous .= sous_menu_rubriques($id_rubrique, $sousrub,
        $niv+1, $data, $enfants, $exclus, $restreint, $type);

  // et voila le travail
  return $r.$sous;
}
a priori, la salution ci-dessous m'a l'air fonctionnelle (testée en 3.0.7 avec autorité) : ``` // http://doc.spip.org/`sous_menu_rubriques function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) { static $decalage_secteur; // Si on a demande l'exclusion ne pas descendre dans la rubrique courante if ($exclus > 0 AND $root == $exclus) return ''; // en fonction du niveau faire un affichage plus ou moins kikoo // selected ? $selected = ($root == $id_rubrique) ? ' selected="selected"' : ''; // le style en fonction de la profondeur list($class, $style, $espace) = style_menu_rubriques($niv); $class .= " selec_rub"; // si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques $disabled = ""; if ($restreint AND !autoriser('publierdans','rubrique',$root)) $disabled = " disabled='disabled'"; // creer l'<option> pour la rubrique $root if (isset($data[$root])) { // pas de racine sauf pour les rubriques $r = "<option$selected value='$root' class='$class' style='$style'$disabled>$espace" .$data[$root] .'</option>'."\n"; } else $r = ''; // et le sous-menu pour ses enfants $sous = ''; if (isset($enfants[$root])) foreach ($enfants[$root] as $sousrub) $sous .= sous_menu_rubriques($id_rubrique, $sousrub, $niv+1, $data, $enfants, $exclus, $restreint, $type); // et voila le travail return $r.$sous; } ```
Owner

disabled sur <option> n'est pas complètement supporté par tous les navigateurs et c'est gênant car ça ouvre la porte a une modif interdite (http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/OptionDisabledSupport.html).
r20516 contourne le problème donc.
Statut changé à Fermé

`disabled` sur `<option>` n'est pas complètement supporté par tous les navigateurs et c'est gênant car ça ouvre la porte a une modif interdite (http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/OptionDisabledSupport.html). r20516 contourne le problème donc. **Statut changé à Fermé**
Owner

le patch de denisb marcherait pour #2907. Peut etre sécuriser le disabled en mettant un value vide pour être sur que la selection de cet item ne soit pas possible ?

le patch de denisb marcherait pour #2907. Peut etre sécuriser le disabled en mettant un value vide pour être sur que la selection de cet item ne soit pas possible ?

Bonjour, J'ouvre à nouveau le ticket pour le même problème sur un autre site avec SPIP 3.0.17 [21515] et le plugin Autorité 0.10.2 (stable). Ce dernier est bien configuré avec la case à cocher "Auteur modifie article"... pour que chaque rédacteur puisse modifier les articles publiés dont il est l’auteur.

-* Les rédacteurs peuvent modifier leur article sur l'espace public avec Crayons puis en cliquant sur enregistrer.
-* Dans l'espace privé, les droits sont refusés au moment de valider leur modifications.

C'est gênant car j'ai une page annuaire où les rédacteurs doivent pouvoir mettre à jour leurs coordonnées, l'adresse de leur site... etc...

Merci !

Bonjour, J'ouvre à nouveau le ticket pour le même problème sur un autre site avec SPIP 3.0.17 [21515] et le plugin Autorité 0.10.2 (stable). Ce dernier est bien configuré avec la case à cocher "Auteur modifie article"... pour que chaque rédacteur puisse modifier les articles publiés dont il est l’auteur. -* Les rédacteurs peuvent modifier leur article sur l'espace public avec Crayons puis en cliquant sur enregistrer. -* Dans l'espace privé, les droits sont refusés au moment de valider leur modifications. C'est gênant car j'ai une page annuaire où les rédacteurs doivent pouvoir mettre à jour leurs coordonnées, l'adresse de leur site... etc... Merci !

Dans le précédent message, la phrase "Les rédacteurs peuvent modifier leur article sur l'espace public avec Crayons puis en cliquant sur enregistrer." a été rayée par erreur.

Merci

Dans le précédent message, la phrase "Les rédacteurs peuvent modifier leur article sur l'espace public avec Crayons puis en cliquant sur enregistrer." a été rayée par erreur. Merci
Sign in to join this conversation.
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.