User Tools

Site Tools


it:doc:plugins:bbcode:tips

BBCode Plugin trucchetti

Traduzione italiana (a tratti libera) del documento Adding custom BBCode.

Luciano P. 2007/07/05

Come aggiungere un tag personale

Se si ha la necessità di aggiungere un nuovo tag BBCode, non è consigliabile modificare il plugin esistente, poichè all' eventuale successivo rilascio di FlatPress si è costretti a rifare da capo la modifica!

Si consiglia di creare un nuovo plugin in modo da poterlo usare anche nelle successive release.

Per altre informazioni sul BBCode di FP leggere questo documento: official documentation.

In questo esempio si vedrà come implementare l' elemento acronym grazie ad un tag del tipo [acronym=CSS]Cascading Style Sheet[/acronym] 1) che genererà una cosa di questo tipo: CSS

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>";
 
 
}
?>
1) se vi state chiedendo se è possibile creare un tag alternativo come ad esempio [acronym=Cascading Style Sheet]CSS[/acronym], sappiate che per ora non è possibile! Non sono infatte ammesse più parole nell' attributo del tag
it/doc/plugins/bbcode/tips.txt · Last modified: 2012/01/22 04:29 by renihummel