DEV ZONE
pixelvide
Identifiant: Mot de passe:
pixelvide
 
Accueil / contributeurs print  
pixelvide
pixelvide
Accueil
    A passer en release
    Download
    ZwookMachine
    Forums
    Répartition des tâches
    votes
    Chat
    page_modif
    testolpat
    PhilBugs
    Test Claudiux
    Rédacteurs
    Script attestation
    Contributeurs
    tx2
    test roger
    Contributions
    archives
    test4debug
    Test Wiki
    files
    Tests myzwook.1et0.org
    test rage
    BUGV1.0.6
    BUGRC10
    BUGV1.0.4
    BUGV1.0.5
    BUGV1.0.2
    BUGV1.0.3
    BUGV1.0.0
    BUGV1.0.1
    BUGRC9
    BUGRC3
    BUGRC5
    BUGRC4
    BUGRC7
    BUGRC8
    BUGV2product
    DEVV1.0.7
    BUGS 1.3.0
    recup
Espace Membres
personne dans le chat.

Identifiant :
Mot de passe :

S 'inscrire
Mot de passe oublié ?


Liens utiles
--> Zwook.com
--> Zwook.net
--> Zwook.org
--> Zwookedu.net
--> Zwookedu.ch
--> Zwook.ecolevs.ch
--> Zwookedu.org
--> 1et0.org
--> Zope
--> AFPY
--> P3b.org
--> Planet Zope
--> Myzope.org
--> Zope Labs

pixelvide

Contributeurs

Le concept de Contributeur

L'Éditeur d'une page en devient en quelque sorte le Rédacteur-en-Chef. Il peut décider de confier la rédaction de la page à des Contributeurs (groupes ou utilisateurs).

Ces Contributeurs peuvent créer des éléments, à partir de modules préalablement adaptés.

L'Éditeur accorde ou non le droit de publication à un élément. Tant que le droit de publication n'est pas accordé, seuls le Contributeur et l'Éditeur peuvent voir l'élément en question affiché dans la page, en fond grisé (avec une interface de prise de décision pour l'Éditeur, une interface de signalisation d'achèvement de travail pour le Contributeur).

 Utilisation

L'Éditeur de la page, dans l'interface de gestion des droits de celle-ci, désigne les groupes et les utilisateurs qui en seront Contributeurs.
Par exemple, pour cette page, nommée "Contributeurs" :

Clic sur DROITS :


Clic sur le nom de la page :


Choix des utilisateurs/groupes de visiteurs/contributeurs/éditeurs :


Claudiux est donc éditeur, totoche est contributeur. Les membres du groupe Professeurs sont éditeurs, ceux du groupe CLASSE1 sont contributeurs ; ceci est résumé dans la carte des droits :


Lorsque totoche arrive sur la page Contributeurs, une icone lui signale qu'il peut y contribuer en ajoutant du contenu :


En cliquant sur cette icone, totoche accède à une interface de  "Rédaction de contenu", qui est un modèle simplifié de l'interface d'édition. Il y crée un élément de type text (Texte brut / HTML) :

Totoche n'a accès qu'aux éléments qu'il a lui-même créés. Il peut aussi, toutefois, modifier l'espacement (saut de ligne, etc.) à la suite de l'élément précédent, même si celui-ci ne lui appartient pas.

Si totoche visite la page Contributeurs, voici ce qu'il voit :

Sa proposition est en fond grisé. Il est le seul, avec le Rédacteur-en-Chef (l'éditeur de la page), à la voir. Elle est invisible pour les autres visiteurs. Une interface lui permet de signaler aux Rédacteur-en-Chef de la page si sa contribution est achevée ou non.

Le Rédacteur-en-Chef claudiux visite la page, voici ce qu'il voit :

La proposition de totoche est accompagnée d'une interface de prise de décision. Un message automatique sera envoyé à totoche pour l'avertir de cette décision.
Remarque : Si le Rédacteur-en-Chef désire voir la page sans les propositions des rédacteurs (comme la voient les visiteurs), un lien en bas de page le lui permet.

Lorsque totoche déclare achevée sa contribution, tous les éditeurs de la page en sont avertis par l'intermédiaire du module moniteur de contribution qui trouvera naturellement sa place dans le skin. Le message contributions en attente s'affiche pour l'éditeur (Claudiux ou un membre du groupe Professeurs) dès qu'il arrive sur le site :

Un clic sur ce message renvoit l'éditeur sur une liste de liens vers les pages contenant des contributions en attente :


Et lorsque l'éditeur visite la page, voici ce qu'il voit :


Dans l'interface d'édition du Back-Office, l'éditeur voit ceci (en supposant qu'il n'ait pas encore pris de décision) :

Il sait que l'élément text_0 a été proposé par totoche, et en passant la souris dessus, il fait afficher la date de proposition et voit que totoche considère son texte achevé.

Après avoir accepté la proposition, l'éditeur la voit ainsi, sur la page Contributeurs :

Et dans le Back-Office, la date d'édition apparaît :


Totoche a reçu le message automatique :


Et lorsque totoche revient sur la page Contributeurs, son texte est bien visible (comme par tout autre visiteur), mais il n'a plus le droit de le modifier...

...comme le lui confirme son interface de rédaction (absence de case à cocher en face de text_0) :


L'éditeur peut bien sûr éditer l'élément (dans le Back-Office d'édition), pour en changer le Contributeur-propriétaire et l'autorisation de publication :

Pour que le contributeur puisse modifier son texte, l'éditeur doit supprimer l'autorisation de publication.

Comment adapter un module pour qu'il soit utilisable par les Contributeurs

Vous pouvez vous référer aux modules text et image.

Property access_redac

Ajouter au module la property access_redac, de type string (on peut y mettre "utilisable par un redacteur", mais seule l'existence de la property est importante).

script zwo_view_html

En début de script, remplacer :
if mem['droit_vue_dossier']<>1:
  return 'Vous n\'avez pas les droits pour cette action !'
par
dr_vue = context.zwo_lib.droit_vue(mem,instance)
if dr_vue == 0:
  return ''

En fin de script, remplacer l'éventuel:
return printed
par
message = printed
supprimer :
return message
et ajouter:
if dr_vue!=1:
  return context.zwo_lib.view_content_submited_by_redac(mem, instance,message, dr_vue,container['icone.png'].absolute_url())
else:
  return message
Si le script fait afficher le contenu d'un document.src(), il faut lui donner le proxy Manager.

script zwo_new_html

En début de script:
if mem['droit_edit_dossier']<>1 and mem['droit_redac']!=1:
  return "Vous n'avez pas les droits pour cette action !"

script new_ok

En début de script, après la ligne d'affectation de mem :
if mem['droit_edit_dossier']<>1 and mem['droit_redac']!=1:
  return "Vous n'avez pas les droits pour cette action !"
En milieu de script, après la ligne :
obj.manage_addProperty('element',modname,'string')
ajouter :
# Ajouté pour rédacteur :
if mem['droit_redac']==1:
  obj.manage_addProperty('redacteur',mem['user_id'],'string')
  obj.manage_addProperty('imprimatur',"0",'string')
  obj.manage_addProperty('redac_time',DateTime(),'date')
Donner à ce script le proxy Manager.
À partir de maintenant, un Rédacteur peut créer un élément sur sa page.

script zwo_config_html

En début de script :
if mem['droit_edit_dossier']<>1 and not context.zwo_lib.droit_redac(mem,instance):
  return "Vous n'avez pas les droits pour cette action !"
Et vers la fin, juste avant la "fin du formulaire":
# Rédacteurs:
if mem['droit_edit_dossier']==1:
  redacteur=''
  if instance.hasProperty('redacteur'):
    redacteur=instance.redacteur
  c_ok='';c_no=' checked="checked"'
  if instance.hasProperty('imprimatur') and int(instance.imprimatur)==1:
    c_ok=' checked="checked"';c_no=''
  message.extend(['''Rédacteur : <input type="text" name="redacteur:string" value="%s"/> (un seul identifiant) <br/>
  Publication :<br/><input type="radio" name="imprimatur:string" value="1"%s/>oui, élément visible par les visiteurs et inéditable par son rédacteur.<br/><input type="radio" name="imprimatur:string" value="0"%s/>non, élément visible et éditable uniquement par son rédacteur.<hr/>'''% (redacteur,c_ok,c_no)])
en remplaçant éventuellement "message.extend" par "print " et en supprimant "([" et "])", si le script s'achève par "return printed".

script config_ok

Dans les parameters du script, ajouter à la fin : ", redacteur='', imprimatur='0'".
En début de script, il y a en général les lignes servant à déterminer si l'on est sur une page ou un skin :

if type_rep=="skin":
  skin=context.zwo_info.skins[nom_rep]
  obj=skin[nom_ins]
else:
  dossier=mem['rep_obj']
  obj=dossier[nom_ins]
Il faut les déplacer juste après la ligne d'affectation de mem (la 1ère ligne), de façon à ce que obj soit défini.
Et juste après ces lignes, placer :
if mem['droit_edit_dossier']<>1 and not context.zwo_lib.droit_redac(mem,obj):
  return 'Vous n\'avez pas les droits pour cette action !'
En fin de script, avant la redirection, insérer :
# Rédacteurs:
if mem['droit_redac']==1:
  if not obj.hasProperty('redacteur'):
    obj.manage_addProperty('redacteur', mem['user_id'], 'string')
  if not obj.hasProperty('imprimatur'):
    obj.manage_addProperty('imprimatur', "0", 'string')
  if obj.hasProperty('redac_time'):

    obj.manage_changeProperties(redac_time=DateTime())
  else:
    obj.manage_addProperty('redac_time',DateTime(),'date')
elif mem['droit_edit_dossier']==1:
  context.zwo_lib.check_content_submited_by_redac(obj.getId(), obj.absolute_url(), 'chown', redacteur, imprimatur)

Les lignes en italique ci-dessus ne sont nécessaires que si l'élément est recréé durant le script(ce qui est le cas, par ex., pour un élément image, dont on change l'image). Elles recréent les properties redacteur et imprimatur. Vérifier aussi, si un newobj a été créé, que l'instruction :
obj=newobj
soit présente à la fin de la création du newobj. cf. module image.
Donner à ce script le proxy Manager.

autres scripts éventuels

Si d'autres scripts entrent en jeu (rapidedit_html, etc.), il faut aussi les modifier pour vérifier les droits et changements de properties. Inspirez-vous des modules text, image, album_photo, text_fck.

pixelvide
Dernières Actus

Pages récentes

RSS - News
pixelvide
Livesearch
pixelvide
Forums
 RSS - Forums   DéveloppementRV
Module Barre de menus déroulants81003
Zwook v1.4.071109
ZwookEdu aux Rencontres de l'Orme 20112922
text_fck un peu plus wysiwyg0729
Module de news6993
Réunion Zwook : tel ou physique - je paie ...211341
GeoGebra2700
Ubuntu Lucid vs Debian Lenny2857
module file3876
Entrée d'une liste d'utilisateurs2747
Pages interdites0946
FCK6791
[résolu] Erreur alt lors des upgrades171675
Module navigation71014
Module What's new3733
Release 1.3.0271404
pixelvide
  • L
  • Ma
  • Me
  • J
  • V
  • S
  • D
  • 28
  • 29
  • 30
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 01


pixelvide
pixelvide
pixelvide
    Zwook pour l'Éducation, ZEServer
pixelvide