Beiträge: 42
Themen: 6
Registriert seit: 25.01.2013
Naja, Problem hierbei ist halt, dass ich keine Dateien verändern will, da man ja immer mal einplanen könnte, das Plugin zu veröffentlichen.. Oder so etwas in die Richtung.
Btw, gibt es eine Möglichkeit, herauszufinden ob man gerade einen "Anfangs-Post (Erster Post im Thread, also quasi der Thread selbst)" editiert? Ob man ein Thema erstellt ist ja ganz einfach mit der von frostschutz oben gesendeten Methode ausführbar, aber wie sieht das mit dem editieren aus?
MfG
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
Evtl. gibts in einem der Edit-Hooks $thread['firstpost'] and $post['tid'] und wenn die gleich sind ists der erste.
Habe gerade keine Zeit/Lust das durchzuchecken, sorry. Viel Erfolg.
Beiträge: 42
Themen: 6
Registriert seit: 25.01.2013
@frostschutz
Vielen Dank
!
Probiere ich sofort aus, sobald ich die Parameter der Hooks herausgefunden habe xD - In der Doku stehen zwar die Namen, aber nicht die Parameter ._. ....
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
06.04.2013, 22:03
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2013, 22:04 von frostschutz.)
Parameter haben die wenigsten. Meistens geht alles über die globalen Variablen.
Doku benutze ich nie. Ich baue mir wenn dann direkt in class_plugins :: run_hooks(_by_ref) ne Debugmeldung ein, die mir die Namen der aufgerufenen Hooks, ggf. auch Variablen anzeigt.
Ohne den Code zu lesen und ohne Debugmeldungen kann man nicht arbeiten. - was da drin steht, das kann man gar nicht dokumentieren
Beiträge: 42
Themen: 6
Registriert seit: 25.01.2013
06.04.2013, 22:20
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2013, 22:33 von Javatic.)
Oh, okay
.
Dann werde ich dass mit dem Debug auch mal versuchen
. Oder einfach $GLOBALS ausgeben xD
Vielen Dank nochmals ^^ Ich melde mich, falls ich was finde
LG
EDIT: Hm, $GLOBALS enthält zwar die PID des Postes, aber sagt nicht ob es der erste Post in einem Thread ist :/ ...
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
Zur Not müsstest du dann eben selbst get_thread($tid) aufrufen.
Beiträge: 42
Themen: 6
Registriert seit: 25.01.2013
Okay, versuche ich mal
Und theoretisch.. ganz theoretisch.. Könnte man doch gucken, ob die Query
"SELECT * FROM {prefix}posts WHERE pid = '{$pid}' AND replyto = '0'" mehr als 0 Resultate zurückliefert... oder?
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
Theoretisch. Ich würde mich auf replyto nicht verlassen. In der threads Tabelle gibts den firstpost Eintrag, der dafür da ist. Der kann zwar auch falsch sein - das macht dann aber alle möglichen Probleme. Normal ist meistens wenn mit Posts gearbeitet wird der Thread eh auch irgendwo vorhanden. Ansonsten halt get_thread oder sowas. Hab es mir jetzt nicht nochmal angeschaut, du bekommst es ja eh selber hin letztendlich
Beiträge: 42
Themen: 6
Registriert seit: 25.01.2013
07.04.2013, 10:46
(Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2013, 10:51 von Javatic.)
*grins* Hoffentlich
! Auf jeden Fall vielen Dank für die Hilfe
!
Allerdings verstehe ich nicht so wirklich was get_thread in diesem Falle bringt; In der Cross Reference steht dies:
Code:
/**
4931 * Get the thread of a thread id.
4932 *
4933 * @param int The thread id of the thread.
4934 * @param boolean Whether or not to recache the thread.
4935 * @return string The database row of the thread.
4936 */
4937 function get_thread($tid, $recache = false)
4938 {
4939 global $db;
4940 static $thread_cache;
4941
4942 if(isset($thread_cache[$tid]) && !$recache)
4943 {
4944 return $thread_cache[$tid];
4945 }
4946 else
4947 {
4948 $query = $db->simple_select("threads", "*", "tid='".intval($tid)."'");
4949 $thread = $db->fetch_array($query);
4950
4951 if($thread)
4952 {
4953 $thread_cache[$tid] = $thread;
4954 return $thread;
4955 }
4956 else
4957 {
4958 $thread_cache[$tid] = false;
4959 return false;
4960 }
4961 }
4962 }
Das gibt einem dann ja nur all die Daten eines bestimmten Threades zurück; "tid fid subject prefix icon poll uid username dateline firstpost lastpost lastposter lastposteruid views replies closed sticky numratings totalratings notes visible unapprovedposts attachmentcount deletetime" - Aber aus welchen Daten kann ich nun entnehmen, ob die Post-ID die ich zZ editiere, ein Thread-Start-Post ist? Sorry falls ich mich etwas dümmlich anstelle
.. Ahh.. Ich glaub ich habs.. firstpost mit der PID vergleichen? Müsste dann nur noch nachgucken, ob die Thread-ID im $GLOBALS Array vorhanden ist. Oder ginge es vielleicht auch so: "SELECT * FROM prefix_threads WHERE firstpost = '$pid';" ? Wenn das Resultat dann mehr als 0 Spalten zürückliefert, sollte der Post ja theoretisch ein Startpost sein.. Oder liege ich wieder mal falsch
?
Beiträge: 2.318
Themen: 13
Registriert seit: 09.11.2008
Ja, pid == firstpost. Du willst da selber keine Datenbankabfrage machen, wenn eine MyBB-Funktion schon die entsprechenden Daten liefert. get_thread() ist schon richtig, wenn die Daten da schon gecached sind bekommst du das, ansonsten macht die Funktion die Abfrage für dich.