Go Back   vb.org Archive > vBulletin Modifications > vBulletin 3.8 Modifications > vBulletin 3.8 Add-ons

Reply
 
Thread Tools
Validate matching quote BBCode tags. Details »»
Validate matching quote BBCode tags.
Version: 1.3.0, by raywjohnson raywjohnson is offline
Developer Last Online: Jul 2023 Show Printable Version Email this Page

Category: BB Code Enhancements - Version: 3.8.0 Rating:
Released: 05-14-2009 Last Update: 09-17-2013 Installs: 37
Supported Uses Plugins
Re-useable Code Additional Files Translations  

Quotes Validation

I created this modification to help alleviate the need to edit posts that have invalid/mismatched QUOTE tags. For a busy forum, correcting bad QUOTE tags can become a big problem for your moderators.

Messages (new or edited) rejected by this mod will return the member to the post submission form with the phrase: "One or more of [quote] tags are missing or mismatched. All posts are required to have proper matching quotes."

I have been running it on my board for a month or so without problems. It may run on versions older then 3.8, but I have not tested that.

I have created a number of mods for my board, this is the first one I have released!

--RayJ

NOTE: Plugin works on vBulletin version 4

Description
Check new and edited posts for valid/matching open and close [quote] BBCode tags.
*Should* work with any number of nested or included quote tags.

Details
1 Product XML with 3 Plugins, 2 Phrases, 5 Settings, and 0 Queries
1 File/Class
No template modifications.

Files
class_verifyquotes.php
install.txt
license.txt
license-vqbc_rayj2009.txt
v1.3 = product-vqbc_rayj2009_1-3.xml
v1.2 = product-vqbc_rayj2009_1-2.xml
v1.1 = product-vqbc_rayj2009_1-1.xml
v1.0 = product-vqbc_rayj2009.xml

Upgrading
v1.0-v1.1 :
Upload class_verifyquotes.php file to the /includes/ directory
import product-vqbc_rayj2009_v1-1.xml (Allow Overwrite)
v1.(0/1)-v1.2 :
Upload class_verifyquotes.php file to the /includes/ directory
import product-vqbc_rayj2009_v1-2.xml (Allow Overwrite)
v1.(0/1/2)-v1.3 :
Upload class_verifyquotes.php file to the /includes/ directory
import product-vqbc_rayj2009_v1-3.xml (Allow Overwrite)

History
1.0
Initial Version
1.1
Added plugin: newpost_preview
Added setting: Auto Preview Mode.
If active, the system will automatically put you in preview mode, and display the error message in the post area, when QUOTE mismatches are found.
Added phrase: To display CSS around "in post" error message.
Bug Fix: versions v1.0 and v1.1 (Note: fix already applied to all versions)
Memory leak causes download dialog for all browsers (for large posts). Download quotes_validation_bugfix.zip (contains: class_verifyquotes.php) and upload it. Fixes all previously installed versions.
1.2
Added Option: Style (CSS) for error message
Added Option: Bad Quotes Error Message
This will let you edit the Error Message and CSS that controls the output without having to edit the phrase directly. I left the original phrase code in place so that it will not get wiped out when you upgrade. You will have to search for the phrase (vqbc_bad_quotes_error) and copy it to the new setting.
Changed the phrase that displays the "in post" error message to work with the new options.
1.3
Bug Fix: Removed recursion and complex regular expressions. These were causing issues with large posts.
Added Option: Ignored Tags (allows you to add tags to be ignored during validation, note: noparse is always ignored)

Notes
PHP 5.0+ required.
If you are still using PHP 4 (you should upgrade). Or you can edit the class_verifyquotes.php file and remove all public and private keywords (before each function). Then edit the product-vqbc_rayj2009_v1-1.xml file and remove the PHP 5.0 dependency line.

Download Now

File Type: zip quotes_validation_v1-3.zip (15.5 KB, 46 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #32  
Old 12-05-2011, 01:22 AM
raywjohnson's Avatar
raywjohnson raywjohnson is offline
 
Join Date: Feb 2007
Location: Las Vegas
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by xorex View Post
will be good if mod would have setting for exclude validate quotes inside tags

example: [code] [html] [php] e.t.c
I tested some code changes that would allow for this. It will work, but you will introduce a huge problem that this product was designed to defeat. Wild looking posts. Here is an example:

--------START

THIS:

[QUOTE ]Test[QUOTE ]Nest #1[QUOTE ]Nest #2[QUOTE ]Nest #3[/QUOTE ]
[QUOTE ]in No Parse[/QUOTE ]
[code ][QUOTE]in Code [/code ]
[php ][QUOTE]in PHP[/php ]
[/QUOTE ][/QUOTE ][/QUOTE ]

RENDERS AS THIS:

[QUOTE]Test[QUOTE]Nest #1
Quote:
Nest #2
Quote:
Nest #3
[QUOTE]in No Parse[/QUOTE]
Code:
Quote:
in Code
PHP Code:
[QUOTE]in PHP<div style="margin:20px; margin-top:5px; ">
    <
div class="smallfont" style="margin-bottom:2px">Quote:</div>
    <
table cellpadding="6" cellspacing="0" border="0" width="100%">
    <
tr>
        <
td class="alt2" style="border:1px inset">
            
                
            
        </
td>
    </
tr>
    </
table>
</
div
Quote:
[/QUOTE]

--------END

What is going wrong here? This product would tell you that the issue was mismatched quote tags. If you set it up to NOT detect this within PHP and CODE tags, then you might as well not use it at all.

--RayJ
Reply With Quote
  #33  
Old 12-05-2011, 01:37 AM
Max Taxable's Avatar
Max Taxable Max Taxable is offline
 
Join Date: Feb 2011
Posts: 3,134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Installed, tested, works like a charm. Great Mod, thanks!
Reply With Quote
  #34  
Old 12-05-2011, 01:58 AM
ravenscape's Avatar
ravenscape ravenscape is offline
 
Join Date: Mar 2008
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It looked the same, except for a comment. I replaced the code and saved the file anyway in case I missed something.

On testing, it still doesn't work.

Quote:
No data received
Unable to load the webpage because the server sent no data.
Here are some suggestions:
Reload this webpage later.
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
Reply With Quote
  #35  
Old 12-05-2011, 03:05 AM
raywjohnson's Avatar
raywjohnson raywjohnson is offline
 
Join Date: Feb 2007
Location: Las Vegas
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ravenscape View Post
It looked the same, except for a comment. I replaced the code and saved the file anyway in case I missed something.

On testing, it still doesn't work.
Oops! I just gave you the Parse function, here is the entire code (with remarks):

PHP Code:
/**
* Quotes Validation Class
*
* @product    vqbc_rayj2009
*
*/
class vqbc_VerifyQuotes {

  
/**
  * Parses the post message.
  *
  * @param  string  text to be validated for matching quote tags
  */
  
public function Parse($text) { //returns TRUE if bad quote found

    
$text preg_replace('#\[quote.*?\]#i','[quote]',$text);
    
$text preg_replace('#\[quote\]\[\/quote\]#i','',$text);
    
$text preg_replace('#\[noparse\].*?\[\/noparse\]#si','',$text);

    
$text $this->do_parse($text);
    return 
preg_match('/\[quote.*?\]|\[\/quote\]/si',$text);
  }

  
/**
  * sub-parsing function
  *
  * @param  string  (internal call only)
  */
  
private function do_parse($text) {
    if(
is_array($text)) { $text $text[1]; }
    
$regex '#\[quote\]((?:[^[]|\[(?!/?quote\])|(?R))+)\[/quote\]#i';
    return 
preg_replace_callback($regex,array($this,'do_parse'),$text);
  }


--RayJ
Reply With Quote
  #36  
Old 12-05-2011, 03:10 AM
ravenscape's Avatar
ravenscape ravenscape is offline
 
Join Date: Mar 2008
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

still doesn't work.

I'll reinstall from scratch tomorrow and see if it clears up.
Reply With Quote
  #37  
Old 12-05-2011, 04:09 AM
raywjohnson's Avatar
raywjohnson raywjohnson is offline
 
Join Date: Feb 2007
Location: Las Vegas
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ravenscape View Post
still doesn't work.

I'll reinstall from scratch tomorrow and see if it clears up.
Ok.

Also, what exactly does the system tell you when you have a quote with more than 8281 characters?

--RayJ
Reply With Quote
  #38  
Old 09-16-2013, 06:11 PM
Joe Blow Joe Blow is offline
 
Join Date: Aug 2004
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have had to disable this plugin for 4.x.x as it has been causing problems for those trying to post long posts in quote tags. My host narrowed it down to this plugin and sure enough, as soon as it was disabled all the posting issues went away.

A shame, as it is a useful plugin. Just doesn't seem to work.
Reply With Quote
  #39  
Old 09-16-2013, 07:50 PM
Max Taxable's Avatar
Max Taxable Max Taxable is offline
 
Join Date: Feb 2011
Posts: 3,134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Joe Blow View Post
I have had to disable this plugin for 4.x.x as it has been causing problems for those trying to post long posts in quote tags. My host narrowed it down to this plugin and sure enough, as soon as it was disabled all the posting issues went away.

A shame, as it is a useful plugin. Just doesn't seem to work.
It's a plugin for v3.8.x which might need some tweaking to be truly compatible with version 4.
Reply With Quote
  #40  
Old 09-16-2013, 10:42 PM
raywjohnson's Avatar
raywjohnson raywjohnson is offline
 
Join Date: Feb 2007
Location: Las Vegas
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Joe Blow View Post
I have had to disable this plugin for 4.x.x as it has been causing problems for those trying to post long posts in quote tags. My host narrowed it down to this plugin and sure enough, as soon as it was disabled all the posting issues went away.

A shame, as it is a useful plugin. Just doesn't seem to work.
If you could tell me what exactly it is doing, I could work on a fix. Did you get any errors in the php error log? Any errors or other output in the browser?

Quote:
Originally Posted by Max Taxable View Post
It's a plugin for v3.8.x which might need some tweaking to be truly compatible with version 4.
True. Thanks. I will to some testing on version 4 to see what I can find out.

--RayJ
Reply With Quote
  #41  
Old 09-17-2013, 05:52 PM
Joe Blow Joe Blow is offline
 
Join Date: Aug 2004
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by raywjohnson View Post
If you could tell me what exactly it is doing, I could work on a fix. Did you get any errors in the php error log? Any errors or other output in the browser?



True. Thanks. I will to some testing on version 4 to see what I can find out.

--RayJ
I am waiting on my host to respond to my request for additional info. In the meantime, you can take a look at this thread I started on vbulletin.com. The issue that I started the thread about was being caused by this plugin.

http://www.vbulletin.com/forum/forum...ong-post-error

This is what the host said in an email to me when this plugin was finally identified as the issue:

Quote:
Hey Joe, the class_verifyquotes.php plugin appears to be the culprit.
Are you able to disable that and confirm if it fixes it? I tried to
just rename the file but it's still getting called and giving a blank
page. While slightly better than a crash, i think disabling it or
updating that plugin ought to fix the problem.
Hope that helps.
Reply With Quote
Reply

Thread Tools

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 02:58 PM.


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.07247 seconds
  • Memory Usage 2,358KB
  • Queries Executed 26 (?)
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_code
  • (2)bbcode_php
  • (14)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (1)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)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_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_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete