Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.12 veröffentlicht (22.05.17)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
query mit $post['uid'] in showthread.php möglich?
#1
Hallo ihr Lieben,

ich bin gerade dabei ein paar automatische Buttons für mein Forum anzulegen. Für die member.php habe ich das auch geschafft, allerdings scheine ich bei der showthread.php etwas zu übersehen, aber ich komme einfach nicht darauf, was da so anders ist.

Es geht darum, dass ich eine Suche in der threads db durchführen möchte, um im Postbit einen Link zu einem Thema des Users zu erzeugen, der wird im Postbit nur leider nicht ausgegeben :/

Wie es sie im member.php gibt, wollte ich eine Variable $uid setzen, wozu ich $uid = $post['uid']; vor meinen Code gepackt habe, weil man im Classic Postbit die uid des Posters ja mit {$post['uid']} ausgeben lassen kann. Leider funktioniert das nicht, da die Variable $uid leer bleibt. Ich habe es an verschiedenen Stellen in der showthread.php versucht, leider ohne Erfolg. Sad

Der Code, der in der member.php funktioniert sieht so aus:
PHP-Code:
// threadids zum Abgreifen der Charalinks
$steckbrief $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 1"));
if(!empty(
$steckbrief)) {
$steckbriefbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$steckbrief['tid']."&pid=".$steckbrief['firstpost']."#pid".$steckbrief['firstpost']."\"><div>Steckbrief</div></a></td></tr>";

$beziehung $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 2"));
if(!empty(
$beziehung)) {
$beziehungbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$beziehung['tid']."&pid=".$beziehung['firstpost']."#pid".$beziehung['firstpost']."\"><div>beziehungen</div></a></td></tr>";
}
$tracker $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 3"));
if(!empty(
$tracker)) {
$trackerbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$tracker['tid']."&pid=".$tracker['firstpost']."#pid".$tracker['firstpost']."\"><div>tracker</div></a></td></tr>";


Liebe Grüße
Luna
Zitieren
#2
Das Postbit wird in der Datei inc/functions_post.php erzeugt.
Versuche deinen Code mal dort an der entsprechenden Stelle einzufügen, bevor das Template geladen wird, in das du die Buttons einsetzen möchtest.
Zitieren
#3
Danke für den Anstoß! Smile
Also die Buttons werden nun angezeigt, wenn ich es einbaue. *yay*
Allerdings habe ich nun eine Fehlermeldung (oder etwa 20x die selbe x3 ) oben im Forum, die auch nachdem ich die showthread.php und die inc/functions_post.php auf die Vorversionen zurückgesetzt habe nicht verschwindet. Sad

   

In der angegebenen Zeile in der showthread.php steht:
PHP-Code:
$plugins->run_hooks("showthread_linear"); 

Bisher hatte ich noch nie eine Fehlermeldung, die nach rückgängig machen meiner Schritte nicht wieder verschwand und daher bin ich etwas Ratlos Huh
Zitieren
#4
Ich melde mich nun noch einmal hier, weil ich nicht wirklich weis wo ich damit hin soll.

Ich habe mir die run_hooks Funktion angesehen, allerdings verstehe ich es nicht richtig und komme einfach nicht darauf, wieso er mir da nun für jeden Post in einem Thema diesen Fehler (siehe Attachement im letzten Post) ausgibt. Sad

Habe schon meine Variable $uid in $buttonuid umbenannt, weil ich dachte vielleicht gibt es da irgendein Problem, aber das hat genau so wenig gebracht wie das zurücksetzen der php's. :/

Wäre schön, wenn mir jemand helfen oder den Weg zu dem Bereich weisen könnte, in dem ich nach Hilfe fragen könnte.

LG Luna
Zitieren
#5
In welcher Datei an welcher Stelle hast du genau welchen Code eingefügt?
Zitieren
#6
Ich habe einiges probiert weshalb ich es nicht mehr genau nachstellen kann (auch da ich die dateien ja alle auf originalversion zurückgesetzt hatte), aber ich denke der Fehler trat auf, als ich es entweder in der Showthread.php in diesen code einfügte:
PHP-Code:
// Get the actual posts from the database here.
$posts '';
$query $db->query("
SELECT u.*, u.username AS userusername, p.*, f.*, eu.username AS editusername
FROM "
.TABLE_PREFIX."posts p
LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
LEFT JOIN "
.TABLE_PREFIX."users eu ON (eu.uid=p.edituid)
WHERE 
$pids
ORDER BY p.dateline
"
);
while(
$post $db->fetch_array($query))
{

if(
$thread['firstpost'] == $post['pid'] && $thread['visible'] == 0)
{
$post['visible'] = 0;
}

$posts .= build_postbit($post);
$post '';
}
$plugins->run_hooks("showthread_linear");


oder aber ich habe es anfangs an eine Falsche stelle in der functions_post.php eingefügt... jetzt ist es so:
PHP-Code:
if($forumpermissions['canviewdeletionnotice'] == && $post['visible'] == -&& $post_type == && !is_moderator($fid"canviewdeleted"))
{
eval(
"\$postbit = \"".$templates->get("postbit_deleted_member")."\";");
}
else
{
if(
$mybb->settings['postlayout'] == "classic")
{
// Buttonvariablen befüllen
$buttonuid $post['uid'];
$steckbrief $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $buttonuid = uid AND prefix = 1"));
if(!empty(
$steckbrief)) {
$steckbrieflink "showthread.php?tid=".$steckbrief['tid']."&pid=".$steckbrief['firstpost']."#pid".$steckbrief['firstpost'];
$steckbriefbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$steckbrief['tid']."&pid=".$steckbrief['firstpost']."#pid".$steckbrief['firstpost']."\"><div>Steckbrief</div></a></td></tr>";

$beziehung $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $buttonuid = uid AND prefix = 2"));
if(!empty(
$beziehung)) {
$beziehunglink "showthread.php?tid=".$beziehung['tid']."&pid=".$beziehung['firstpost']."#pid".$beziehung['firstpost'];
$beziehungbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$beziehung['tid']."&pid=".$beziehung['firstpost']."#pid".$beziehung['firstpost']."\"><div>beziehungen</div></a></td></tr>";
}
$tracker $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $buttonuid = uid AND prefix = 3"));
if(!empty(
$tracker)) {
$trackerlink "showthread.php?tid=".$tracker['tid']."&pid=".$tracker['firstpost']."#pid".$tracker['firstpost'];
$trackerbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$tracker['tid']."&pid=".$tracker['firstpost']."#pid".$tracker['firstpost']."\"><div>tracker</div></a></td></tr>";
}
$buttonuid '';
eval(
"\$postbit = \"".$templates->get("postbit_classic")."\";");
}
else
{
eval(
"\$postbit = \"".$templates->get("postbit")."\";");
}


vorher hatte ich es halt so und weiter oben in der funktions_post.php... wie gesagt, leider weis ich nicht mehr genau wo, da ich in meinem anfängerleichtsinn dachte wenn man es zurücksetzt müsste alles wieder auf anfang sein >.<
PHP-Code:
// threadids zum Abgreifen der Charalinks
$uid $post['uid']; 
$steckbrief 
$db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 1"));
if(!empty(
$steckbrief)) {
$steckbriefbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$steckbrief['tid']."&pid=".$steckbrief['firstpost']."#pid".$steckbrief['firstpost']."\"><div>Steckbrief</div></a></td></tr>";

$beziehung $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 2"));
if(!empty(
$beziehung)) {
$beziehungbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$beziehung['tid']."&pid=".$beziehung['firstpost']."#pid".$beziehung['firstpost']."\"><div>beziehungen</div></a></td></tr>";
}
$tracker $db->fetch_array($db->query("SELECT tid, firstpost FROM ".TABLE_PREFIX."threads WHERE $uid = uid AND prefix = 3"));
if(!empty(
$tracker)) {
$trackerbutton "<tr><td class=\"thead\"><a href=\"showthread.php?tid=".$tracker['tid']."&pid=".$tracker['firstpost']."#pid".$tracker['firstpost']."\"><div>tracker</div></a></td></tr>";
}
$uid ''
Zitieren
#7
Also, ich habe mal deinen aktuellen Code an der entsprechenden Stelle in der functions_post.php getestet (den mittleren aus deinem Beitrag) und die Buttons werden bei mir ebenfalls angezeigt. Auch die Fehlermeldung gibt es nicht.
Daher vermute ich, es muss noch irgendwo einen Rest von einem der vorherigen Versuche bei dir geben, der den Fehler hervorruft.
Zitieren
#8
Gut zu wissen, dass der Grundcode dann schon einmal funktioniert, danke. Smile
Habe meine showthread.php jetzt nochmal mit der aus der crossreferenz ausgetauscht und es hat funktioniert. Muss ich wohl irgendwo echt mist eingebaut haben, sorry für die gemopste Zeit und vielen Lieben Dank dafür! Smile
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  MySQL Query TPhil 5 354 17.02.2017, 14:51
Letzter Beitrag: TPhil