Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Szenentracker - keine Ausgabe
#1
Hallo ihr Lieben,

wie so viele fragende Personen habe ich nur wenig bis keine Ahnung von PHP  Rolleyes, aber ich versuche mein Bestes um es zu lernen. Wie gesagt, ich bin eine absolute Anfängerin, daher ist mein Code sicher für euch Cracks der Horror in Tüten. Mit so superkrassen PHP-Slang kann ich noch nichts anfangen Big Grin

In Zuge meines Lernprozesses, habe ich versucht einen "Szenentracker" zu bauen, der schließlich im Profil des Users die verschiedenen Szenen, in der er geschrieben hat, anzeigen soll.
Dabei werden nur ein paar Foren berücksichtigt (daher das Array) und alles wird nach Monaten geordent, diese Info hole ich mir aus der Description, die immer ausgefüllt ist.

Ich habe nun folgendes Problem:

Also entweder er schreibt die UserID nicht unten in das Select oder ich mache einen Denkfehler und deswegen erscheint absolut nichts im Profil - falsche Übergabe des Templates z.b.
Jedenfalls kommt beim echo nichts raus :/

Habe ich was beim übergeben an die Tpl's vergessen? 
Ich seh vor lauter Wald die Bäume nicht mehr, aber vielleicht ist jemand findiges unter Euch und sieht meinen Fehler.

Der ganze Code steht "unten" in der member.php über 
Code:
if(!$mybb->input['action'])

{
header("Location: index.php");
}
?>

Hier mal mein kleines Desaster:

Code:
#Ich will die ID abgrabbeln...

$uid = $_GET['uid'];

//Hier baue ich ein Array in dem die Monate (zum chronologischen Ordnen) und die Foren IDs die berücksichtigt werden sollen aufgezählt werden.


$monthIdsOpen = array(
    'Januar' => '17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,161,165,173,189,191,192,193,204,190,194,195',
    'Februar' => '17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,161,165,173,189,192,193,204,191,194,195',
    'März' => '17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,161,165,173,189,191,193,204,192,194,195',
    'April' => '17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,161,165,173,189,191,192,193,204,194,195',
    
    );

foreach( $monthIdsOpen as $monthName => $ids ) {

    $query = "SELECT mybb_threads.subject,mybb_threads.description,mybb_threads.tid, mybb_posts.username, mybb_posts.uid
        FROM mybb_threads
        INNER JOIN mybb_forums ON mybb_threads.fid = mybb_forums.fid
        INNER JOIN mybb_posts ON mybb_threads.tid = mybb_posts.tid
        WHERE mybb_posts.uid = $uid AND mybb_threads.description LIKE '%$monthName%' AND (mybb_posts.fid IN ($ids))
        GROUP BY mybb_threads.subject, mybb_posts.username";
    
    $profilGrabbler=$db->query($query);
    
    while( $result=$db->fetch_array($profilGrabbler) ) {
        $threadtitelProfil = $result['subject'];
        $threadidProfil = $result['tid'];
        $threadbeschreibungProfil = $result['description'];
        
        eval("\$profil_ausgabe_$monthName.= \"".$templates->get("profil_ausgabe")."\";");
    
    }    
    
}

Vielen Dank wenn wer eine Idee hat!

Liebe Grüße

Ale
Zitieren
#2
Wirklich keiner eine Ahnung?

Ich habe nun alles in einer separaten PHP-Seite ausprobiert und der Code geht. 
Auch mit
Code:
output_page($profil_ausgabe_April);

kommt die Ausgabe ganz unten, unter dem Footer und ich sehe, dass es soweit funzt. Auch das ausgeben verschiedener User mit 
Code:
$uid = $_GET['uid'];
geht.

Ich weiß nur immer noch nicht wieso es in der member.php nicht ankommt :/ bin leider ratlos und mit der Übergabe an die tpls kenne ich mich nur mäßig aus. 

Code:
eval("\$profil_ausgabe_$monthName.= \"".$templates->get("profil_ausgabe")."\";");
Funktioniert auf einer separaten PHP Seite ja ohne Probleme aber wie bekomme ich es hin, dass auch die member.php das schnallt? 
Zitieren
#3
Leider ist es nicht einfach zu helfen, wenn nur Teile des Codes zur Verfügung gestellt werden. Wink

Wenn du die Variable in einem Template benutzen willst, dann muss der Code vor dem Aufruf des gewünschten Templates eingefügt werden.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
In meinem Eingangspost habe ich den gesamten Code geschrieben, so wie er jetzt funktioniert Oo mehr hab ich nicht Oo
Zitieren
#5
Es fehlt, was du in welches Template eingefügt hast, also genau der Teil der nicht funktioniert. Wink
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
Ach so xD oh sorry! Das habsch vercheckt Big Grin

Ich habe noch nichts formatiert, also nicht meckern, dass da noch keine Tabellen etc. sind.
Wie gesagt, ich weiß nicht wie ich die $profil_ausgabe_Januar in die member_profil bekomme -.-

Also unter Templates ohne Gruppe

profil_ausgabe: 

Code:
$threadbeschreibungProfil - <a href="http://www.Blabla.net/showthread.php?tid=$threadidProfil"> $threadtitelProfil</a><br />

Und dann unter Mitglieder Templates

member_profil:

Code:
[....]
<td width="50%" valign="top">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
{$signature}
$profil_ausgabe_Januar
$profil_ausgabe_Februar
$profil_ausgabe_April

</table>
[....]

Mit 
Code:
output_page($profil_ausgabe_Januar);
[...]
output_page($profil_ausgabe_April);

Siehts dann unterm Footer so wie im Attachment


Angehängte Dateien Thumbnail(s)
   
Zitieren
#7
Wie schon vorhin erwähnt, muss der PHP vor den Aufruf des Templates. In dem Fall also vor:
PHP-Code:
eval("\$profile = \"".$templates->get("member_profile")."\";"); 
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#8
Oo oh mein Gott da sieht man, dass ich nix verstanden habe xD

ich weine vor Glück.
Oh danke danke danke Stefan! Big Grin
Wie ich dich knutschen will Oo...

Jedenfalls bin ich einen Schritt weiter im Mysterium Mybb Smile und dem erlernen von php <3
Zitieren
#9
Ich scheitere gerade daran, einen Platzhaltersatz anzeigen zu lassen, wenn ein Mitglied noch keine Themen/Beiträge in den entsprechenden Foren besitzt.. Kann mir dabei vielleicht jemand helfen?
Zitieren
#10
Mit

if(profilfeld=fidX){
bla bla
}else{
bla bla
}

oder so, schon versucht ?
Mit freundlichen Grüßen

MrBrechreiz
Zitieren