Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 09-27-2014, 04:53 PM
Azum Azum is offline
 
Join Date: Jun 2013
Posts: 52
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with plugin to strip table tags

Looking to strip table tags from posts on a particular style. I haven't put the if statement in yet for the styleid as the main code doesn't work.

Here is what I've been trying, with variations, but it never seems to work (created the phrase below):
Code:
hook location: postbit_display_start

$this->post['pagetext_html'] = preg_replace('/\[TABLE=.*?\](.*?)\[\/TABLE\]/si', construct_phrase($vbphrase['hidetable_message'], $session['sessionurl_q']), $this->post['pagetext_html'])
Guessing my regex is off...
Reply With Quote
  #2  
Old 09-27-2014, 05:29 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, post['pagetext_html'] probably contains html instead of bbcode. Maybe what you want to do is use hook bbcode_create to change $this->tag_list, and change the function that gets called to parse the table tag (check the current styleid if you only want it to change for one style).
Reply With Quote
  #3  
Old 09-27-2014, 06:24 PM
Azum Azum is offline
 
Join Date: Jun 2013
Posts: 52
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
Well, post['pagetext_html'] probably contains html instead of bbcode. Maybe what you want to do is use hook bbcode_create to change $this->tag_list, and change the function that gets called to parse the table tag (check the current styleid if you only want it to change for one style).
Well the code I borrowed this from will successfully remove .[img] tags:
Code:
$this->post['pagetext_html'] = preg_replace('/\[img\](.*)\[\/img\]/im', construct_phrase($vbphrase['hideimg_message'], $session['sessionurl_q']), $this->post['pagetext_html']);
with the same hook location, so I figured I was on the right track and the regex is just off. I will try it your way, but I'm not entirely sure I understand everything you said... maybe you could break it down into simpler terms for me.

Reply With Quote
  #4  
Old 09-27-2014, 07:32 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The posts are parsed from bbcode into html, and then the result is saved in the postparsed table so that it doesn't have to be done every time (it may be a feature that can be turned off, I'm not sure offhand). And the pagetext_html field is the parsed version. But I think for some reason IMG tags aren't preparsed, which is probably why the code you copied works for img tags.

I'm not sure offhand what [TABLE]...[/TABLE] ends up as in html. If there's any way to do your replacement with html tags, maybe you can do that. Otherwise, what I was talking about above would be done something like this:

hook location bbcode_create:
Code:
    
    $this->tag_list['option']['table']['callback'] = 'handle_external';
    $this->tag_list['option']['table']['external_callback'] = 'my_handle_table';
    $this->tag_list['no_option']['table']['callback'] = 'handle_external';
    $this->tag_list['no_option']['table']['external_callback'] = 'my_handle_table';
    if (!function_exists('my_handle_table'))
    {
        function my_handle_table($parser, $data, $option)
       {
           global $styleid;

           if ($styleid != X)
              return $parser->parseTableTag($data, $option);
           
           global $vbphrase, $session;
           return construct_phrase($vbphrase['hideimg_message'], $session['sessionurl_q']);
       } 
    }
where of course you'd change X to the styleid that you want.

I haven't tested the above at all, so I'm not certain about it. One thing is that this will do the replacement even for 'alt' bbcode parsers, like if it's being parsed to plain text for a preview or something. You may or may not want that, I don't know.

Sorry if this isn't broken down enough - feel free to ask more questions if it doesn't work like you want.
Reply With Quote
  #5  
Old 09-28-2014, 08:03 PM
Azum Azum is offline
 
Join Date: Jun 2013
Posts: 52
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, haven't had time to play with this but will give it a go later.
Reply With Quote
Reply

Thread Tools
Display Modes

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 03:19 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04078 seconds
  • Memory Usage 2,191KB
  • Queries Executed 13 (?)
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)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (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_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
  • 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