Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Adds BBCode support to Twig for your Symfony2 project
branch: master

This branch is 201 commits behind helios-ag:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Decoda
DependencyInjection
Resources/config
Templating
Tests
.travisci.yml
CHANGELOG.MD
FMBbcodeBundle.php
LICENSE
README.md
composer.json

README.md

PHP-Decoda integration in Symfony2

A lightweight lexical string parser for BBCode styled markup.

Installation

To install this bundle, you'll need both the Decoda library and this bundle. Installation depends on how your project is setup:

Step 1: Installation

Add the following lines to your deps file

[php-decoda]
    git=http://github.com/milesj/php-decoda.git

[FMBbcodeBundle]
    git=http://github.com/helios-ag/FMBbCodeBundle.git
    target=bundles/FM/BbcodeBundle

Run the vendors script::

./bin/vendors install

Or you can use composer to install this bundle: Add FMBbcodeBundle in your composer.json:

{
    "require": {
        "helios-ag/fm-bbcode-bundle": "*"
    }
}

Now tell composer to download the bundle by running the command:

$ php composer.phar update helios-ag/fm-bbcode-bundle

Step 2: Configure the autoloader

Add the following entries to your autoloader:

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    // ...
       'FM' => __DIR__.'/../vendor/bundles',
        // your other namespaces
    ));

$loader->registerPrefixes(array(
    //...
       'Decoda' => __DIR__.'/../vendor/php-decoda/decoda',
    // your other libraries
    ));

Step 3: Enable the bundle

Finally, enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FM\BbcodeBundle\FMBbcodeBundle(),
    );
}

Basic configuration

Make the Twig extensions available by updating your configuration:

By default only "default" filter enabled, which provide support
for [b], [i], [u], [s], [sub], [sup] BBCodes

Examples to use the extension in your Twig template

Define BBCode filter in your config.yml:

    fm_bbcode:
      filter_sets:
        my_default_filter:
          locale: ru
          xhtml: true
          filters: [ default ]

And you can do the following:

     {{'[b]Bold text[/b]'|bbcode_filter('my_default_filter')}}
     {{'[u]Underlined text[/u]'|bbcode_filter('my_default_filter')}}
     {{'[i]Italic text[/i]'|bbcode_filter('my_default_filter')}}
    fm_bbcode:
      filter_sets:
        my_default_filter:
          locale: ru
          xhtml: true
          filters: [ default, quote ]
          whitelist: [ b, quote ]

After enabling "quote" filter, you can do such things:

      {{'[quote="helios"]My quote[/quote]'|bbcode_filter('my_default_filter')}}

Also you can define multiple filter sets under filter_sets parameter like this:

    fm_bbcode:
      filter_sets:
        my_forum_filter:
          locale: ru
          xhtml: true
          filters: [ default, quote ]
          whitelist: [ b, quote ]
        my_comment_filter:
          locale: ru
          xhtml: true
          filters: [ default, block, code, email, image, list, quote, text, url, video ]
      {{'[quote="helios"]My quote[/quote]'|bbcode_filter('my_forum_filter')}}
      {{'[code]My source code[/code]'|bbcode_filter('my_comment_filter')}}

Please keep in mind, that whitelist tags overrides filters configuration.

Something went wrong with that request. Please try again.