BBCodeParser
BBCodeParser is a standalone library that parses all(?) the common bbcode tags.
The easiest way to install is via composer and is equally as easy to integrate into Laravel 4, (*1)
The available tags are:, (*2)
- [b][/b] Bold
- [i][/i] Italic
- [u][/u] Underline
- [s][/s] Line through
- [size=4][/size] Font size
- [color=#eee][/color] Font color
- [center][/center] Center
- [quote][/quote] Quote
- [quote=John Doe][/] Named quote
- [url][/url] Link
- [url=http://example.com]example.com[/url] Named link
- [img]http://example.com]example.com/logo.png[/img] Image
- [ol][/ol] Ordered list
- [ul][/ul] Unordered list
- [*] List item
- [code][/code] Code
- [youtube][/youtube] Youtube
Installation
The easiest way to install the BBCodeParser library is via composer.
If you don´t now what composer is or how you use it you can find more information about that at their website., (*3)
Composer
You can find the BBCodeParser class via Packagist.
Require the package in your composer.json
file., (*4)
"guiz/bbcodeparser": "1.0.*"
Then you run install or update to download your new requirement, (*5)
php composer.phar install
or, (*6)
php composer.phar update
Now you are able to require the vendor/autoload.php file to PSR-0 autoload the library., (*7)
Example
// include composer autoload
require 'vendor/autoload.php';
// import the BBCodeParser Class
use Guiz\BBCode\BBCodeParser;
// Lets parse!
$bbcode = BBCodeParser::parse('[b]Bold[/b]');
If you´re a fan of Laravel 4 then the integration is made in a blink of an eye.
We will go through how that is done below., (*8)
Laravel 4 integration
The BBCodeParser Class has optional Laravel 4 support and comes with a Service Provider and Facades for easy integration. After you have done the installation correctly, just follow the instructions., (*9)
Open your Laravel config file config/app.php and add the following lines., (*10)
In the $providers
array add the service providers for this package., (*11)
'Guiz\BBCode\BBCodeParserServiceProvider'
Add the facade of this package to the $aliases
array., (*12)
'BBCode' => 'Guiz\BBCode\Facades\BBCodeParser'
Now the BBCodeParser Class will be auto-loaded by Laravel., (*13)
Example
By default all tags will be parsed, (*14)
BBCode::parse('[b]bold[/b][i]italic[/i]');
If you would like to use only some tags when you parse you can do that by doing like this, (*15)
// In this case the [i][/i] tag will not be parsed
BBCode::only('bold')->parse('[b]bold[/b][i]italic[/i]');
or, (*16)
// In this case all tags except [b][/b] will be parsed
BBCode::except('bold')->parse('[b]bold[/b][i]italic[/i]');
Custom Parsers
You can add new custom parsers or overwrite existing parsers., (*17)
// name, pattern, replace
BBCode::setParser('mailurl', '/\[mailurl\](.*)\[\/mailurl\]/', '<a href="mailto:$1">$1</a>');