ilch Forum » Ilch Clan 1.1 » Allgemein » BBCode Quote

Geschlossen
  1. #1
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Hallo zusammen,

    ich habe eine Frage den BBCode 2.0 betreffend.
    Und zwar möchte ich, wenn ein Beitrag zitiert wird, dass dieser Beitrag
    im neuen Zitat verlinkt wird. Also wenn man dann zb auf "Zitat von Outi77" klickt, man direkt zum entsprechenden Post gelangt.
    Ich hatte gedacht, dass bei Klick auf "Zitieren" der Link zum Post ebenfalls in die Quote-Tags aufgenommen wird, durch Komma getrennt vom zitierten User.
    [quote=Outi77, 'index.php?forum-showposts-???']...[/quote]

    Den Link in die Quote-Tags zu integrieren ist nicht das Problem, sondern die entsprechenden Änderungen in der BBCode-Klasse.
    Könnte mir dabei jemand behilflich sein?
    Vielen Dank!

    Gruß Outi


    verwendete ilch Version: 1.1 P
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Niemand eine Idee oder nen Tipp?
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Den einzigen Tipp, den ich dir aus dem Urlaub geben kann, wäre, dir mal die Flash geschichte anzuschauen, dort hab ich das glaube ich schon mit mehreren Parametern gemacht. Könntest das ja dann auch zusätzlich zum schon vorhandenen Quote machen, wenn du es nur so hinbekommst.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Dann danke ich Dir dafür, dass Du Dir in Deinem Urlaub Zeit für mich genommen hast.
    Ich habe mir die flash-Geschichte angeschaut und auch verstanden. Leider ist das beim quote bissl umfangreicher. Und dann kommt noch hinzu, dass ich ein grundlegendes Problem mit dieser bbcode-Klasse habe. Ich verstehe die einfach nicht. Ich kann mit Recht behaupten, dass ich des öfteren versucht habe, da durchzublicken. Aber da sind mir einfach zu viele replace und so weiter drin und dann tu ich mich schwer, das System darin zu erkennen.
    Ich werde mich morgen nochmal in Ruhe damit befassen, vielleicht klappt es mit nem frischen Geist besser. zwinker
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Ok also Gott weiß, dass ich jetzt Einiges probiert habe. Zum Beispiel habe ich versucht, in der _addQuoteOpen den Link irgendwie zu extrahieren. Hat leider nicht funktioniert, ich bin mit meinem Latein am Ende und für weitere Hilfe (nen weiteren Tipp) dankbar.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Saarlonz Moderator
    Registriert seit
    07.08.2008
    Beiträge
    3.002
    Beitragswertungen
    235 Beitragspunkte
    Verwendest du BBCode 2.0?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Ja genau.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Saarlonz Moderator
    Registriert seit
    07.08.2008
    Beiträge
    3.002
    Beitragswertungen
    235 Beitragspunkte
    ändere mal in der include/contents/forum/newpost_post.php ab Zeile 57:
    if ($menu->getA(3) == 'z') {
            $post = $menu->get(2);
            $anker = $menu->getE(3);
            $row = db_fetch_object(db_query("SELECT txt,erst FROM prefix_posts WHERE id = " . $menu->getE(3)));
            $xtext = '[quote=' . escape_nickname($row->erst) . ' post=\'' . $post . '#' . $anker . '\']' . "\n" . $row->txt . "\n[/quote]";
        }


    Dann fügst du in der include/includes/class/bbcode.php ab Zeile 450
    $link = " <a href=?forum-showposts-";
    $linkend = ">LINK</a>";


    und ab Zeile 461 folgendes

     //> Format: [quote=xxx post='x#x']
                    $this->quote_pattern[] = "%\[quote:".$c."=([^[/]*) post='([^[/]*)'\]%siU";
                    $this->quote_replace[] = $HeaderUser."\$1".$link."\$2".$linkend."".$FooterUser;


    hinzu.

    Zeile entsprechen unveränderten Dateien, solltest du schon was geändert haben können sie natürlich abweichen.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Hi Saarlonz,

    das ist schonmal sehr gut. Allerdings hätte ich statt dem Wort LINK hinter "Zitat von Outi77"
    die Verlinkung gern direkt auf dem "Zitat von Outi77".

    Gruß
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Saarlonz Moderator
    Registriert seit
    07.08.2008
    Beiträge
    3.002
    Beitragswertungen
    235 Beitragspunkte
    ok dann lösche
    $link = " <a href=?forum-showposts-";
    $linkend = ">LINK</a>";


    und das
    Zitat von

    am ende von $HeaderUser in Zeile 439

    und ersetze den teil von eben mit
    //> Format: [quote=xxx post='x#x']
                    $this->quote_pattern[] = "%\[quote:" . $c . "=([^[/]*) post='([^[/]*)'\]%siU";
                    $this->quote_replace[] = $HeaderUser . "<a href=?forum-showposts-\$2>Zitat von \$1</a>" . $FooterUser;



    Zuletzt modifiziert von Saarlonz am 11.09.2016 - 14:30:03
    2 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Ich komme gar nicht zum "Danke sagen" bei den vielen Neuerungen, die Du postest. lachen
    Aber jetzt ist es so, wie ich es gern hätte.
    Vielen vielen Dank für Deine Hilfe, ich muss mich wirklich mal ernsthaft bzw intensiver mit der Klasse beschäftigen.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Saarlonz Moderator
    Registriert seit
    07.08.2008
    Beiträge
    3.002
    Beitragswertungen
    235 Beitragspunkte
    Kein Ding lachen Yes
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Ich muss hier leider nochmal einhaken. Solange der Ursprungspost auf der ersten Seite ist, funktioniert alles richtig, leider nicht mehr, wenn er sich auf Folgeseiten befindet, zb
    index.php?forum-showposts-1100-p2#11414.
    Hat jemand dafür eventuell eine Lösung?
    Danke und Gruß Outi
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Das einfachste wäre wohl, eine extra Seite "dazwischen zu schalten", beispielsweise ?forum-showpost-11414, diese kann dann mit ein bisschen "rumgerechne" herausfinden, in welchen Thema und auf welcher Seite der eigentlich Post ist und ein redirect zu ?forum-showposts-1100-p2#11414 machen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    OK ales klar, danke für den Tipp mit der "Zwischenseite". Da ich das Zitieren allerdings ohne Neuladen der Seite, sondern per ajax-Request, durchführe, übergebe ich einfach die Page mit und setze den Link direkt damit zusammen.
    Funktioniert soweit fehlerfrei.
    Danke!
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Einen kleinen Nachteil gibt es bei deiner Methode. Falls man in den Optionen die Anzahl der Beiträge pro Seite ändert, könnte der generierte Link falsch sein.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    OK also ich habs mal getestet:
    http://www.le-graphics.de/index.php?forum-showposts-1100-p10#11435

    http://www.le-graphics.de/index.php?forum-showposts-1100-p2#11435

    ZitatZitat geschrieben von Outi77
    übergebe ich einfach die Page mit und setze den Link direkt damit zusammen.

    Ich "berechne" die Page vor dem Übergeben ja genau so wie sonst auch, eine Änderung der Posts pro Seite sollte demnach eigentlich keine Auswirkungen haben.
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Ja bei der Generierung funktioniert das natürlich, es geht mir eher darum, dass die Einstellung nach der Generierung geändert wird.

    Kann natürlich auch sein, dass ich dich falsch verstanden hab. Ich dachte du erzeugst eben ein Link www.le-graphics.de/index.php?forum-showposts-1100-p10#11435 und nutzt ihn direkt im BBCode.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    OK nach der Generierung die Einstellung ändern bringt in meinem Fall natürlich nix. Dann werde ich wohl doch mal Deine Idee umsetzen... zunge
    OK dein Weg funktioniert besser. Ich hatte bei Deiner ersten Erwähnung noch gedacht, dass das sicher verdammt kompliziert ist. Ist es aber nicht und wie gesagt, funktioniert auch noch, nachdem die angesprochene Einstellung geändert wurde. Danke Dir für den nächsten super Tipp!!!


    Zuletzt modifiziert von Outi77 am 09.02.2017 - 19:17:08
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Nur nochnmal zum Abgleich, vll gehts ja auch einfacher?
    Meine "Zwischenseite" habe ich ?forum-showposts-getpost-7544 genannt...
    } elseif ($menu->get(2) == 'getpost') {
        $pid = (int) $menu->get(3);
        # Thema zum Post
        $tid = db_result(db_query("SELECT tid FROM prefix_posts WHERE id = " . $pid),0);
        # Posts pro Seite
        $limit = $allgAr['Fpanz'];
        # der wievielte Post in diesem Thema?
        $abf_posts = db_query("SELECT id FROM prefix_posts WHERE tid = " . $tid . " ORDER BY id ASC");
        $i = 1;
        while ($row_posts = db_fetch_assoc($abf_posts)) {
            if ($row_posts['id'] == $pid) {
                $post_count = $i;
            }
            $i++;
        }
        $post_page = ceil($post_count / $limit);
        
        # redirect
        header('Location: index.php?forum-showposts-'.$tid.'-p'.$post_page.'#'.$pid);
    }
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Also du kannst die Posts direkt in einem SQL-Abfrage zählen.

    SELECT COUNT(id) FROM prefix_posts WHERE tid = $tid AND id < $pid ORDER BY id;

    Bei deiner Lösung, wäre eine Verbesserung in dem if in deiner while Schleife, diese mit break zu beenden, da dass Weiterzählen danach unnötig ist.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.205
    Beitragswertungen
    130 Beitragspunkte
    Danke Dir, manchmal kann es so einfach sein zwinker
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten