FlatPress Wiki

Everything you need to know :)

User Tools

Site Tools


de:doc:plugins:bbcode:tips

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

de:doc:plugins:bbcode:tips [2019/01/12 17:53] (current)
Line 1: Line 1:
 +====== 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.
 +
 +
 +
 +
 +<code php>
 +custombbcode.php
 +----------------------
 +<?php
 +
 +// this will tell FlatPress to load the new tags at the very beginning ​
 +
 +add_filter('​init',​ '​plugin_custombbcode_tags'​);​
 +
 +// here you define a function. In this case we're creating an acronym tag
 +
 +function plugin_custombbcode_tags() {
 +       ​$bbcode = plugin_bbcode_init();​ //import the "​global"​ bbcode object into current function
 +                                         // this way 
 +                                         // a) parsing is done only once, and by the official plugin
 +                                         // b) you create only ONE object, and therefore computation is quicker
 +        $bbcode->​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 <acronym title="​Cascading Style Sheet">​css</​acronym>​
 +
 +    return "<​acronym title=\"​$content\">​{$attributes['​default'​]}</​acronym>";​
 +
 +
 +}
 +?>
 +
 +</​code>​
  
de/doc/plugins/bbcode/tips.txt · Last modified: 2019/01/12 17:53 (external edit)