====== Tipps für das BBCode Plugin ====== ===== Wie man eigene Tags definiert ===== Beim Einfügen von neuen bbcode-Tags ist es wichtig, die Änderungen nicht im Core-Plugin zu machen; dieses wird beim nächsten Update höchstwahrscheinlich überschrieben und die Änderungen wären verloren. Aber man kann ein **neues** Plugin mit eigenen Tags bauen, indem man an das bestehende Plugin anbaut. Mehr Infos über die in Flatpress verwendete bbcode-Klasse gibt es in der [[http://www.christian-seiler.de/projekte/php/bbcode/doc/de/kapitel1.php|offiziellen Dokumentation]]. Das Nachfolgende Beispiel zeigt, den Code für ein Akronym-Tag baut, welches das Kürzel als Attribut erwartet und die Erklärung als Inhalt des Tags(( Wenn du dich fragst, ob man so etwas auch in der alternativen Syntax-Schreibweise [acronym=Cascading Style Sheet]CSS[/acronym] realisieren kann: nein, das geht momentan nicht. Mehrere Worte sind als Tag-Attribute nicht erlaubt.)): [acronym=CSS]Cascading Style Sheet[/acronym] Auf deiner Webseite sieht das dann so aus: CSS. custombbcode.php ---------------------- addCode ( 'acronym', // tag name: this will go between square brackets 'callback_replace', // type of action: we'll use a callback function 'plugin_custombbcode_acronym', // name of the callback function array('usecontent_param' => array ('default')), // supported parameters: "default" is [acronym=valore] 'inline', // type of the tag, inline or block, etc array ('listitem', 'block', 'inline', 'link'), // type of elements in which you can use this tag array ()); // type of elements where this tag CAN'T go (in this case, none, so it can go everywhere) $bbcode->setCodeFlag ('acronym', 'closetag', BBCODE_CLOSETAG_MUSTEXIST); // a closing tag is mandatory [/tag] } // $content is the text between the two tags, i.e. [tag]CONTAINED TEXT[/tag] $content='CONTAINED TEXT' // $attributes is an associative array where keys are the tag properties. default is the [tagname=value] property function plugin_custombbcode_acronym($action, $attributes, $content, $params, $node_object) { if ($action == 'validate') { // not used for now return true; } // [acronym=css]Cascading Style Sheet[/acronym] // will become css return "{$attributes['default']}"; } ?>