Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 12-17-2007, 06:13 PM
faqcorner faqcorner is offline
 
Join Date: Apr 2007
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

>_> erm the ones I need requires more parameters, so it kinda needs php plugins >_>' not the html version of that.... (I'll look at the wiki template parsing, because that's how the "type" or whatever I used "|")

--------------- Added [DATE]1197924829[/DATE] at [TIME]1197924829[/TIME] ---------------

um...can't find the coding that makes the templates in wikipedia...

but they do things similar to how I wanted, but dunno how to do it (just know it would require php and plugins

here's the post that has the php plugin for vb to make bbcodes using php:

Quote:
Originally Posted by Analogpoint View Post
Thanks Eikinskjaldi for the comments.

I had already opened up class_bbcode.php and had a look around. I figured out how to achieve this, and will post it here for posterity's sake.

This is a bid hackish, but it works, and uses the vB plugin system. There is no mucking with the *.php files, so upgrading shouldn't ruin it.

How to run PHP code, instead of a simple replacement, on your custom BBCode.

1. Create a custom BBCode in the ACP, so that the description/example will show up on the BBCodes faq page for your forums. Put whatever you want in the "replacement" field, as this is overwritten by the following plugin.

2. Create a plugin using the bbcode_create hook.

3. Add your plugin code, using a format similar to the following:

PHP Code:
$custom_bbcode 'xxxxx';

$this->tag_list['no_option'][$custom_bbcode] = array ();
$this->tag_list['no_option'][$custom_bbcode]['callback'] = 'handle_external';
$this->tag_list['no_option'][$custom_bbcode]['external_callback'] = 'handle_my_custom_bbcode';

if (!
function_exists ('handle_my_custom_bbcode')) {
    function 
handle_my_custom_bbcode (&$theobj, &$value, &$option) {

        
/*
            The $value varible now holds whatever was between your tags, 
            and $option holds the option
            [sometag=option_here]value here[/sometag]
        */
        
return 'the html to display your bbcode';
    }

Now, a few notes about that php. Replace the 'xxxxx' with the custom BBCode you want to create. If you are planning on using the option with the BBCode, change 'no_option' to 'option'.

In the function, do whatever manipulations you want to do, and then return the HTML that you want displayed in the actual post.

The $theobj variable is a reference to vB's BBCode parsing object, you probably won't need this.

If you use this method, you don't have to muck in any of vB's php files and the parser engine will correctly parse this and all other BBCodes correctly regardeless of nesting etc.

Hope this helps someone out there.


In closing, I just want to mention that I wish vB had a simple option to choose a simple HTML replacement, or add php code to the "Create a Custom BBCode" section. This hack/plugin shouldn't have been necessary.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:40 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03229 seconds
  • Memory Usage 2,223KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete