Valider d59380c9 rédigé par Fil's avatar Fil
Parcourir les fichiers

les forums entrent un peu mieux dans l'API de modification ; reprise du...

les forums entrent un peu mieux dans l'API de modification ; reprise du travail sur l'API de notifications, notamment pour faire suivre les forums a des moderateurs ou aux participants au thread (pas complet).
parent 68ca9185
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -49,8 +49,8 @@
	<fieldset>
	<legend><:forum_lien_hyper:></legend>
	<p><:forum_page_url:></p>
	<p><label for="nom_site_forum"><:forum_titre:></label>
	<input type="text" class="forml" name="nom_site_forum" id="nom_site_forum" size="40" value="#ENV{nom_site_forum}" /></p>
	<p><label for="nom_site"><:forum_titre:></label>
	<input type="text" class="forml" name="nom_site" id="nom_site" size="40" value="#ENV{nom_site}" /></p>
	<p><label for="url_site"><:forum_url:></label>
	<input type="text" class="forml" name="url_site" id="url_site" style="text-align: left;" dir="ltr" size="40" value="#ENV{url_site}" /></p>
	</fieldset>
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -3,7 +3,7 @@

<p>[<strong>(#ENV*{titre})</strong>][<em> - (#ENV*{auteur}|supprimer_numero|couper{80})</em>]</p>
[(#ENV*{texte}|lignes_longues)]
[<p><a[ href="(#ENV{url_site}|attribut_html)"] class="spip_out">(#ENV*{nom_site_forum}|sinon{#ENV{url_site}|couper{80}})</a></p>]
[<p><a[ href="(#ENV{url_site}|attribut_html)"] class="spip_out">(#ENV*{nom_site}|sinon{#ENV{url_site}|couper{80}})</a></p>]

<B_mots>
<p class="reponse_formulaire"><:forum_avez_selectionne:>
+9 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -253,19 +253,24 @@ function instituer_article($id_article, $c) {
	OR ($statut_ancien=='publie' AND $champ['statut']))
		calculer_rubriques();

	// Notification ?
	$data = $champs;
	$data['statut_ancien'] = $statut_ancien;
	// Pipeline
	pipeline('post_edition',
		array(
			'args' => array(
				'table' => 'spip_articles',
				'id_objet' => $id_article
			),
			'data' => $data
			'data' => $champs
		)
	);

	// Notifications
	if ($notifications = charger_fonction('notifications', 'inc')) {
		$notifications('instituerarticle', $id_article,
			array('statut' => $statut, 'statut_ancien' => $statut_ancien)
		);
	}

	return ''; // pas d'erreur
}

+5 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -153,13 +153,13 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
		$texte = _request('texte');
		$auteur = _request('auteur');
		$email_auteur = _request('email_auteur');
		$nom_site_forum = _request('nom_site_forum');
		$nom_site = _request('nom_site');
		$url_site = _request('url_site');
		$ajouter_mot = _request('ajouter_mot');
		$ajouter_groupe = _request('ajouter_groupe');

		if ($afficher_texte != 'non') 
			$previsu = inclure_previsu($texte, $titre, $email_auteur, $auteur, $url_site, $nom_site_forum, $ajouter_mot);
			$previsu = inclure_previsu($texte, $titre, $email_auteur, $auteur, $url_site, $nom_site, $ajouter_mot);

		$arg = forum_fichier_tmp(join('', $ids));

@@ -185,7 +185,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
		'readonly' => ($type == "abo")? "readonly" : '',
		'email_auteur' => $email_auteur,
		'modere' => (($type != 'pri') ? '' : ' '),
		'nom_site_forum' => $nom_site_forum,
		'nom_site' => $nom_site,
		'retour_forum' => $retour_forum,
		'afficher_texte' => $afficher_texte,
		'previsu' => $previsu,
@@ -205,7 +205,7 @@ $ajouter_mot, $ajouter_groupe, $afficher_texte, $url_param_retour)
}

// http://doc.spip.org/@inclure_previsu
function inclure_previsu($texte,$titre, $email_auteur, $auteur, $url_site, $nom_site_forum, $ajouter_mot)
function inclure_previsu($texte,$titre, $email_auteur, $auteur, $url_site, $nom_site, $ajouter_mot)
{
	$erreur = $bouton = '';
	if (strlen($texte) < 10 AND !$ajouter_mot)
@@ -235,7 +235,7 @@ function inclure_previsu($texte,$titre, $email_auteur, $auteur, $url_site, $nom_
			'auteur' => safehtml(typo($auteur)),
			'texte' => safehtml(propre($texte)),
			'url_site' => vider_url($url_site),
			'nom_site_forum' => safehtml(typo($nom_site_forum)),
			'nom_site' => safehtml(typo($nom_site)),
			'ajouter_mot' => (is_array($ajouter_mot) ? $ajouter_mot : array($ajouter_mot)),
			'erreur' => $erreur,
			'bouton' => $bouton
+37 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -261,4 +261,41 @@ function generer_url_forum_dist($id_forum, $show_thread=false) {
		  return '';
	}
}

// Quand on edite un forum, on tient a conserver l'original
// sous forme d'un forum en reponse, de statut 'original'
// http://doc.spip.org/@conserver_original
function conserver_original($id_forum) {
	$s = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent="._q($id_forum)." AND statut='original'");

	if (spip_num_rows($s))
		return ''; // pas d'erreur

	// recopier le forum
	$t = spip_fetch_array(
		spip_query("SELECT date_heure,titre,texte,auteur,email_auteur,nom_site,url_site,ip,id_auteur,idx,id_thread FROM spip_forum WHERE id_forum="._q($id_forum))
	);

	if ($t
	AND spip_query("INSERT spip_forum (date_heure,titre,texte,auteur,email_auteur,nom_site,url_site,ip,id_auteur,idx,id_thread) VALUES (".join(',',array_map('_q', $t)).")")) {
		$id_copie = spip_insert_id();
		spip_query("UPDATE spip_forum SET id_parent="._q($id_forum).", statut='original' WHERE id_forum=$id_copie");
		return ''; // pas d'erreur
	}

		return '&erreur';
}

// appelle conserver_original(), puis modifie le contenu via l'API inc/modifier
// http://doc.spip.org/@enregistre_et_modifie_forum
function enregistre_et_modifie_forum($id_forum, $c=false) {
	if ($err = conserver_original($id_forum)) {
		spip_log("erreur de sauvegarde de l'original, $err");
		return;
	}

	include_spip('inc/modifier');
	return revision_forum($id_forum, $c);
}

?>
Chargement en cours