Location: PHPKode > scripts > BBEngine > bbengine/Examples/DB_Tag_Insertion_Examples.php
<?php
/**
 * This is a some examples about common operations of class
 * In order for Parsing & UnParsing examples to be useful
 * you must import the DB Backup given in DB Stated in your
 * Config file
 * @package Examples
 * @author Mohammed Yousef Bassyouni <hide@address.com>
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License 
 */
/**
 * Examples on Inserting Types of Tags to DB
 */
require ("../Config.php");
require ("../BBE_DB_Op.php");
$DBOp=new BBE_DB_Operations();
/**
 * First Adding a Direct Tag
 * our example here is the [center] famout BBCode
 * we replace it with <div> that has the arguments style="text-align: center;"
 * and give it a priority 1.23 (really just another number and for this case does't have impact)
 */
$DBOp->Add_Direct_Tag_BB("center","div","style=\"text-align: center;\"",1.23);
//-------------------------------
/**
 * Second Adding a Direct word
 * our example here is the famout :happy: smile
 * we directly replace it with an image
 * NOTE : Here a direct Case insensitive replace happen so be careful
 */
$DBOp->Add_Direct_Word_BB(":happy:","<img src=\"http://arabteam2000-forum.com/style_emoticons/default/happy.gif\" border=\"0\">",3.8);
//-----------------------------------
/**
 * Third Adding an Indirect Recursive tag
 * our example here is for a strange tag UPP to converts to upper case and optionally takes
 * a Strart and End points (e.g. [UPP Startm Start=2 End=4]Another Sad Story[/UPP])
 * First we provide the Replacing function (using heredoc NOTE TAKE CARE OF ESCAPING $ in heredoc
 * A very Appealing alternative is newdoc if you are using PHP >=5.3)
 * which is passed two varaibles Start and End
 *
 * After that the reversing function which converts BBCode to Html
 * In inserting we specify tag as recursive (as we can write [UPP] QQ CC[UPP]BB NN MM[/UPP]VV BB[/UPP])
 */
$Func=<<<EOF
if (!isset(\$Args['Start']) ||!isset(\$Args['End']))
return strtoupper(\$Data);
else
return strtolower(substr(\$Data,0,\$Args['Start'])).strtoupper(substr(\$Data,\$Args['Start'],\$Args['End']-\$Args['Start']+1)).strtolower(substr(\$Data,\$Args['End']+1));
EOF;
$R_Func=<<<EOF
\$c=0;
\$st=-1;
for (\$i=0;\$i<strlen(\$Data);\$i++)
{
    if (\$Data[\$i]<="Z" && \$Data[\$i]>="A")
    {
        \$c++;
        if (\$st==-1)\$st=\$i;
    }
}
\$end=\$st+\$c-1;
return "[UPP Start={\$st} End={\$end}]".strtolower(\$Data)."[/UPP]";
EOF;
$DBOp->Add_Indirect_BB("UPP","",mysql_real_escape_string($Func),"Upper Maker",3.9,1,mysql_real_escape_string($R_Func));
?>
Return current item: BBEngine