Stephan: bb-Code

Hallo,

ich habe mir jetzt alles vom BB-Code durchgelesen und habe auch das bbcode.inc.php auf meinem Server, lade es so:

require 'bbcode.inc.php';

$bbcode = new BBCode ();

Allerdings geht es nicht, wenn ich [img]jj[/img] schreibe, wird es auch genauso angezeigt, was muss ich tun?

Danke schon jetzt

Stephan

PS: BB-Code von Christian Seiler...

  1. Hallo Stephan,

    Erst einmal: Warum richtest Du die Frage nicht an mich, als Autor?

    ich habe mir jetzt alles vom BB-Code durchgelesen und habe auch das bbcode.inc.php auf meinem Server, lade es so:

    require 'bbcode.inc.php';

    $bbcode = new BBCode ();

    Ähm, hier definierst Du gar keine Codes, daher *kann* das auch gar nicht funktionieren. Die Klasse, die ich geschrieben habe, bietet keine vorgefertigten Codes an - sie bietet lediglich eine Möglichkeit, belieibge Codes zu definieren.

    Allerdings geht es nicht, wenn ich [img]jj[/img] schreibe, wird es auch genauso angezeigt, was muss ich tun?

    Einen Code 'img' definieren, der das bewerkstelligt, was Du willst.

    Ich glaube Du schaust Dir nochmal meine Beispieldatei http://www.christian-seiler.de/projekte/php/bbcode/bbcode_test.php.txt an...

    Viele Grüße,
    Christian

    1. Hallo,

      wusste nicht, dass Du auch hier bist ;-)

      Ich dachte, in der bbcode.inc.php hättest Du schon alles vordefiniert?

      Ich wollte das nämlich nur noch einbinden und benutzen, schade.

      ich habe mir Deine Beispieldatei nicht angesehen, da sie sehr zerflettert aussieht, der Code guggt da und dort mal raus, da dachte ich, es geht nicht...

      Muss ich noch in der bbcode.inc.php was definieren oder ist die von Dir schon vorgefertigt (die Du zum Download angeboten hast?)

      Danke schon jetzt

      Stephan

      1. Hallo Stephan,

        Ich dachte, in der bbcode.inc.php hättest Du schon alles vordefiniert?

        Nein.

        Muss ich noch in der bbcode.inc.php was definieren oder ist die von Dir schon vorgefertigt (die Du zum Download angeboten hast?)

        Also: Die bbcode.inc.php enthält *nur* die Klasse. Diese Klasse ist sehr generisch. Du kannst dort BBCodes nach Lust und Laune definieren. Die können auch das tun, was *Du* willst.

        Lies Dir bitte nochmal die komplette Anleitung *gründlich* durch, ich glaube Du hast sie noch nicht ganz verstanden... (http://www.christian-seiler.de/projekte/php/bbcode/)

        Viele Grüße,
        Christian

        1. Hi Christian,

          hast Du noch ein fertiges Ding von dem Code?

          Ich schaue mir die Beschreibung nochmal genauer an, wenn ich mal wieder Zeit dazu finde, jetzt möchte aber meine Schwester dringenst, dass sie auch Bilder einfügen kann und in allen Farben Fett und Kursiv schreiben kann, ich werde bald verrückt, ich kapiere den Code nicht, muss das aber bis heue Nacht fertig haben...

          Bitte hilf mir, wenn es nicht zu viel Arbeit macht, sonst muss ich mir was anderes überlegen...

          Vielen Dank schon im Vorraus

          Stephan

          1. habe d'ehre

            Bitte hilf mir, wenn es nicht zu viel Arbeit macht, sonst muss ich mir was anderes überlegen...

            Schaue Dir die Loesung von [url] an und es duerfte kein Problem sein selbige auf [img] umzusetzen.

            carpe diem
            Wilhelm

            1. Wie mache ich das, jetzt habe ich es geschnallt, das steht jetzt in meiner Datei:

              require 'bbcode.inc.php';

              function do_bbcode_url ($tag_name, $attrs, $elem_contents, $func_param, $openclose) {
                  // Tag hatte nicht das default-Attribut
                  if ($openclose == 'all') {
                      return '<a href="'.htmlspecialchars($elem_contents).'">'.
                          htmlspecialchars($elem_contents).'</a>';
                      // Tag hatte das default-Attribut und das hier ist der öffnende Tag
                  } else if ($openclose == 'open') {
                      return '<a href="'.htmlspecialchars($attrs['default']).'">';
                  // Tag hatte das default-Attribut und das hier ist der schließende Tag
                  } else if ($openclose == 'close') {
                      return '</a>';
                  // Irgendwas seltsames geht vor sich
                  } else {
                      // Fehler
                      return false;
                  }
              }

              $bbcode = new BBCode ();

              $bbcode->addParser ('htmlspecialchars', array ('block', 'inline', 'link'));
              $bbcode->addParser ('nl2br', array ('block', 'inline', 'link'));

              $bbcode->addCode ('b', 'simple_replace', null, array ('<b>', '</b>'),
                                'inline', array ('block', 'inline', 'link'), array ());
              $bbcode->addCode ('i', 'simple_replace', null, array ('<i>', '</i>'),
                                'inline', array ('block', 'inline', 'link'), array ());
              $bbcode->addCode ('url', 'usecontent?', 'do_bbcode_url', array ('default'),
                                'link', array ('block', 'inline'), array ('link'));

              Aber wi mache ich jetzt ein Bild, das habe ich nämlich in der Beschreibung nicht gefunden...

              Falls es in der Beschreibung doch ist, reicht die Überschrift, genauso mit den textfarben...

              Danke schon jetzt

              Stephan

              1. habe d'ehre

                Wie mache ich das, jetzt habe ich es geschnallt, das steht jetzt in meiner Datei:

                function do_bbcode_url ($tag_name, $attrs, $elem_contents, $func_param, $openclose) {
                    // Tag hatte nicht das default-Attribut
                    if ($openclose == 'all') {
                        return '<a href="'.htmlspecialchars($elem_contents).'">'.
                            htmlspecialchars($elem_contents).'</a>';
                        // Tag hatte das default-Attribut und das hier ist der öffnende Tag
                    } else if ($openclose == 'open') {
                        return '<a href="'.htmlspecialchars($attrs['default']).'">';
                    // Tag hatte das default-Attribut und das hier ist der schließende Tag
                    } else if ($openclose == 'close') {
                        return '</a>';
                    // Irgendwas seltsames geht vor sich
                    } else {
                        // Fehler
                        return false;

                $bbcode->addCode ('url', 'usecontent?', 'do_bbcode_url', array ('default'),
                                  'link', array ('block', 'inline'), array ('link'));

                Aber wi mache ich jetzt ein Bild, das habe ich nämlich in der Beschreibung nicht gefunden...

                Du hast die Funktion do__bbcode_url, also brauchst Du eine neue Funktion, z.B, do_bbcode_img und einen Aufruf fuer selbiges.. Das natuerlich <a href....> durch <img src.....> ersetzt werden muss duerfte klar sein, oder?

                Die Verarbeitung von [url] greift IMHO irgendwo noch auf die Pruefung auf Gueltigkeit zu. Die solltest Du natuerlich abklemmen. Mehr kann ich jetzt nicht dazu sagen, da ich an einem Rechner ohne Quellen von irgendwas sitze.

                carpe diem
                Wilhelm

                1. habe d'ehre

                  Die Verarbeitung von [url] greift IMHO irgendwo noch auf die Pruefung auf Gueltigkeit zu. Die solltest Du natuerlich abklemmen.

                  Bevor die Nachfrage kommt:

                  natuerlich fuer die [img}-Funktion

                  carpe diem
                  Wilhelm