Besteht Interesse? - Mark Topics as Answered/Unanswered Mod!

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo & Danke :D

Scheint zu klappen ! :wink:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Schwabenpfeil!
Mitglied
Beiträge: 116
Registriert: 26.12.2002 23:27
Kontaktdaten:

Beitrag von Schwabenpfeil! »

Hallo esperitox,

zunächst vielen Dank für Deine schnelle Antwort! Inzw. habe ich nun den Mod eingebaut, stehe aber leider vor dem gleichen Problem wie ein par Beiträge zuvor der User camerino.

Auch bei mir wird leider nur der Button "nicht beantwortet" angezeigt, der "beantwortet" Button fehlt. Wo könnte ich hier wohl einen Fehler gemacht haben? Wäre Klasse wenn Du mir nochmals helfen könntest!
Hier mal der Link in mein Forum:
http://www.paules-pc-forum.de/phpBB2/

Gruß
Schwabenpfeil!
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
so läuft ( 40 tpls dauern halt etwas ;) ): http://www.awsw.de/Forum/viewforum.php?f=28

Eine Kleinigkeit habe ich eben noch bemerkt: Bei verschobenen Themen nimmt das Shadowtopic nicht den Zustand des entsprechenden Beitrags an, sondern bleibt offenbar auf Unbeantwortet:

Der Letzte Beiztrag: "Serienbrief aus einer DB ansprechen???" ist als Beantwortet markiert:
[ externes Bild ]

Das Shadowtopic des Beitrags "Verschoben: Serienbrief aus einer DB ansprechen???" bleibt auf Unbeantwortet:
[ externes Bild ]

Globale Ankündigungen klappen ;)

Danke und Gruß AWSW
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Zusatzfrage mit 100 Punkten :D

Wie kann ich möglichst einfach (per SQL Befehl oder so) alle vorhandenen Themen erst mal auf Beantwortet setzen, damit ich nicht 1000de Beiträge lesen und einzeln dann setzten muss :o Die noch offenen Themen würde ich dann wieder auf Unbeantwortet setzen, was wesentlich geringerer Aufwand wäre ;)

DANKE & GRUSS ! :roll:
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

Wegen den verschobenen themen werd ich gleich mal schauen...Um alle themen auf beantwortet zu setzen für diesen Query in phpMyAdmin aus:

Code: Alles auswählen

UPDATE phpbb_topics SET answer_status=1;
@Schwabenpfeil! zeig mal deine viewtopic.php als *.txt

esperitox
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo esperitox,
der Befehl hat geklappt :)

Lass Dir ruhig Zeit damit ;)

Danke !!!
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Schwabenpfeil!
Mitglied
Beiträge: 116
Registriert: 26.12.2002 23:27
Kontaktdaten:

Beitrag von Schwabenpfeil! »

Hallo esperitox,

hier ist mal der Link zu meinter viewtopic.txt
www.paules-pc-forum.de/test/viewtopic.txt

Ich bin mir inzw. schon fast sicher das ich dort nen Fehler hab - nur wo?

Gruß
Schwabenpfeil!
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

@AWSW hab die Ursache dafür gefunden wenn ein Thema verschoben wird, wird in der DB ein Duplikat angelegt bei dem der answer_status nicht korrekt übernommen wird um das zu korrigieren such in der modcp.php nach:

Code: Alles auswählen

$sql = "INSERT INTO " . TOPICS_TABLE . " (forum_id, topic_title, topic_poster, topic_time, topic_status, topic_type, topic_vote, topic_views, topic_replies, topic_first_post_id, topic_last_post_id, topic_moved_id)
							VALUES ($old_forum_id, '" . addslashes(str_replace("\'", "''", $row[$i]['topic_title'])) . "', '" . str_replace("\'", "''", $row[$i]['topic_poster']) . "', " . $row[$i]['topic_time'] . ", " . TOPIC_MOVED . ", " . POST_NORMAL . ", " . $row[$i]['topic_vote'] . ", " . $row[$i]['topic_views'] . ", " . $row[$i]['topic_replies'] . ", " . $row[$i]['topic_first_post_id'] . ", " . $row[$i]['topic_last_post_id'] . ", $topic_id)";
und ersetz das durch:

Code: Alles auswählen

$sql = "INSERT INTO " . TOPICS_TABLE . " (forum_id, topic_title, topic_poster, topic_time, topic_status, topic_type, topic_vote, topic_views, topic_replies, topic_first_post_id, topic_last_post_id, answer_status, topic_moved_id)
							VALUES ($old_forum_id, '" . addslashes(str_replace("\'", "''", $row[$i]['topic_title'])) . "', '" . str_replace("\'", "''", $row[$i]['topic_poster']) . "', " . $row[$i]['topic_time'] . ", " . TOPIC_MOVED . ", " . POST_NORMAL . ", " . $row[$i]['topic_vote'] . ", " . $row[$i]['topic_views'] . ", " . $row[$i]['topic_replies'] . ", " . $row[$i]['topic_first_post_id'] . ", " . $row[$i]['topic_last_post_id'] . ", " . $row[$i]['answer_status'] . ", $topic_id)";
das einzige prob ist das du es bei schon vorhandenen Shadow Topics von Hand ändern müsstest :roll:

@schwabenpfeil du hast noch eine ältere Version des Mods ums richtig zum laufen zu bringen mach des:

viewtopic.php:

[suchen]

Code: Alles auswählen

$forum_name = $forum_topic_data['forum_name'];
$topic_title = $forum_topic_data['topic_title'];
$topic_id = $forum_topic_data['topic_id'];
$topic_time = $forum_topic_data['topic_time'];
[ersetzen durch]

Code: Alles auswählen

$forum_name = $forum_topic_data['forum_name'];
$topic_title = $forum_topic_data['topic_title'];
$topic_id = $forum_topic_data['topic_id'];
$topic_time = $forum_topic_data['topic_time'];
$answer_status = $forum_topic_data['answer_status'];
esperitox
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo & Danke :D

Damit klappt es, wenn man das Thema zuvor als "beantwortet" gekennzeichnet hat... Wenn ich aber erst das neue Thema verschiebe (weil der User z.B. im falschen Forum gepostet hat) und es danach als "beantwortet" im Zielforum schalte, dann bleibt der Shadowlink auf "unbeantwortet"...

Ist nur ne Kleine Designsache, aber wäre genial, wenn man das abfangen könnte ;)

Danke & Schönes WE :D
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
esperitox
Mitglied
Beiträge: 803
Registriert: 17.04.2002 21:40
Wohnort: Line 758
Kontaktdaten:

Beitrag von esperitox »

Ok dann ma los:

viewtopic.php:

[suchen]

Code: Alles auswählen

$sql = "SELECT t.topic_id, t.topic_first_post_id, p.post_id, p.poster_id
      FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
      WHERE t.topic_id = " . $topic_id . "
         AND t.topic_first_post_id = p.post_id";
   $result = $db->sql_query($sql);
   $row = $db->sql_fetchrow($result);

if ($row['poster_id'] == $userdata['user_id'] && $userdata['user_level'] != ANONYMOUS || $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD )
{
if( $userdata['session_logged_in'] )
{
if ($mode == 'answered')
{
$sql = "UPDATE " . TOPICS_TABLE . " SET answer_status=1 WHERE topic_id=$topic_id";
if ( !$result = $db->sql_query($sql) )
                {
message_die(GENERAL_ERROR, 'Could not update topic status', '', __LINE__, __FILE__, $sql);
                }

$template->assign_vars(array(
                                'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
                        );

                        $message = $lang['Marked_answered'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
                        message_die(GENERAL_MESSAGE, $message);
                }

if ($mode == 'unanswered')
{
$sql = "UPDATE " . TOPICS_TABLE . " SET answer_status=0 WHERE topic_id=$topic_id";
if ( !$result = $db->sql_query($sql) )
                {
message_die(GENERAL_ERROR, 'Could not update topic status', '', __LINE__, __FILE__, $sql);
                }
$template->assign_vars(array(
                                'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
                        );

                        $message = $lang['Marked_unanswered'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
                        message_die(GENERAL_MESSAGE, $message);
}
[Ersetzen durch]

Code: Alles auswählen

$sql = "SELECT t.topic_id, t.topic_first_post_id, p.post_id, p.poster_id, topic_moved_id
      FROM " . TOPICS_TABLE . " t, " . POSTS_TABLE . " p
      WHERE t.topic_id = " . $topic_id . "
         AND t.topic_first_post_id = p.post_id";
   $result = $db->sql_query($sql);
   $row = $db->sql_fetchrow($result);

if ($row['poster_id'] == $userdata['user_id'] && $userdata['user_level'] != ANONYMOUS || $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD )
{
if( $userdata['session_logged_in'] )
{
if ($mode == 'answered')
{
$sql = "UPDATE " . TOPICS_TABLE . " SET answer_status=1 WHERE topic_id=$topic_id OR topic_moved_id=$topic_id";
if ( !$result = $db->sql_query($sql) )
                {
message_die(GENERAL_ERROR, 'Could not update topic status', '', __LINE__, __FILE__, $sql);
                }

$template->assign_vars(array(
                                'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
                        );

                        $message = $lang['Marked_answered'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
                        message_die(GENERAL_MESSAGE, $message);
                }

if ($mode == 'unanswered')
{
$sql = "UPDATE " . TOPICS_TABLE . " SET answer_status=0 WHERE topic_id=$topic_id OR topic_moved_id=$topic_id";
if ( !$result = $db->sql_query($sql) )
                {
message_die(GENERAL_ERROR, 'Could not update topic status', '', __LINE__, __FILE__, $sql);
                }

$template->assign_vars(array(
                                'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">')
                        );

                        $message = $lang['Marked_unanswered'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
                        message_die(GENERAL_MESSAGE, $message);
}
sollte gehen :D

esperitox
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“