Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Thread Description: Zweites Beschreibungsfeld
#11
Hey,

ich bins nochmal und ich muss zu diesem Thema nocheinmal nerven.

Da nun der Inhalt des Beschreibungsfeldes immer wieder verschwunden ist, habe ich aus diesem Thema: Thread Description den Code genommen und eingefügt. Ja, ich habe den letzten genommen.

Der funktioniert hervorrangend. Leider aber nicht beim zweiten Feld Wink Hier kann man jetzt zwar eine Beschreibung eingeben, aber sie wird nicht mehr abgespeichert. Also habe ich mir gedacht, dass das zweite Beschreibungsfeld ja sicher auch bedient werden muss. Also habe ich den Code von der Funktion threaddescription_do_editpost genommen und ihn auf das zweite Beschreibungsfeld erweitert. Das sieht dann jetzt in etwa so aus:

Code:
// Update description
function threaddescription_do_editpost()
{
    global $db, $mybb, $tid, $pid, $thread;

    if ($pid != $thread['firstpost']) return;

    $description = array(
        "description" => $db->escape_string($mybb->input['description'])
    );
    $db->update_query("threads", $description, "tid='{$tid}'");
}
// Update description_2
function threaddescription_do_editpost()
{
    global $db, $mybb, $tid, $pid, $thread;

    if ($pid != $thread['firstpost']) return;

    $description_2 = array(
        "description_2" => $db->escape_string($mybb->input['description_2'])
    );
    $db->update_query("threads", $description_2, "tid='{$tid}'");
}
?>


Aber ich habe wohl falsch gedacht. Das funktioniert nicht so ganz, wie es erst in meinem Kopf ausfging. Anscheinend ist jetzt in der vorletzten Zeile ein Fehler.

Gehe ich denn zumindest in die richtige Richtung damit? Oder würde das mein Problem nicht lösen?
Zitieren
#12
Zwei gleichnamige Funktionen in einem Plug werden vermutlich nicht funktionieren. Du könntest aber beide descriptions in ein array zur Übergabe packen. Etwa so.

PHP-Code:
// Update description1 und description12
function threaddescription_do_editpost()
{
    global 
$db$mybb$tid$pid$thread;

    if (
$pid != $thread['firstpost']) return;

    
$description = array(
        
"description" => $db->escape_string($mybb->input['description']),
        
"description2" => $db->escape_string($mybb->input['description2'])
    );
    
$db->update_query("threads"$description$description2"tid='{$tid}'");



Mein Gedanke ist aber ungetestet.
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#13
Danke!

Hätte mir sowas gedacht, aber ich war unsicher, ob es reicht, wenn man nur eine Zeile hinzu editiert. Weiß ich das jetzt auch.

Habs getestet. Bei der Erstellung des Themas ist alles okay und funktioniert. Ich kann es auch bearbeiten im Editor. Wenn ich es dann aber erneut abschicken will, kommt das:

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:1327 - Undeclared variable: tidQuery: UPDATE tpbwf_threads SET `description`='Beschreibung 1', `description_2`='Beschreibung 2' LIMIT tid='204' 

Zugegeben, ich habe den Code von den Namen her angepasst:
PHP-Code:
// Update description1 und description2
function threaddescription_do_editpost()
{
   global $db$mybb$tid$pid$thread;

   if ($pid != $thread['firstpost']) return;

   $description = array(
       "description" => $db->escape_string($mybb->input['description']),
       "description_2" => $db->escape_string($mybb->input['description_2'])
   );
   $db->update_query("threads"$description$description_2"tid='{$tid}'");


So sind die Variablen sonst in der Datei nämlich auch benannt. Dachte, dass ist wichtig, dass ich die gleichen Namen dann auch verwende, wie sie die Tempaltes ansprechen.


EDIT:
Dein Code zeigt beim Aktualisieren des Beitrags btw diese Meldung an:
SQL Error:1327 - Undeclared variable: tidQuery: UPDATE tpbwf_threads SET `description`='Beschreibung 1', `description2`='' LIMIT tid='204'
Zitieren
#14
description_2 ist doch schon Bestandteil des $description-Arrays. Daher muss es nicht noch zusätzlich in die Query eingesetzt werden.
Versuche es mal so:

PHP-Code:
// Update description1 und description2
function threaddescription_do_editpost()
{
   global $db$mybb$tid$pid$thread;

   if ($pid != $thread['firstpost']) return;

   $description = array(
       "description" => $db->escape_string($mybb->input['description']),
       "description_2" => $db->escape_string($mybb->input['description_2'])
   );
   $db->update_query("threads"$description"tid='{$tid}'");

Zitieren
#15
Oh das scheint zu funktionieren!

Bisher läuft alles ohne Probleme!

Vielen Dank euch Beiden!
Zitieren
#16
Völlig logisch mit dem Array, hab ich wohl noch gepennt ^^. Danke doylecc
Mit freundlichen Grüßen

MrBrechreiz
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Moderation der "thread description" modercol 0 1.219 03.04.2007, 09:39
Letzter Beitrag: modercol