Skip to content
Extraits de code Groupes Projets
Valider 1814d6e3 rédigé par esj's avatar esj
Parcourir les fichiers

Passage en Ajax du formulaire de réponse à un message de forum interne (mais...

Passage en Ajax du formulaire de réponse à un message de forum interne (mais l'envoi de ses saisies ne se fait pas -- encore -- en Ajax).
parent a1235836
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -48,26 +48,28 @@ function inc_discuter_dist($id, $script, $objet, $statut='prive', $debut=1, $pas ...@@ -48,26 +48,28 @@ function inc_discuter_dist($id, $script, $objet, $statut='prive', $debut=1, $pas
$debut = intval($debut); $debut = intval($debut);
$id = intval($id); $id = intval($id);
if (!$pas) $pas = 10; if (!$pas) $pas = 10;
$ancre = "poster_forum_prive-$id"; $ancre = "poster_forum_prive";
$clic = _T('icone_poster_message'); $clic = _T('icone_poster_message');
$logo = ($script == 'forum_admin') ? $logo = ($script == 'forum_admin') ?
"forum-admin-24.gif" : "forum-interne-24.gif"; "forum-admin-24.gif" : "forum-interne-24.gif";
$lien = generer_url_ecrire("poster_forum_prive", "statut=$statut&id=$id&script=$script") ."#formulaire"; $lien = generer_url_ecrire("poster_forum_prive", "statut=$statut&id=$id&script=$script") ."#formulaire";
$lien = icone_inline($clic, $lien, $logo, "creer.gif",'center', $ancre); $res = icone_inline($clic, $lien, $logo, "creer.gif",'center', $ancre);
$where = (!$objet ? '' : ($objet . "=" . sql_quote($id) . " AND ")) $where = ((!$objet OR !$id) ? '' : ($objet . "=" . sql_quote($id) . " AND "))
. "id_parent=0 AND statut=" . sql_quote($statut); . "id_parent=0 AND statut=" . sql_quote($statut);
$n = sql_countsel('spip_forum', $where); $n = sql_countsel('spip_forum', $where);
if (!$n) return $lien;
$nav = ($n <= $pas) ? '' : if ($n) {
formulaire_discuter($script, "id=$id&$objet=$id&statut=$statut", $debut, $pas, $ancre, $n, $objet);
$q = sql_select('*', 'spip_forum', $where, '', "date_heure DESC", "$debut,$pas"); $nav = ($n <= $pas) ? '' :
$args = ($objet ? "$objet=$id&" : '') . "statut=$statut"; formulaire_discuter($script, "id=$id&$objet=$id&statut=$statut", $debut, $pas, $ancre, $n, $objet);
$q = afficher_forum($q, $script, $args, false);
$res = $lien. $nav . $q . "<br />" . $nav; $q = sql_select('*', 'spip_forum', $where, '', "date_heure DESC", "$debut,$pas");
$args = ($objet ? "$objet=$id&" : '') . "statut=$statut";
$q = afficher_forum($q, $script, $args, false);
$res .= $nav . $q . "<br />" . $nav;
}
return ajax_action_greffe($ancre, '', $res); return ajax_action_greffe($ancre, '', $res);
} }
?> ?>
...@@ -495,15 +495,8 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_ ...@@ -495,15 +495,8 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
else $res .= "<b>$nom_site</b>"; else $res .= "<b>$nom_site</b>";
} }
if (!$controle_id_article) { $res .= $controle_id_article ? '' :
$tm = rawurlencode($titre); repondre_forum($id_forum, $titre, $statut, "$retour?$arg", _T('lien_repondre_message'));
$res .= "\n<div style='text-align: right' class='verdana1'>"
. "<b><a href='"
. generer_url_ecrire("poster_forum_prive", "statut=$statut&id_parent=$id_forum&titre_message=$tm&script=" . urlencode("$retour?$arg")) . '#formulaire'
. "'>"
. _T('lien_repondre_message')
. "</a></b></div>";
}
if ($GLOBALS['meta']["mots_cles_forums"] == "oui") if ($GLOBALS['meta']["mots_cles_forums"] == "oui")
$res .= afficher_forum_mots($id_forum); $res .= afficher_forum_mots($id_forum);
...@@ -521,6 +514,21 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_ ...@@ -521,6 +514,21 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
return $res; return $res;
} }
function repondre_forum($id_forum, $titre, $statut, $retour, $clic)
{
$ancre = "poster_forum_prive-$id_forum";
$lien = generer_url_ecrire("poster_forum_prive", "statut=$statut&id_parent=$id_forum&titre_message=" . rawurlencode($titre) . "&script=" . urlencode($retour)) . '#formulaire';
$lien = "<div style='text-align: right' class='verdana1'><b><a onclick="
. ajax_action_declencheur($lien, $ancre)
. "\nhref='"
. $lien
. "'>"
. $clic
. "</a></b></div>\n";
return ajax_action_greffe('poster_forum_prive', $id_forum, $lien);
}
// http://doc.spip.org/@afficher_forum_mots // http://doc.spip.org/@afficher_forum_mots
function afficher_forum_mots($id_forum) function afficher_forum_mots($id_forum)
......
...@@ -18,10 +18,18 @@ include_spip('inc/barre'); ...@@ -18,10 +18,18 @@ include_spip('inc/barre');
// http://doc.spip.org/@inc_forum_envoi_dist // http://doc.spip.org/@inc_forum_envoi_dist
function inc_forum_envoi_dist($id, $id_parent, $script, $statut, $titre_message, $texte, $modif_forum, $nom_site, $url_site) { function inc_forum_envoi_dist($id, $id_parent, $script, $statut, $titre_message, $texte, $modif_forum, $nom_site, $url_site) {
// trouver a quoi on repond $ajax = _request('var_ajaxcharset');
$id_parent= intval($id_parent); $id_parent= intval($id_parent);
$id = intval($id); $id = intval($id);
$row = forum_envoi_parent($id_parent); $row = sql_fetsel("*", "spip_forum", "id_forum=$id_parent");
// s'il existe, afficher le message auquel on repond
// (mais pas en Ajax, il est deja sur la page)
if (!$row)
$row = array('titre' =>'', 'texte' =>'', 'id_message' =>'');
elseif (!$ajax)
$row = forum_envoi_parent($row);
else $row['texte'] ='';
// apres le premier appel, afficher la saisie precedente // apres le premier appel, afficher la saisie precedente
if ($modif_forum == "oui") { if ($modif_forum == "oui") {
...@@ -42,7 +50,7 @@ function inc_forum_envoi_dist($id, $id_parent, $script, $statut, $titre_message, ...@@ -42,7 +50,7 @@ function inc_forum_envoi_dist($id, $id_parent, $script, $statut, $titre_message,
} else $titre_message = _T('texte_nouveau_message'); } else $titre_message = _T('texte_nouveau_message');
} }
$h = _request('var_ajaxcharset') ? '' : generer_url_ecrire($script, $retour); $h = $ajax ? '' : generer_url_ecrire($script, $retour);
$form = forum_envoi_formulaire($id, $h, $statut, $texte, $titre_message, $nom_site, $url_site); $form = forum_envoi_formulaire($id, $h, $statut, $texte, $titre_message, $nom_site, $url_site);
...@@ -68,20 +76,15 @@ $form ...@@ -68,20 +76,15 @@ $form
. fin_cadre_formulaire(true); . fin_cadre_formulaire(true);
if (_request('var_ajaxcharset')) if (_request('var_ajaxcharset'))
return ajax_action_post('poster_forum_prive',$cat, $script, $args, $corps, array(),'','', "&id=$id&id_parent=$id_parent&statut=$statut"); return ajax_action_post('poster_forum_prive',$cat, $script, "$args#poster_forum_prive", $corps, array(),'','', "&id=$id&id_parent=$id_parent&statut=$statut");
else return redirige_action_auteur('poster_forum_prive',$cat, $script, $args, $corps, "\nmethod='post' id='formulaire'"); else return redirige_action_auteur('poster_forum_prive',$cat, $script, $args, $corps, "\nmethod='post' id='formulaire'");
} }
// Chercher a quoi on repond pour l'afficher au debut // Chercher a quoi on repond pour l'afficher au debut
// http://doc.spip.org/@forum_envoi_parent // http://doc.spip.org/@forum_envoi_parent
function forum_envoi_parent($id) function forum_envoi_parent($row)
{ {
$row = sql_fetsel("*", "spip_forum", "id_forum=" . sql_quote($id));
if (!$row)
return array('titre' =>'', 'texte' =>'', 'id_message' =>'');
$titre = typo($row['titre']); $titre = typo($row['titre']);
$texte = $row['texte']; $texte = $row['texte'];
$auteur = $row['auteur']; $auteur = $row['auteur'];
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter