Le projet pour lequel j’ai travaillé cette procédure est un dictionnaire de traduction. il y a donc la procédure pour la proposition publique d’articles et une partie traduction publique d’articles que je vous mets également.
L’ensemble est une synthèse d’informations de la liste et de tests personnels.
Par rapport à certaines propositions lues, on obtient bien dans l’espace public un formulaire d’ajout d’articles différent de celui utilisé dans l’administration (ecrire)
Environnement :
Un spip 209
Une organisation multilingue par secteur
Des internautes qui s’enregistrent sur le site (via l’inscription de rédacteurs)
EDIT : j’utilise ce travail ici : http://www.lecinedico.com. Merci de ne pas vous en servir pour tester via des faux mots
1/ Poser le cadre + la reconnaissance de l’auteur
Créer un squelette auteur_propose_art.html
On peut copier le squelette auteur.html pour modèle
Il appelle le formulaire et gère deux cas : proposer un article ou proposer une traduction
La boucle supérieure
<BOUCLE_principale(AUTEURS) {id_auteur=#SESSION{id_auteur}}{tout}>
...
</BOUCLE_principale>
L’internaute enregistré et loggué (via les formulaires standards de spip) est amené sur cette page via un lien, dans n’importe quel squelette :
<a href="#URL_PAGE{auteur_propose_art,id_auteur=#SESSION{id_auteur}}">proposer un article</a>
Dans une boucle article, le lien proposer une traduction :
<a href="[(#URL_PAGE{auteur_propose_art,id_auteur=#SESSION{id_auteur}}|parametre_url{lier_trad, #ID_ARTICLE})]">proposer une traduction</a>
2/ le formulaire proprement dit et sa gestion
Dans le squelette auteur_propose_art.html
[(#ENV{lier_trad}|non) Proposer un article ]
<BOUCLE_a_traduire(ARTICLES){id_article=#ENV{lier_trad, 0}}{statut IN publie, prop}>
[ proposer la traduction de (#TITRE)]
</BOUCLE_a_traduire>
</B_a_traduire>
#FORMULAIRE_PERSO_AJOUTER_ART{oui,"1",#SELF,#ENV{lier_trad},"",""}
La gestion du formulaire
Dans le dossier squelettes/formulaires
copier les fichiers editer_article.html/editer_article.php de /prive/formulaires
les renommer en perso_ajouter_art.html et perso_ajouter_art.php
Dans perso_ajouter_art.php :
- modifier les occurences « editer_article » en « perso_ajouter_art »
- remplacer le contenu de la première fonction (dont le nom vient de changer) « formulaires_perso_ajouter_art_charger_dist » par :
_
$contexte['_hidden'] = str_replace('editer_article', 'perso_ajouter_art', $contexte['_hidden']);
// preciser que le formulaire doit etre securise auteur/action
$contexte['_action'] = array('perso_ajouter_art',$id_article);
return $contexte;
// unset($valeurs['id_rubrique']);
return $valeurs;
Dans perso_ajouter_art.html :
Ajouter :
<input type='hidden' name='statut' value='prop' />
[<input type='hidden' name='lier_trad' value='(#ENV{lier_trad})' />]
EDIT : la langue de l’article est automatiquement récupérée de la rubrique dans une configuration multilingue, avec une langue par rubrique à la racine, et en admin le réglage « Activer le menu de langue sur les articles » sur non
NB : personnellement il me reste deux problèmes :
la liste des rubriques garde sa numérotation (pas de supprimer_numero)
la configuration automatique des champs du formulaire n’est pas prise en compte (?), mais on peut en effacer directement dans le perso_ajouter_art.html
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |