diff --git a/inc-forum.php3 b/inc-forum.php3 index d6eb097f6c94a59bb8cbb8308e331b0d5762b154..01f7c29c8fdbc9535de3db939eda2c7640670f47 100644 --- a/inc-forum.php3 +++ b/inc-forum.php3 @@ -172,20 +172,22 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd // Si premiere edition, initialiser le titre et l'auteur if (!$titre) { if ($id_parent) - $titre_select = "SELECT titre FROM spip_forum WHERE id_forum = $id_parent"; + $titre_select = "SELECT titre FROM spip_forum WHERE id_forum = $id_parent AND statut='publie'"; else if ($id_rubrique) - $titre_select = "SELECT titre FROM spip_rubriques WHERE id_rubrique = $id_rubrique"; + $titre_select = "SELECT titre FROM spip_rubriques WHERE id_rubrique = $id_rubrique AND statut='publie'"; else if ($id_article) - $titre_select = "SELECT titre FROM spip_articles WHERE id_article = $id_article"; + $titre_select = "SELECT titre FROM spip_articles WHERE id_article = $id_article AND statut='publie'"; else if ($id_breve) - $titre_select = "SELECT titre FROM spip_breves WHERE id_breve = $id_breve"; + $titre_select = "SELECT titre FROM spip_breves WHERE id_breve = $id_breve AND statut='publie'"; else if ($id_syndic) - $titre_select = "SELECT nom_site AS titre FROM spip_syndic WHERE id_syndic = $id_syndic"; + $titre_select = "SELECT nom_site AS titre FROM spip_syndic WHERE id_syndic = $id_syndic AND statut='publie'"; else $titre_select = "SELECT '".addslashes(_T('forum_titre_erreur'))."' AS titre"; - $res = spip_fetch_object(spip_query($titre_select)); - $titre = '> ' . supprimer_numero(ereg_replace ('^[>[:space:]]*', '', $res->titre)); + if ($res = spip_fetch_object(spip_query($titre_select))) + $titre = '> ' . supprimer_numero(ereg_replace ('^[>[:space:]]*', '', $res->titre)); + else + $titre = _T('forum_titre_erreur'); } if ($spip_forum_user && is_array($cookie_user = unserialize($spip_forum_user))) { $auteur = $cookie_user['nom']; diff --git a/inc-urls-html.php3 b/inc-urls-html.php3 index 452c955e09d7d8e65f511c284344b2b71941cddb..d8c030801e1518a07467119be654d30911d56bcd 100644 --- a/inc-urls-html.php3 +++ b/inc-urls-html.php3 @@ -16,10 +16,6 @@ function generer_url_breve($id_breve) { return "breve$id_breve.html"; } -function generer_url_forum($id_forum) { - return "forum$id_forum.html"; -} - function generer_url_mot($id_mot) { return "mot$id_mot.html"; } @@ -45,4 +41,43 @@ function recuperer_parametres_url($fond, $url) { } -?> \ No newline at end of file +// +// URLs des forums +// + +// a mettre dans ecrire/inc_threads.php3 avec les autres trucs de forum +function racine_forum($id_forum){ + $query = "SELECT id_parent, id_rubrique, id_article, id_breve FROM spip_forum WHERE id_forum=".$id_forum; + $result = spip_query($query); + if($row = spip_fetch_array($result)){ + if($row['id_parent']) { + return racine_forum($row['id_parent']); + } + else { + if($row['id_rubrique']) return array('rubrique',$row['id_rubrique'], $id_forum); + if($row['id_article']) return array('article',$row['id_article'], $id_forum); + if($row['id_breve']) return array('breve',$row['id_breve'], $id_forum); + } + } +} + +function generer_url_forum($id_forum, $show_thread=false) { + list($type, $id, $id_thread) = racine_forum($id_forum); + if ($id_thread>0 AND $show_thread) + $id_forum = $id_thread; + switch($type) { + case 'article': + return generer_url_article($id)."#forum$id_forum"; + break; + case 'breve': + return generer_url_breve($id)."#forum$id_forum"; + break; + case 'rubrique': + return generer_url_rubrique($id)."#forum$id_forum"; + break; + default: + return "forum$id_forum.html"; + } +} + +?> diff --git a/inc-urls-standard.php3 b/inc-urls-standard.php3 index 01ec10e6587e3b2580a05c0dd7c5228076ca7c26..52c4f80362a2e11654c9f9c143afd17b269d13a8 100644 --- a/inc-urls-standard.php3 +++ b/inc-urls-standard.php3 @@ -4,7 +4,6 @@ if (defined("_INC_URLS2")) return; define("_INC_URLS2", "1"); - function generer_url_article($id_article) { return "article.php3?id_article=$id_article"; } @@ -17,10 +16,6 @@ function generer_url_breve($id_breve) { return "breve.php3?id_breve=$id_breve"; } -function generer_url_forum($id_forum) { - return "forum.php3?id_forum=$id_forum"; -} - function generer_url_mot($id_mot) { return "mot.php3?id_mot=$id_mot"; } @@ -45,4 +40,43 @@ function recuperer_parametres_url($fond, $url) { return; } -?> \ No newline at end of file +// +// URLs des forums +// + +// a mettre dans ecrire/inc_threads.php3 avec les autres trucs de forum +function racine_forum($id_forum){ + $query = "SELECT id_parent, id_rubrique, id_article, id_breve FROM spip_forum WHERE id_forum=".$id_forum; + $result = spip_query($query); + if($row = spip_fetch_array($result)){ + if($row['id_parent']) { + return racine_forum($row['id_parent']); + } + else { + if($row['id_rubrique']) return array('rubrique',$row['id_rubrique'], $id_forum); + if($row['id_article']) return array('article',$row['id_article'], $id_forum); + if($row['id_breve']) return array('breve',$row['id_breve'], $id_forum); + } + } +} + +function generer_url_forum($id_forum, $show_thread=false) { + list($type, $id, $id_thread) = racine_forum($id_forum); + if ($id_thread>0 AND $show_thread) + $id_forum = $id_thread; + switch($type) { + case 'article': + return generer_url_article($id)."#forum$id_forum"; + break; + case 'breve': + return generer_url_breve($id)."#forum$id_forum"; + break; + case 'rubrique': + return generer_url_rubrique($id)."#forum$id_forum"; + break; + default: + return "forum.php3?id_forum=".$id_forum; + } +} + +?>