Jump to content

Recommended Posts

Posted

We already have Markdown and Textile text formatters, so I thought we should have BBCode too. BBCode is a good text formatter to use when you'll be outputting untrusted user-supplied input. I think it's also a little simpler and more widely understood than Markdown and Textile, since it is used by many forums (including the ProcessWire forum, before we switched to IP.Board). More about the BBCode format can be found here: http://en.wikipedia.org/wiki/BBCode

This module uses the NBBC Library to handle BBCode parsing. I selected this one because it seems to be really well documented and also includes it's own set of smileys, for those that like that sort of thing. :rolleyes:

To install, clone it from the TextformatterBBCode GitHub page or download the ZIP file.

  • Like 1
Posted

Nice addition - could be very useful for user comment fields.

You can still type bbcode into these forums too by the way, just the editor makes it a little pointless really.

  • 10 months later...
Posted
So if you can't use this in a field set as TinyMCE (or CKEditor) how would one place/use the BBCode from Flickr for example?

Not sure I understand the question. What BBCode from Flickr? :)

Posted

Ah yes. Flickr has a way to embed an image elsewhere - there's a share icon on most images. You can either use html code or bbcode.

I'm thinking that it's an ok way to thread Flickr images through a blog post for example.

Posted

Interesting. I guess I'm not familiar with that Flickr BBCode. Can you post an example? I'm betting we can get Hanna code to make it happen. 

Posted

On Flickr you can either choose HTML embed code or BBCode.

Here's a BBCode example:

[url=

    ][img]http://farm6.staticflickr.com/5506/9061328126_bac63857c2_z.jpg[/img][/url]
[url=

    ]Pike reflection[/url] by [url=http://www.flickr.com/people/sparth/]sparth[/url], on Flickr

Here's the HTML example:

<a href="

    " title="Pike reflection by sparth, on Flickr"><img src="http://farm6.staticflickr.com/5506/9061328126_bac63857c2_z.jpg" width="640" height="426" alt="Pike reflection"></a>

I had that thought as well about using Hanna Code for this but couldn't figure out how to a) get that image url out of that BBCode and b) get around TinyMCE stripping it out completely.

Posted
Hanna code probably wouldn't work here looking at the code. We could write a Hanna code to do it, but you'd have to specify the href and src differently, like this:
[[flickr href="

    Pike reflection" src="http://farm6.staticflickr.com/5506/9061328126_bac63857c2_z.jpg"]]
It would be easy to make a Hanna code to do this, but of course you couldn't copy/paste a BBCode directly from Flickr using that method. So that kind of defeats the convenience purpose. You also probably don't want to apply the existing BBCode text formatter because it'll strip out your HTML. A new textformatter would be needed, that does nothing but convert BBCode without stripping HTML. Or, you could simply do this before outputting your $body field:
$body = $page->body;
if(strpos($body, '[url=') !== false) {
  $body = preg_replace(
    '{\[url=(.+?)\]\[img\](.+?)\[/img\]\[/url\]}', 
    '<a href="$1"><img src="$2" alt=""></a>', 
    $body);
}
echo $body;  

Not sure how we'd determine attributes like title, alt, width and height (or if you even need it). I'm guessing that would have to use an oEmbed service like the TextformatterVideoEmbed module does. 

  • 6 years later...
Posted

For anyone using this (not many i guess), I have updated the module for compatibility with newer versions of PHP.

https://github.com/outflux3/TextformatterBBCode

More info at the repo, but in short, this uses the new Vanilla Forums maintained version of Nbbc. The module is also PW 3.x only, as it uses namespaces.

One item of possible interest to module developers in this version is the use of the composer file loader (https://github.com/Wilkins/composer-file-loader) which allows the vendor folder to be loaded without any modification, and without needing to use Composer, sort of an on-the-fly package loader...

TL;DR:

With any newer version of PHP, and where the current/old version of module is instantiated, the following error was occurring.

PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; BBCodeLexer has a deprecated constructor in .../site/assets/cache/FileCompiler/site/modules/TextformatterBBCode/nbbc.php:67

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...