Seite 1 von 2

phpbb: Wert in tabelle über link in der viewtopic ändern?

Verfasst: 18.12.2002 22:11
von JLoop©
Hi,
ich habe in die tabelle phpbb_topics diese tabellenspalte eingefügt:
down_status tinyint(1) NOT NULL default '0'
Nun möchte ich in die viewtopic einen Link "Anmelden" - der auf klick den rot markierten wert in 1 umwandelt - und einen Link "Abmelden" der den wert wieder auf 0 zurücksetzt!Da ich noch absoluter noob in php bin wäre ich dankbar wenn mir jemand helfen könnte das hinzukriegen oder mir ansatzweise erklären könnte wie das ablaufen muss!

Bin für jeden tipp dankbar!

Grüße JLoop

Verfasst: 19.12.2002 12:02
von JLoop©
hmm hab ich irgendwas falsches geschrieben oder hat wirklich keiner ne ahnung wie ich da vorgehen muss um das hinzubekommen? ...oder ist das forum hier nur für php profis gedacht? :-?

Grüße JLoop

Verfasst: 19.12.2002 14:17
von itst
Du brauchst die Topic Id ($topic_id).

Dann kannst Du mit

Code: Alles auswählen

$sql = "UPDATE phpbb_topics SET down_status=1 WHERE topic_id=$topic_id";
die Spalte auf 1 setzen.

HTH, Sascha

Verfasst: 19.12.2002 15:18
von JLoop©
Jo nur wie kann ich das ganze über 2 Links steuern?Ich habs mal so probiert:

viewtopic.php:

vor

Code: Alles auswählen

$template->assign_block_vars('postrow', array(
habe ich das eingefügt:

Code: Alles auswählen

if ($mode == 'down')
{
$sql = "UPDATE phpbb_topics SET down_status=1 WHERE topic_id=$topic_id";
}
und nach:

Code: Alles auswählen

'POSTER_NAME' => $poster,
habe ich das eingefügt:

Code: Alles auswählen

'DOWN_LINK' => '<a href="' . append_sid("viewtopic.$phpEx?t=$topic_id&mode=down"). '">Down</a>',  
aber in der DB tut sich nicht der wert bleibt auf 0 :(

Grüße JLoop

Verfasst: 19.12.2002 18:19
von Pyramide
JLoop© hat geschrieben:

Code: Alles auswählen

if ($mode == 'down')
{
$sql = "UPDATE phpbb_topics SET down_status=1 WHERE topic_id=$topic_id";
}
Abschicken musst du die Abfrage auch noch: $db->sql_query($sql)

Verfasst: 21.12.2002 02:33
von JLoop©
thx es läuft jetzt soweit ich habe da aber trotzdem noch ein kleines problem und zwar habe ich noch $message = .. hinzugefügt:

Code: Alles auswählen

if ($mode == 'down')
{
$sql = "UPDATE phpbb_topics SET down_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);
                }

                $message = 'Topic was updated successful';
                message_die(GENERAL_MESSAGE, $message);
                }
damit nach dem anklicken des Links eine Nachricht angezeigt wird nun hätte ich es gerne so dass man dann zurück zum topic geleitet wird ist das irgendwie machbar?

Grüße JLoop

Verfasst: 21.12.2002 18:02
von JLoop©
Niemand ne idee wie ich das mit der weiterletung hinbekommen kann?? :(

Grüße JLoop

Verfasst: 21.12.2002 18:16
von Pyramide

Code: Alles auswählen

Klicke <a href="viewtopic.php?t=08/15">hier</a>, um zum Thema zurückzukehren
Kannst auch irgendwie einstellen, daß man nach 3 Sekunden automatisch weitergeleitet wird. Am besten du guckst dir dazu mal posting.php oder so an.

Verfasst: 22.12.2002 11:11
von JLoop©
Ja ich meinte ja die automatische weiterleitung ich hatte mir das schon in anderen Dateien angesehen aber das funzt irgendwie net :o

aus der posting.php hab ich das genommen:

Code: Alles auswählen

$redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id";

                $header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
        header($header_location . append_sid($redirect, true));
        exit;
und hier eingefügt:
if ($mode == 'down')
{
$sql = "UPDATE phpbb_topics SET down_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);
}

$message = 'Topic wurde markiert';
message_die(GENERAL_MESSAGE, $message);

$redirect = "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id";

$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid($redirect, true));
exit;

}
aber des funzt net es tut sich nichts :(

Grüße JLoop

Verfasst: 22.12.2002 13:36
von Pyramide
Aus posting.php und functions_post.php:

Code: Alles auswählen

$meta = '<meta http-equiv="refresh" content="3;url=' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">';

$message = $lang['Stored'] . '<br /><br />' . sprintf($lang['Click_view_message'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=" . $post_id) . '#' . $post_id . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a>');

$template->assign_vars(array("META" => $meta));
message_die(GENERAL_MESSAGE, $message);