ilch Forum » Allgemein » HTML, PHP, SQL,... » Mehr Infos unter Avatar im Forum

Geschlossen
  1. #1
    User Pic
    JohnBlaze Mitglied
    Registriert seit
    03.06.2009
    Beiträge
    63
    Beitragswertungen
    0 Beitragspunkte
    Guten Morgen liebe Ilcher,

    kann man in einer der Forum Dateien (php) den Code so umschreiben, dass unter dem Avatar Bild, weitere Informationen stehen, zbsp. nebst dem Rang, Gruppenzugehörigkeit,Squadzugehörigkeit,Link zum Profil und/oder Usergallery.
    Das wäre sehr praktisch und doch sicher ein Klacks für so einige unter euch, oder irre ich mich?

    patiently waiting for feedback


    verwendete ilchClan Version: 1.1

    betroffene Homepage: externer Link


    Zuletzt modifiziert von JohnBlaze am 15.08.2009 - 03:40:40
    mit freundlichen Grüssen
    Johnny Blaze | MD5 Coder
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    Ja kann man, ist nur mit etwas Schreibarbeit verbunden, da viele Infos in unterschiedlichen Tabellen abgespeichert sind.

    Schau dir am besten erstmal im PHPmyadmin die Struktur der Tabellen an, was ist wo und wie abgespeichert.
    Interessant dürften vor allem groups, groupusers, grundrechte, user und userfields sein.

    Wenn du das gemacht hast, schau dir die include/contents/forum/show_posts.php an, wie dort die Standardinfos (Avatar, Signatur, Rang und Posts) abgefragt werden und versuche das auf die Sachen, die du zusätzlich haben willst, zu übertragen.


    Kleiner Tipp (wenn du garnicht weiterkommst): Am einfachsten wird es für's erste sein, wenn du für jede Info eine eigene Abfrage schreibst und diese in die Schleife aufnimmst (Zeile 47 ff im original Ilch).

    $erg =
    $erg1 =
    $erg2 =

    while($row = db_fetch_assoc($erg) && $row1 = db_fetch_assoc($erg1) && $row2 = db_fetch_assoc($erg2)) {

    $row['info1'] = $row1['info1'];
    $row['info2'] = $row2['info2'];

    $tpl->set_ar_out($row,1);
    }

    In der include/templates/forum/showpost.htm kannst du die Infos dann mit {info1} und {info2} einbinden.

    Keine schöne Umsetzung, aber sie erfüllt für's erste ihren Zweck und ist leicht verständlich.
    Später, mit etwas mehr Kentnissen, kannst du das umschreiben.
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    JohnBlaze Mitglied
    Registriert seit
    03.06.2009
    Beiträge
    63
    Beitragswertungen
    0 Beitragspunkte
    Guten Morgen erneut lächeln

    Okay, erstmal vielen Dank für deine schnelle Antwort.
    Ich habe nur eine einzige Tabelle, die ich als quasi Not-Backup gespeichert habe, wegen dem damaligen Host Wechsel.

    Also die "die Struktur der Tabellen ansehen, was ist wo und wie abgespeichert" denke ich habe ich getan. Ich weiss jetzt an welcher Stelle (denn es ist ja eine Liste), die von dir genannten Infos (groups,groupusers etc) stehen.

    Wenn ich das richtig verstanden habe, dann wird es (hoffe ich) leicht sein, das mit den nötigen Dingen zu ergänzen.

    Und falls ich das richtig verstanden habe, wie soll ich zbsp eine Url zum Profil als info einsetzen?

    {info1} (also {..}
    oder
    $row[']..'] = $row1['Name des Links'];

    falls diese variante {info1}, wo gehört dann der "Name des Links" hin?
    Und an welcher Stelle die gesamte Zeile (?. {..}) ?

    Wahrscheinlich lieg ich Meilen weit davon entfernt von dem was du mir sagen wolltest. Ich will mich nicht selber fertig machen, aber es hat nen Grund, das ich ein Grünschnabel bin. Bin wirklich grade meine ersten Erfahrungen mit CMS und php/sql am machen.

    Danke für deine Antwort
    mit freundlichen Grüssen
    Johnny Blaze | MD5 Coder
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    alsooo...zum Grundverständnis:

    mit $erg legst du zuersteinmal fest, was aus der Datenbank ausgelesen wird.
    Also meinetwegen
    $erg = db_query("SELECT url FROM tabellexyz");

    So erhälst du eine (lange) Tabelle mit allen Werten, die in der Spalte url gespeichert sind (vorrausgesetzt die Spalte url existiert auch in tabellexyz).

    Jetzt braucht man natürlich nicht alles abfragen, was in der Spalte url abgespeichert ist, sondern nur die Zeilen von den Usern, die in dem Thread was gepostet haben.

    Dafür muss man die Abfrage mit der Tabelle prefix_posts verknüpfen (LEFT JOIN) und alle Einträge abfragen, die zur Thread-ID (WHERE tid = $tid) gehören.
    Dabei bekommt man auch die User-ID geliefert, da diese natürlich für jeden Post mit abgespeichert wurde (prefix_posts.erstid). In diesem Fall gehe ich davon aus, dass in tabellexyz die User-ID als Spalte uid gespeichert ist.
    Das ganze noch chronologisch ordnen (ORDER BY time) und raus kommt
    $erg = db_query("SELECT tabellexyz.url FROM `prefix_posts` LEFT JOIN tabellexyz ON prefix_posts.erstid = tabellexyz.uid WHERE tid = ".$tid." ORDER BY time LIMIT ".$anfang.",".$limit);

    Raus kommt eine kleine Tabelle mit 1 Spalte (url) und normalerweise 20 Zeilen.

    Über die while-Schleife wird dann Zeile für Zeile verarbeitet (pro Durchgang 1 Zeile) und in der Variable $row als array gespeichert
    while ($row = db_fetch_assoc($erg)) {

    Der Datenbank Eintrag aus der Spalte url ist nun als $row['url'] verfügbar und kann bei Bedarf noch modifiziert werden z.B. für den Fall, dass der User nichts eingetragen hat
    if ( empty($row['url']) ) {
    $row['url'] = 'keine Angabe';
    }

    Wenn du eine größere Abfrage mit mehreren Spalten hast, wären diese auch als $row['bla1'] $row['bla2'] $row['bla3'] usw usw verfügbar.

    Am ende jedes Schleifendurchgangs wird das Array $row dann mit $tpl->set_ar_out($row,1); an das Template übergeben, in diesem fall die include/templates/forum/showpost.htm
    Dort ist die Info aus url dann als {url} verfügbar und kann positioniert werden etc, eine sinnvolle Einbindung wäre z.B.
    <a href="{url}">Homepage des Users</a>


    Wenn du jetzt mehrere Abfragen hast, wie ich im oberen Post schon geschrieben hab, $erg $erg1 $erg2 mit $row $row1 $row2 usw in der Schleife, ist es wichtig, dass du $row1 und $row2 usw alle in $row abspeicherst, da nur $row an das Template übergeben wird.
    $row['bla1'] = $row1['bla1']
    $row['bla2'] = $row1['bla2']
    $row['bla3'] = $row2['bla3']
    $row['bla4'] = $row2['bla4']
    usw usw

    So, ich hoffe, das war jetzt leicht zu verstehen und hilft dir weiter.
    Hat jedenfalls lange genug gedauert, das zu schreiben. zwinker
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    JohnBlaze Mitglied
    Registriert seit
    03.06.2009
    Beiträge
    63
    Beitragswertungen
    0 Beitragspunkte
    Okay, vielen dank Fire86, ich hab dieses Wochenende und nächste Woche wieder mehr Zeit, mich dem Coden zu widmen. Also vielen vielen Dank, ich werd deinen Beitrag wahrscheinlich öfters durchlesen in nächster Zeit.
    Ich werd dann diesen Post hier, modifizieren, sobald ich entweder das Ziel erreicht habe, oder gescheitert bin.

    BIG THANKS
    mit freundlichen Grüssen
    Johnny Blaze | MD5 Coder
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten