On continue encore à patauger entre corrections, améliorations et régressions.

master
eric@smellup.net 10 years ago
parent e595a69060
commit 881defff9f

@ -40,8 +40,8 @@ function barre_outils_relecture(){
u = parametre_url('?exec=commentaire_edit', 'new', 'oui');
u = parametre_url(u, 'id_relecture', p['id_relecture']);
u = parametre_url(u, 'element', p['element']);
u = parametre_url(u, 'index_debut', d);
u = parametre_url(u, 'index_fin', f);
u = parametre_url(u, 'repere_debut', d);
u = parametre_url(u, 'repere_fin', f);
u = parametre_url(u, 'var_zajax', 'contenu');
// Appel de la modalbox pour saisir le commentaire

@ -4,12 +4,18 @@
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
[(#REM) declarer les hidden qui declencheront le service du formulaire
parametre : url d'action ]
[(#REM) declarer les hidden qui declencheront le service du formulaire parametre : url d'action ]
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
<li class="editer editer_parent[ (#ENV**{erreurs}|table_valeur{description}|oui) erreur]">
<label><:relecture:label_commentaire_apropos:></label>
<ul class="commentaire_apropos">
<li>[(#ENV{_info_element})]</li>
<li>[(#ENV{_info_selection})]</li>
</ul>
</li>
#SET{ecrire_texte, ''}
[(#AUTORISER{modifier, commentaire, #ENV{id_commentaire}, '', #ARRAY{champ,texte}}|oui)
[(#ENV{id_commentaire, oui}|=={oui}|ou{#AUTORISER{modifier, commentaire, #ENV{id_commentaire}, '', #ARRAY{champ,texte}}}|oui)
#SET{ecrire_texte, oui}
]
#SET{emetteur, #INFO_NOM{auteur, #ENV{id_emetteur}}}

@ -11,19 +11,33 @@ function formulaires_editer_commentaire_charger_dist($id_commentaire='oui', $red
// Ouverture d'un commentaire
if (($id_commentaire == 'oui')
AND ($id_relecture = intval(_request('id_relecture')))) {
// On stocke les infos nécessaires pour le calcul de l'élement et de la sélection
$infos['element'] = _request('element') ? _request('element') : 'texte';
$infos['repere_debut'] = _request('repere_debut');
$infos['repere_fin'] = _request('repere_fin');
// On supprime les index 'id_relecture', 'element' du tableau des valeurs afin qu'ils soient transmis dans
// la fonction traiter() (car ce sont des champs de l'objet relecture)
unset($valeurs['id_relecture']);
unset($valeurs['element']);
}
// Modification d'un commentaire
else if ($id = intval($id_commentaire)) {
else if ($id_commentaire = intval($id_commentaire)) {
// - si le commentaire est ouvert l'auteur de l'article peut le moderer.
// On lui renvoie le texte du commentaire et de la reponse
$infos = sql_fetsel('texte, reponse, id_emetteur', 'spip_commentaires', "id_commentaire=$id");
$select = array('texte', 'reponse', 'id_emetteur', 'element', 'repere_debut', 'repere_fin, id_relecture');
$infos = sql_fetsel($select, 'spip_commentaires', "id_commentaire=$id_commentaire");
$valeurs = array_merge($valeurs, $infos);
// On conserve l'id de la relecture pour le calcul de la sélection
$id_relecture = intval($infos['id_relecture']);
}
// On construit l'info sur l'élément et sur la sélection pour éviter de fournir les champs sql qui seraient
// supprimés lors de la création.
$valeurs['_info_element'] = _T('relecture:info_article_' . $infos['element']);
$texte = sql_getfetsel('article_' . $infos['element'], 'spip_relectures', "id_relecture=$id_relecture");
$selection = relecture_extraire_selection($texte, $infos['repere_debut'], $infos['repere_fin']);
$valeurs['_info_selection'] = _T('relecture:info_selection', array('texte' => $selection));
return $valeurs;
}

@ -9,7 +9,7 @@
#ACTION_FORMULAIRE{#ENV{action}}
<ul>
<li class="editer editer_parent[ (#ENV**{erreurs}|table_valeur{description}|oui) erreur]">
<label><:relecture:label_article_relu:>[<span> : (#ENV{titre_article})</span>]</label>
<label><:relecture:label_article_relu:>[<span> : <a[ href="(#ENV{_lien_article})"]>(#ENV{_titre_article})</a></span>]</label>
</li>
[(#CONFIG{relecture/autoriser_tous_relecteurs}|=={oui}|oui)

@ -14,9 +14,17 @@ function formulaires_editer_relecture_charger_dist($id_relecture='oui', $redirec
// On supprime l'index 'id_article' du tableau des valeurs afin que id_article soit transmis dans
// la fonction traiter() (car id_article est un champ de l'objet relecture)
unset($valeurs['id_article']);
// Néanmoins, on a besoin d'afficher le titre de l'article associé à la relecture, donc on le passe au formulaire
$valeurs['titre_article'] = sql_getfetsel('titre', 'spip_articles', array("id_article=$id_article"));
}
// Modification d'une relecture
elseif ($id_relecture = intval($id_relecture)) {
// On récupère l'id_article de la relecture
$id_article = intval(sql_getfetsel('id_article', 'spip_relectures', array("id_relecture=$id_relecture")));
}
// Néanmoins, dans tous les cas, on a besoin d'afficher le titre et le lien de l'article associé à la relecture :
// -> donc on le passe au formulaire
$valeurs['_titre_article'] = sql_getfetsel('titre', 'spip_articles', array("id_article=$id_article"));
$valeurs['_lien_article'] = generer_url_entite($id_article, 'article');
return $valeurs;
}
@ -32,12 +40,12 @@ function formulaires_editer_relecture_traiter_dist($id_relecture='oui', $redirec
// Ouverture d'une relecture sur un article
if (($id_relecture == 'oui')
AND ($id_article = intval(_request('id_article')))) {
// Pour eviter que le traitement standard ne cree un enregistrement dans la table spip_auteurs_liens
// il faut supprimer la reference a l'auteur connecte
// Pour éviter que le traitement standard ne cree un enregistrement dans la table spip_auteurs_liens
// il faut supprimer la référence à l'auteur connecté
set_request('id_auteur','');
}
// les autres traitements particuliers de creation de l'objet relecture sont faits dans le
// Les autres traitements particuliers de creation de l'objet relecture sont faits dans le
// pipeline pre_insertion
// Pour les modifications, aucun traitement particulier n'est necessaire
return formulaires_editer_objet_traiter('relecture', $id_relecture, 0, 0, $redirect);

@ -27,6 +27,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'explication_ajout_commentaire' => 'Pour ajouter des commentaires à cet élément cliquez sur le bouton de la barre d\'outils. Au préalable, si vous souhaitez associer ce commentaire à un emplacement ou à une portion du texte veillez à positionner correctement votre curseur dans le texte.',
// I
'info_selection' => 'l\'extrait &#10078;@texte@&#10077;',
'info_article_texte' => 'le texte de l\'article',
'info_article_chapo' => 'le chapeau de l\'article',
'info_article_descr' => 'le descriptif de l\'article',
'info_article_ps' => 'le post-scriptum de l\'article',
'info_1_commentaire_ferme' => '1 commentaire fermé',
'info_1_commentaire' => '1 commentaire déposé',
'info_1_relecture' => '1 relecture',
@ -47,6 +52,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// L
'label_action' => ' ',
'label_article_article' => 'Aucun',
'label_article_chapo' => 'Chapeau',
'label_article_descr' => 'Descriptif',
'label_article_ps' => 'Post-Scriptum',
@ -62,6 +68,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'label_commentaire_statut' => 'Statut du commentaire',
'label_commentaire_texte' => 'Texte du commentaire',
'label_commentaire_reponse' => 'Réponse au commentaire',
'label_commentaire_apropos' => 'Concerne :',
'label_date_cloture_commentaire' => 'Fermé le',
'label_date_cloture_relecture' => 'Clôturée le',
'label_date_modif' => 'Date',

@ -1,7 +1,7 @@
<paquet
prefix="relecture"
categorie="edition"
version="0.1.17"
version="0.1.18"
etat="dev"
compatibilite="[3.0.0;3.0.*]"
logo="relecture-64.png"

@ -72,8 +72,8 @@
#SET{url_edit, #URL_ECRIRE{commentaire_edit, id_commentaire=#ID_COMMENTAIRE}
|parametre_url{id_relecture, #ID_RELECTURE}
|parametre_url{element, #ELEMENT}
|parametre_url{index_debut, #REPERE_DEBUT}
|parametre_url{index_fin, #REPERE_FIN}}
|parametre_url{repere_debut, #REPERE_DEBUT}
|parametre_url{repere_fin, #REPERE_FIN}}
[(#AUTORISER{moderer, commentaire, #ID_COMMENTAIRE})
[(#BOUTON_ACTION{<:relecture:bouton_moderer:>, #GET{url_edit}, '', '', ''})]
]

@ -9,15 +9,15 @@
[(#ID_COMMENTAIRE|afficher_qui_edite{commentaire}|non)
[(#URL_ECRIRE{commentaire_edit,id_commentaire=#ID_COMMENTAIRE}
|parametre_url{element, #ELEMENT}
|parametre_url{index_debut, #REPERE_DEBUT}
|parametre_url{index_fin, #REPERE_FIN}
|parametre_url{repere_debut, #REPERE_DEBUT}
|parametre_url{repere_fin, #REPERE_FIN}
|icone_verticale{<:relecture:bouton_modifier_commentaire:>, commentaire, edit, right ajax preload})]
]
[(#ID_COMMENTAIRE|afficher_qui_edite{commentaire}|oui)
[(#URL_ECRIRE{commentaire_edit,id_commentaire=#ID_COMMENTAIRE}
|parametre_url{element, #ELEMENT}
|parametre_url{index_debut, #REPERE_DEBUT}
|parametre_url{index_fin, #REPERE_FIN}
|parametre_url{repere_debut, #REPERE_DEBUT}
|parametre_url{repere_fin, #REPERE_FIN}
|icone_verticale{#ID_COMMENTAIRE|afficher_qui_edite{commentaire},warning-24,'',right edition_deja ajax preload})]
]
]
@ -32,7 +32,7 @@
[(#BOITE_OUVRIR{<h5 id="ouverture"><:relecture:titre_boite_ouverture|strtoupper:></h5>, raccourcis})]
<div class="unit size2of3">
<span><strong><:relecture:label_date_ouverture_commentaire:></strong> : </span>
<span dir="#LANG_DIR">[(#DATE_OUVERTURE|affdate)]</span>
<span dir="#LANG_DIR">[(#DATE_OUVERTURE|affdate_heure)]</span>
</div>
<div class="unit size1of3 lastUnit">
<span><strong><:relecture:label_auteur_commentaire_abrege:></strong> : </span>

@ -1,25 +1,23 @@
[(#ID_COMMENTAIRE|oui)
[(#AUTORISER{modifier, commentaire, #ID_COMMENTAIRE}|sinon_interdire_acces)]
#SET{redirect, #ENV{redirect}
|sinon{#URL_ECRIRE{commentaire}
|parametre_url{id_commentaire, #ID_COMMENTAIRE}}}
][(#ID_COMMENTAIRE|non)
[(#AUTORISER{commenter, relecture, #ENV{id_relecture}}|sinon_interdire_acces)]
#SET{redirect, #ENV{redirect}
|sinon{#URL_ECRIRE{relecture_comment}
|parametre_url{id_relecture, #ENV{id_relecture}}
|parametre_url{element, #ENV{element, texte}}}}
]
#SET{redirect, #ENV{redirect}
|sinon{#URL_ECRIRE{commentaire}
|parametre_url{id_commentaire, #ID_COMMENTAIRE}}}
<div class="cadre-formulaire-editer">
<div class="entete-formulaire">
[(#GET{redirect}|icone_verticale{<:icone_retour:>, commentaire, '', left})]
[(#VAL{commentaire}|objet_info{#ID_COMMENTAIRE|?{texte_modifier, texte_creer}}|_T)]
<h1>
[(#INFO_TITRE{commentaire, #ID_COMMENTAIRE})]
[ - (#VAL{relecture:label_article_}|concat{#ENV{element}}|_T)]
[(#INFO_TITRE{commentaire, #ID_COMMENTAIRE}|sinon{<:relecture:titre_commentaire:>})]
</h1>
<blockquote>
[&#10078; (#ENV{id_relecture}
|generer_info_entite{relecture, [article_(#ENV{element, texte})], *}
|relecture_extraire_selection{#ENV{index_debut}, #ENV{index_fin}}) &#10077;]
</blockquote>
</div>
[(#ENV{retourajax,''}|oui)

@ -21,7 +21,11 @@
#SET{redirect,'javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();'}
<div class="ajax">
]
[(#FORMULAIRE_{editer_relecture, #ID_RELECTURE|sinon{oui}, #GET{redirect}})]
[(#FORMULAIRE_{editer_relecture,
#ID_RELECTURE|sinon{oui},
#GET{redirect}})]
[(#ENV{retourajax,''}|oui)
</div>
<script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{exec}','#navigation,#chemin');/*\]\]>*/</script>

@ -56,4 +56,8 @@ h5#ouverture, h5#cloture {display: none;}
padding-bottom: 0;
}
#textes_relecture .ui-widget-content p { font-size: 0.95em; }
.tooltip.relecture.ui-icon.ui-icon-comment { display: inline-block; }
.tooltip.relecture.ui-icon.ui-icon-comment { display: inline-block; }
/* Styles specifiques pour le formulaire d'édition d'un commentaire */
ul.commentaire_apropos { list-style: square inside none; }
.commentaire_apropos li { padding: 0; padding-left: 10px; }

@ -342,10 +342,10 @@ function autoriser_commentaire_modifier_dist($faire, $type, $id, $qui, $opt) {
((($qui['id_auteur'] == $infos['id_emetteur'])
AND $commentaire_ouvert
AND ($nb_messages_forum == 0)
AND (($opt['champ'] == 'texte') OR !$opt))
AND (!$opt OR ($opt['champ'] == 'texte')))
OR ($autorise_modifier_relecture
AND $commentaire_ouvert
AND (($opt['champ'] == 'reponse') OR !$opt)));
AND (!$opt OR ($opt['champ'] == 'texte'))));
}
return $autoriser;

@ -124,8 +124,8 @@ function generer_titre_commentaire($id_objet, $champs) {
/**
* Extraire du texte fourni la partie correspondante determinee par les offsets de debut et fin
* Si ceux sont nuls ou egaux la fonction renvoie une portion de texte autour du point d'insertion.
* Extraire du texte fourni la partie correspondante determinee par les repères de debut et fin.
* Si ceux-ci sont nuls ou egaux la fonction renvoie une portion de texte autour du point d'insertion.
*
* @param string $texte
* @param int $idebut

@ -214,8 +214,8 @@ function relecture_pre_insertion($flux) {
// - ajout des informations de base sur le commentaire
$flux['data']['id_relecture'] = $id_relecture;
$flux['data']['element'] = _request('element');
$flux['data']['repere_debut'] = intval(_request('index_debut'));
$flux['data']['repere_fin'] = intval(_request('index_fin'));
$flux['data']['repere_debut'] = intval(_request('repere_debut'));
$flux['data']['repere_fin'] = intval(_request('repere_fin'));
// - l'auteur du commentaire (auteur connecte)
$flux['data']['id_emetteur'] = session_get('id_auteur');

Loading…
Cancel
Save