Version: 3.001, by cellarius
Developer Last Online: Apr 2022
Category: BB Code Enhancements -
Version: 3.8.x
Rating:
Released: 06-07-2011
Last Update: Never
Installs: 16
Uses Plugins
No support by the author.
This addon allows for PHP-Code to be used in Custom BBCodes
It offers a framework for the easy integration and sharing of custom BBCodes that are based on PHP processing of the data entered by the user. It could, for example, be used to develop BBCodes that work with multiple options or to poll database information. It does allow for the Admin to use PHP in the Backend - it does, of course, not allow this to forum visitors.
You need to know PHP to use this Addon to develop your own PHP based bbcodes, however it would be possible to share them as an extension to this addon.
Installation:
- install the product file - done.
Using PHP in Custom BBCodes:
Create your Custom BBCode as always, and just put your PHP into the Replacement box (where the HTML used to go).
Just remember two things:
Your code needs to start with <?php
You need to return the result of your code.
If you're unsure what that means, read the php manual on eval() and look at the evaltest example in the second post.
For coders: include instead of eval
If you'd rather store the PHP for your new BBCodes in the file system for ease of development, that's possible, too:
create a folder called "custombbcodes" in your forum root
in that folder, create a php file that copies your BBCode Tag Name (ie. if your tag name is "includetest", the file needs to be called "includetest.php"). That's where your PHP goes.
in the Replacement box in the Custom BBCode Dialog, just put the word "include", nothing else
Since there's no eval() here, no need to return the result. Instead, it needs to go into $parsed.There's also an includetest example in the second post.
No Support for your PHP-Code!
### See the example BBCodes in the second post (Click)! ###
### Don't forget to click install! ###
(No support if you don't)
Additionally, you need to create a directory called custombbcodes, and in it create a file called includetest.php with the following code:
PHP Code:
<?php /* Please note:
- available variables: param => $value, option => $option remember: [bbcode=option]param[/bbcode] - all output needs to go to $parsed no return statement needed (different from direct eval method) so don't use echo "Hello World", but $parsed = "Hello World" */
$parsed = "Test per include (here option was used): "; $parsed .= "Parameter = <strong>" . $value . "</strong>, "; $parsed .= "Option = <strong>" . $option . "</strong>";
Been in further contact with troyuncucom. If you want to use include in your PHP code, make sure there is PHP Code in the file you include. Because of how vB works it is not possible to just throw text in there and have it printed to the screen. This will cause a cookie error/header already sent.
You need to make sure that you don't print to the screen directly; all output needs to go to a variable and needs to be correctly returned/passed. Please look at the examples in second post!
Those are not errors caused by this plugin, but by the code you're trying to run. What you can do and can't do is subject to the same limits as general vB plugin coding, since you're acting within the same framework.
Your first point I don't understand, and regarding your second point: Edit and save the message once again. Post output is cached.
Isn't parsed BBcode in posts cached if you enable the vb post cache? If so, that would mean that writing custom code to hide things from guests wouldn't be of much help, right?
Not bbcodes are cached, but the entire post (as I wrote in the post above). Hiding things would have to be done at runtime, like the existing hide hacks do. This is not something this framework provides, you would have to do that yourself.
Edit: Thinking about it - you could clear the post from postcache at runtime using something like this:
PHP Code:
delete from postparsed where postid=x
One would have to test if this could be of use in the environment my addon creates, or whether a seperate plugin could be created that deletes a post from postcache when a certain custom bbcode is present, or a plugin that keeps a post from being entered into postcache in the firstplace if a certain custom bbcode is present.