2017 © Pedro Peláez
 

symfony-bundle fm-bbcode-bundle

Symfony FMBbCodeBundle

image

sgrodzicki/fm-bbcode-bundle

Symfony FMBbCodeBundle

  • Wednesday, December 9, 2015
  • by sgrodzicki
  • Repository
  • 1 Watchers
  • 1 Stars
  • 62,816 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 32 Forks
  • 0 Open issues
  • 4 Versions
  • 1 % Grown

The README.md

FMBBCodeBundle

Build Status, (*1)

knpbundles.com, (*2)

PHP-Decoda integration in Symfony2, (*3)

A lightweight lexical string parser for BBCode styled markup., (*4)

Installation

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

Step 1: Installation

Using Composer, just add the following configuration to your composer.json:, (*6)

Or you can use composer to install this bundle: Add FMBbcodeBundle in your composer.json:, (*7)

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

Now tell composer to download the bundle by running the command:, (*8)

``` bash $ php composer.phar update helios-ag/fm-bbcode-bundle, (*9)


### Step 2: Enable the bundle Finally, enable the bundle in the kernel: ``` php <?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new FM\BbcodeBundle\FMBbcodeBundle(), ); }

Step 3: Dump emoticons (optional)

To enable emoticons via emoticon hook, use the following command to copy emoticons images to public folder (web/emoticons), (*10)

``` bash ./app/console bbcode:dump, (*11)


## 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], [abbr], [br], [hr], [time] BBCodes ### Examples to use the extension in your Twig template Define BBCode filter in your config.yml: ``` yaml fm_bbcode: filter_sets: my_default_filter: locale: ru xhtml: true filters: [ default ]

And you can do the following:, (*12)

``` jinja {{'[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')}}, (*13)


``` yaml 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:, (*14)

``` jinja {{'[quote="helios"]My quote[/quote]'|bbcode_filter('my_default_filter')}}, (*15)


Also you can define multiple filter sets under filter_sets parameter like this: ``` yaml 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 ]

``` jinja {{'[quote="helios"]My quote[/quote]'|bbcode_filter('my_forum_filter')}} {{'[code]My source code[/code]'|bbcode_filter('my_comment_filter')}}, (*16)


Please keep in mind, that whitelist tags suppress tags, that applied by filters configuration. ### Strip filter To clear text from any bbcodes use bbcode_clean filter: example: ``` jinja {{'[b]some text[/b]'|bbcode_clean}}

This filter will eliminate any known to decoda tags, (*17)

Advanced configuration

Overriding messages

Some templates and hooks, use text strings, that can be translated into different languages, the original file located under decoda/config directory, but content of this file can be overriden with messages option, under messages: node. File should be json formatted., (*18)

fm_bbcode:
    config:
      messages: @SomeBundle/Resources/config/messages.json

Adding own templates

Your own templates can be defined at templates node, the example below shows how:, (*19)

    fm_bbcode:
        config:
          templates:
            - path: @SomeBundle/Resources/views/templates

Template examples can be found inside decoda library, (*20)

Adding own filter

To enable a custom filter, add it as a regular service in one of your configuration, and tag it with fm_bbcode.decoda.filter:, (*21)

services:
  acme_demo.decoda.filter.your_filter_name:
    class: Fully\Qualified\Filter\Class\Name
    tags:
      - { name: fm_bbcode.decoda.filter, id: your_filter_name }

Your service must implement the Decoda\Filter interface., (*22)

If your service is created by a factory, you MUST correctly set the class parameter for this tag to work correctly., (*23)

Adding own hook

To enable a custom hook, add it as a regular service in one of your configuration, and tag it with fm_bbcode.decoda.hook:, (*24)

services:
  acme_demo.decoda.hook.your_hook_name:
    class: Fully\Qualified\Hook\Class\Name
    tags:
      - { name: fm_bbcode.decoda.hook, id: your_hook_name }

Your service must implement the Decoda\Hook interface., (*25)

If your service is created by a factory, you MUST correctly set the class parameter for this tag to work correctly., (*26)

Customize your own emoticons

Your own emoticons can be defined at emoticon node, the example below shows how:, (*27)

fm_bbcode:
  emoticon:
    resource: path/to/emoticons.yml
# path/to/emoticons.yml
imports:
  - { resource: path/to/another/emoticons.yml }

emoticons:
  my_emoticon:
    url:   # Default: %fm_bbcode.emoticon.path%/my_emoticon.png
    html:  # Default: <img src="%fm_bbcode.emoticon.path%/my_emoticon.png" alt="" >
    xHtml: # Default: <img src="%fm_bbcode.emoticon.path%/my_emoticon.png" alt="" />
    smilies:
      - ":my_emoticon:"

Contributors

The Versions

30/09 2012

3.x-dev

3.9999999.9999999.9999999-dev https://github.com/helios-ag/FMBbCodeBundle

Symfony FMBbCodeBundle

  Sources   Download

MIT

The Requires

 

by Al Ganiev

bbcode