duda: BB Code (Christian Seiler)

Hallo,

Ich habe mir die Klasse von christian-seiler.de heruntergeldaen und auf meinem Space installiert.
Cooles Tool und spart mir arbeit, sehr nice!!
Sollte man lizensieren... (Persönliche Meinung) oder zumindest einen Sponsor suchen.. egal
Jedenfalls suche ich jetzt noch irgendwas, was es mir erspart die codes selber hinzuzufügen:
ich hab die beiden dateien in mein verzeichnis geladen und ins eigene script müssen die codes ja folgendermasen geaddet werden damit die bbcodes funktionieren:

$bbcode->addCode ('b', 'simple_replace', null, array ('start_tag' => '<b>', 'end_tag' => '</b>'),
                  'inline', array ('block', 'inline'), array ());

$bbcode->addCode ('i', 'simple_replace', null, array ('start_tag' => '<i>', 'end_tag' => '</i>'),
                  'inline', array ('block', 'inline'), array ());

$bbcode->addCode ('u', 'simple_replace', null, array ('start_tag' => '<u>', 'end_tag' => '</u>'),
                  'inline', array ('block', 'inline'), array ());

kann ich mir das nicht sparen? ausserdem weiß ich nicht wie ich es hinbekomme [url=http://...]link[/url] zu aktivieren.

Ausserdem: Gibt es schon eine Kunden-Dokumentation die darauf spezialisiert ist, "unfähigen" den bb-code näher zu bringen? also dem letztendlichen anwender, der ja nur wenig ahnung hat.
das stelle ich mir so vor:

"schreiben sie [b]text[/b] um einen text fett darzustellen.
usw."

duda

  1. Hallo,

    kann ich mir das nicht sparen?
    Ausserdem: Gibt es schon eine Kunden-Dokumentation die darauf spezialisiert ist, "unfähigen" den bb-code näher zu bringen? also dem letztendlichen anwender, der ja nur wenig ahnung hat.
    "schreiben sie [b]text[/b] um einen text fett darzustellen.

    Das ist ja gerade das supere an der Klasse, dass man nicht nur darauf beschränkt ist, sondern sich alles selbst so zusammenbauen kann wie man es will, die Klasse ist total gelänkig. Ich habe ihm schon mal früher vorgeschlagen dass er mal so eine allgemeine Beispieldatei erstellen sollte, die die bbcodes, die man so als Anfänger immer haben will enthält, oder zumindest als Beispiel. Er meinte damals, dass er das irgendwann einmal einführen wird.

    Ich zum Beispiel nutze das ganze um aus

    [img=rechts alt="ein Pferd" title="es gehört mir"]1.jpg[/img]

    ein

    <img  
       src="/img/log/1.jpg"  
       alt="ein Pferd"  
       style="width: 150px;  
              height: 100px;  
              float: right;  
              margin: 0 0 1em 1em;"  
       title="es gehört mir"  
      />
    

    zu machen. Und es scheint mir eine der leichteren Aufgaben dieser Klasse zu sein. Auch kann ich dadurch unterscheiden ob es ein Bild von außerhalb oder von innerhalb der Seite ist. Das beste aber ist, die Absatzbehandlung, die mir erlaubt valide Seiten mit eingabe von Usern zu bauen.

    ausserdem weiß ich nicht wie ich es hinbekomme [url=http://...]link[/url] zu aktivieren.

    Aus der Dokumentation: Vollständiges Beispiel

    function do_bbcode_url ($action, $attributes, $content, $params, $node_object) {  
        if ($action == 'validate') {  
            return true;  
        }  
        if (!isset ($attributes['default'])) {  
            return '<a href="'.htmlspecialchars ($content).'">'.htmlspecialchars ($content).'</a>';  
        }  
        return '<a href="'.htmlspecialchars ($attributes['default']).'">'.$content.'</a>';  
    }
    

    und weiter unten:

    $bbcode->addCode ('url', 'usecontent?', 'do_bbcode_url', array ('usecontent_param' => 'default'),

    Ich hoffe ich konnte dir helfen.

    Grüße
    Jeena Paradies

    1. Hi,

      Das vollständige Beispiel ist super!

      Jetzt fehlt halt noch eine Dokumentation für die Anwender.
      Aber die kann man notfalls ja selber machen.

      Dann wäre da noch der Wunsch nach einem Formular (mit JavaScript):
      einfache Textarea mit einer zeile oben drüber mit den buttons F K U und LINK und IMG wie man es aus Foren kennt die dann den Code einfügen.

      Das wäre durchaus klasse.

      duda

      1. Hi duda,

        Jetzt fehlt halt noch eine Dokumentation für die Anwender.
        Aber die kann man notfalls ja selber machen.

        Die wirst du auch selber machen müssen - die _kann_ es gar nicht fertig geben, das hat Jeena ja versucht dir zu erklären.

        Jeder kann ja ganz anderen BB Code verweden. Du möchtest vielleicht [b]fett[/b] verwenden, ich jedoch vielleicht [fett]fett[/fett]. Du möchtest vielleicht [img:URL] verwenden, ich oder [bild:URL] - oder doch eher [image=URL]? Du willst [url=URL]Text[/url] verwenden, ich die Syntax vom Forum hier: Text.

        Aber das ist ja gerade das schön an dieser Klasse - jeder kann es verwenden wie er will, doch genau deshalb kann es eben keine End-User-Dokumentation geben. Es steht dir aber wie gesagt frei, eine zu schreiben ;-)

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        Ein wirklich weiser Mann spielt nie mit einem Einhorn Bockspringen. (Häfft)
      2. Hallo,

        Jetzt fehlt halt noch eine Dokumentation für die Anwender.
        Aber die kann man notfalls ja selber machen.

        Christian kann ja nicht wissen ob du für kursiven Text [i] oder [kursiv] oder [em] haben willst, er kann ja schon aus technischer Sicht keine Doku für deinen Anwender schreiben da er nur die Platform, so zu sagen eine kleine Beschreigungssprache (oder fast Programmiersprache) zur Verfügung stellt mit der man dann Seite Beschreibungssprache entwickeln kann.

        Dann wäre da noch der Wunsch nach einem Formular (mit JavaScript):
        einfache Textarea mit einer zeile oben drüber mit den buttons F K U und LINK und IMG wie man es aus Foren kennt die dann den Code einfügen.

        Dafür gibt es in den Tipps & Tricks ja den auf der Projekteseite verlinkten Artikel: Formulare: Text an Cursorposition einfügen den ich zur Zeit auch bearbeite um mehr funktionalität für meine Weblogsoftware zu bekommen. Meinen Aktuellen Stand kannst du im SVN sehen: http://wwwtech.de/svn/jlog/trunk/scripts/javascripts.js

        (Es ist die funktion jlog_insert(); und in der Funktion, die beim laden aufgerufen wird alles nach /* BBCode Buttons */ und vor googleSearchHighlight(); bei mir wird alles vor <br id='bbcode' /> in den Quelltext eingefügt. Aber ohne auf User zu achten, die kein JS anhaben ist es natürlich viel einfacher.)

        Grüße
        Jeena Paradies

        1. Hi,

          Formulare: Text an Cursorposition einfügen

          Das ist ja Perfekt!

          duda

        2. Hallo nochmal

          Jetzt suche ich noch nach einer Möglichkeit dem Anwender auch Tabellen erstellen zu lassen.
          BB-Code oder HTML ist einfach zu kompliziert für den Kunden.
          deshalb suche ich nach einem tool, welches sich evtl in einem PopUP öffnet und man dort eine Tabelle erstellen kann und diese dann mit einem klick auf submit in bbcode umgewandelt wird.

          duda

          1. Hallo,

            Jetzt suche ich noch nach einer Möglichkeit dem Anwender auch Tabellen erstellen zu lassen.

            Hi ich glaube mit BBCode wird es doch ziemlich schwierig, wenn auch nicht unmöglich, darüber habe ich mir noch nie Gedanken gemacht, weil ich denke dass man Tabellendaten wohl am ehesten mit schönen Formularen eingeben kann, also für jedes Tabellenfeld ein extra input Feld machen und die Daten dort eingeben lassen. Was willst du eigentlich damit konkret errreichen? Ich glaube für Tabellen ist wohl HTML fast am leichtesten zu erlernen.

            Grüße
            Jeena Paradies

            1. Ein kunde vom mir sollte auf jeden fall auch die Möglichkeiten haben, Inhalte seiner Website, die ich gerade erstelle, zu ändern.
              Dazu gehören auch Tabellen.

              Das mit den TextAreas hab ich mir auch so gedacht, aber dieser sollte dann entweder in BBCODE umgewandelt werden oder eben folgender maßen:

              Ein Button Table öffnet ein PopUp welches es ermöglicht Tabellen zu ändern oder zu erstellen. Diese Tabellen sind extra abgespeichert als mysql-tabelle.
              mit dem BBCODE [table]015[/table] bindet man dann diese Tabellen ein.

              $bbcode->addCode ('table', 'usecontent', 'do_bbcode_table', array (),
                                'table', array ('listitem', 'block', 'inline', 'link'), array ());

              function do_bbcode_table ($action, $attributes, $content, $params, $node_object) {
                  if ($action == 'validate') {
                      return true;
                  }

              # mysql connection -> mit $content als ID

              return $table;
              }

              So würde ich das nun lösen...
              duda

              1. Hallo,

                oder eben folgender maßen:
                mit dem BBCODE [table]015[/table] bindet man dann diese Tabellen ein.
                So würde ich das nun lösen...

                Ja das ist schon vernünftig meiner Meinung nach.

                Grüße
                Jeena Paradies

                1. hallo nochmal =)

                  Gibt es auch die Möglichkeit BBCodes einzurichten die folgendermaßen aussehen:

                  [xyz=123]

                  und nicht [xyz=123][/xyz]
                  oder [xyz]123[/xyz]

                  und wenn ja wie?

                  duda

                  1. Hallo,

                    Gibt es auch die Möglichkeit BBCodes einzurichten die folgendermaßen aussehen:
                    [xyz=123]

                    Ja, siehe simple_replace_single.

                    Grüße
                    Jeena Paradies

                    1. Hallo Jeena,

                      Gibt es auch die Möglichkeit BBCodes einzurichten die folgendermaßen aussehen:
                      [xyz=123]
                      Ja, siehe simple_replace_single.

                      Da ein Parameter übergeben wurde, eher callback_replace_single. Beispiel:

                      function do_bbcode_xyz ($action, $attributes, $content, $params, &$node_object) {  
                        if ($action == 'validate') {  
                          if (!isset($attributes['default'])) {  
                            return false;  
                          }  
                          return true;  
                        }  
                        return 'XYZ mit '.htmlspecialchars($attributes['default']).' angegeben!';  
                      }  
                        
                      //...  
                        
                      $bbcode->addCode ('xyz', 'callback_replace_single', 'do_bbcode_xyz', array (), 'inline', array ('block', 'inline', 'link'), array ());
                      

                      Viele Grüße,
                      Christian

          2. Hallo.

            Jetzt suche ich noch nach einer Möglichkeit dem Anwender auch Tabellen erstellen zu lassen.

            Falls du nicht gerade auf PHP angewiesen sein solltest, gibt es da etwas. Nur mit dem Zusammenspiel wird es wohl schwierig.
            MfG, at

    2. Hallo.

      die Klasse ist total gelänkig.

      Hehe, noch so einer, und mein Magen wird das auch.
      MfG, at

      1. echo $begrüßung;

        die Klasse ist total gelänkig.

        Hehe, noch so einer, und mein Magen wird das auch.

        Das ist für uns nicht weiter schlimm, es sei denn, dir gelänke es, ein Protokoll für KFÜ in jedem Rechner zwangsweise zu implementieren.

        echo "$verabschiedung $name";

        1. Hallo.

          Das ist für uns nicht weiter schlimm, es sei denn, dir gelänke es, ein Protokoll für KFÜ in jedem Rechner zwangsweise zu implementieren.

          Du züchtest Fragezeichen.
          MfG, at

          1. echo $begrüßung;

            Du züchtest Fragezeichen.

            Ich weiß. Ich sah schon viele von Fragezeichen verrunzelte Stirnen, deren Träger die aus dieser Art meiner Gedankengänge entstammendene Wortspielereien zu hören bekamen.

            echo "$verabschiedung $name";