vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   Quote Notification (https://vborg.vbsupport.ru/showthread.php?t=112498)

Krofh 04-07-2006 10:00 PM

Quote Notification
 
Quote Notification

Note: This hack does not work in vBulletin 3.6. If someone would like to port it, that's fine with me, but I don't feel like updating this particular hack.

Description: This plugin will add a "Quote Notification" option for users to select. If selected, they will receive a notification by PM whenever someone quotes them in a post.

Installation:
  • Import the product XML file
  • Go to your User CP > Edit Options and select "Quote Notification" if you like
  • If you want to change the content of the PM that gets sent, the phrases are quotenotify_subject and quotenotify_message
  • The email notification has a separate phrase, quotenotify_emailmessage
  • If you want to change the Profile Field options, find the "Quote Notification" field in your User Profile Field Manager in the ACP.
  • If you want to set a default user for the notification PMs to be sent through, go to ACP > vBulletin Options > Message Posting and Editing Options > Quote Notification Sender; set it to 0 for the sender to be whoever did the quoting

Warning: DO NOT change the title of the Profile Field from "Quote Notification", or the values from "Private Message", "Email", and "No" or this hack will not work. :(

Contains:
  • 1 Plugin
  • 1 Profile Field
  • 2 Phrases

This hack is somewhat similar to Who quoted me?, but still considerably different, and if your forum is concerned about quotes then both could probably go rather nicely together.

Version History:
1.0.2
- Fixed compatibility issues with Backlink For Quotes
- Added option for notification by Email or Private Message
- Added ACP option for one specific PM sender or for the PMs to be sent by the user who did the quoting (original functionality)
1.0.1
- Fix for users with apostrophes
1.0
- Original version


Please click install. :)

Krofh 04-08-2006 09:55 PM

First post, one moment while I upload files... done.

Barakat 04-09-2006 12:33 AM

thanks ...installed i will try it

Desihunk 04-09-2006 12:48 AM

Nice hack actually :)

Might use it in the future

[high]* Desihunk says thanks.[/high]

NiTRoN 04-09-2006 04:02 AM

How do I make it so its enabled by default for every user, untill they decide to turn it off?.. possible make a global seting option somewhere in USERGROUPS or ACP? :) Otherwise spelendit hack...

Krofh 04-09-2006 04:15 AM

^ That's a good idea, but it'd be tricky to do since this isn't done through normal ACP options/bitfields but the Profile Field Manager. I suppose you could go into phpMyAdmin to your "userfield" table, and set the default value of whatever column that field ended up at to "Yes" :p I'll have to think about how to do that.

mholtum 04-09-2006 06:37 AM

I dont see the option to turn it on.. Hmm

mholtum 04-09-2006 06:38 AM

Found it

ryancooper 04-09-2006 02:37 PM

This looks promising.. .

ForYou 04-09-2006 06:49 PM

Hello ,

how can i set option enabled by default for every user ,

Is there some qeury to do it ,

Regards

Krofh 04-10-2006 04:48 AM

Since everyone seems to want to be able to set this enabled by default...
  • Log into your Admin Control Panel
  • Go to User Profile Fields > User Profile Field Manager
  • Locate the "Quote Notification" field, and click "Edit"
  • In the big "Options" textbox, switch "Yes" and "No" so that "Yes" is first. This will make "Yes" the default option.
  • Make sure the "Set Default" option is set to "Yes" as well
  • Save your changes

Snake 04-10-2006 06:38 PM

Thanks, I'll give this a shot!

hambil 04-12-2006 03:19 AM

Nice hack.

*clicks install*

SpankMe 04-16-2006 04:44 AM

Got the following SQL error

Invalid SQL:
SELECT user_table.userid AS userid, profile_fields.field21 AS wantquotenotify FROM user AS user_table LEFT JOIN userfield AS profile_fields ON (user_table.userid=profile_fields.userid) WHERE user_table.username='Brian d'marge' GROUP BY user_table.userid;

Need to change:
PHP Code:

$quoteuserquery $vbulletin->db->query_first("SELECT user_table.userid AS userid, profile_fields.field" $quotegetfieldquery['profilefieldid'] . " AS wantquotenotify FROM " TABLE_PREFIX "user AS user_table LEFT JOIN " TABLE_PREFIX "userfield AS profile_fields ON (user_table.userid=profile_fields.userid) WHERE user_table.username='" $kr_load[$kr] . "' GROUP BY user_table.userid"); 

to:
PHP Code:

$quoteuserquery $vbulletin->db->query_first("SELECT user_table.userid AS userid, profile_fields.field" $quotegetfieldquery['profilefieldid'] . " AS wantquotenotify FROM " TABLE_PREFIX "user AS user_table LEFT JOIN " TABLE_PREFIX "userfield AS profile_fields ON (user_table.userid=profile_fields.userid) WHERE user_table.username='" $vbulletin->db->escape_string($kr_load[$kr]) . "' GROUP BY user_table.userid"); 

so as to escape the username as it contained a single quote in above error.

Krofh 04-17-2006 04:09 AM

Ahh, indeed. Thanks for noticing and fixing that, I'll go post an updated version now.

... done.

sinaluna 04-17-2006 10:19 PM

I really like the sound of this. But I haven't been able to get it to work. Was there supposed to be a php file to download also?

I don't get any error messages. But I don't get any PM's either. The setting is turned on in the User CP.

Krofh 04-18-2006 04:24 AM

Is the product enabled? There's no PHP, it's just the XML file... Is the profile field's name still "Quote Notification", and the values "Yes" and "No"? (sorry, this hack breaks if those are changed). I just tried installing this on a completely clean forum and it worked fine.

sinaluna 06-28-2006 11:54 PM

I finally figured out the problem, though I am still working on finding a solution. I am also using the Back-Link for Quotes hack

https://vborg.vbsupport.ru/showthread.php?t=91282

and the link is interferring with this hack.

Example: [quote=testuser;326157]

Any ideas?

Krofh 06-29-2006 04:43 AM

Ahhh, I see what's causing it... obviously, there will be no user called "username;1324" :p anyways, I'm really tired right now and don't have the patience to test it thoroughly, but this should work...
1) Go to your Plugin Manager in the ACP
2) Edit the plugin "Quote Notification" under newpost_complete
Add the highlighted code:
Code:

$kr_load = array();
$kr_text = array();
if (preg_match_all("/\[quote=([^\\\"\]]*?)\](.*?)\[\/quote\]/is",$post['message'],$matches)>0) {
        for ($kr=0;$kr<count($matches[1]);$kr++){
                //echo $matches[1][$kr]."<br>";
                $matches[1][$kr] = (strpos($matches[1][$kr],";")) ? substr($matches[1][$kr],0,strpos($matches[1][$kr],";")) : $matches[1][$kr];
                if (strtolower($matches[1][$kr]) != strtolower($vbulletin->userinfo['username'])) {

I did some testing on my boards, and it worked fine, though like I said it wasn't very extensive. Let me know if that doesn't work.

COBRAws 06-30-2006 01:46 PM

This works great! Any way i can specify the sender?

I have an username for massive pm's and moderation reports i would lik to use for sending these pm's.

Thank you Jesse

Krofh 07-01-2006 04:48 AM

Hmmm, it's not currently an option but it's something I can consider adding. Right now, the sender is the person who quoted you.

dan35 07-01-2006 06:11 PM

How about email notifications instead of pm notifications? :)

Krofh 07-02-2006 04:10 AM

I suppose that's a good idea too... though can't you turn email notification on for when you get a PM, then it'll PM and email you? :p haha jk. I'll probably add all this stuff from the last several posts in about a week or so (this next week is crazy for me, no time for programming whatsoever) and release an updated version of the script.

Krofh 07-07-2006 09:22 PM

Updated as promised, with the above suggestions... Email/PM notification choice, and the ability to set what user sent the notification in the case of PMs.

dan35 07-08-2006 01:55 AM

Thank you, Krofh! Installed ;)

VietPirates 10-01-2006 07:42 AM

Any update for 3.6?


Code:

Invalid SQL:
SELECT profilefieldid FROM profilefield WHERE title='Quote Notification';

MySQL Error  : Unknown column 'title' in 'where clause'
Error Number : 1054
Date        : Sunday, October 1st 2006 @ 03:43:35 AM
Script      : http://www.domain.com/admincp/plugin.php?do=productkill
Referrer    : http://www.domain.com/admincp/plugin.php?do=productdelete&productid=quotenotify&s=



can't unisntall it.

Code:

Database error in vBulletin 3.6.0:

Invalid SQL:
SELECT profilefieldid FROM profilefield WHERE title='Quote Notification';

MySQL Error  : Unknown column 'title' in 'where clause'
Error Number : 1054
Date        : Sunday, October 1st 2006 @ 03:44:29 AM
Script      : http://www.domain.com/admincp/plugin.php?do=productkill
Referrer    : http://www.domain.com/admincp/plugin.php?do=productdelete&productid=quotenotify&s=


Krofh 10-02-2006 04:57 AM

^ Huh, that's not cool... they apparently removed the "title" column from the profilefield table in 3.6, and I can't seem to figure out where they moved it to :-/ try adding this at the very beginning of the uninstall code:

Code:

$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield ADD title VARCHAR (255)");
$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='[insert profilefieldid here]'");

and this at the end

Code:

$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");
That should add the title field, put "quote notification" in the one row, then find it and delete that row, then drop the title field again. Definitely don't use this on anything besides 3.6 though, otherwise it'll drop your title field in 3.5, which you actually kinda need.

Weiiiiirrrdddd, I wonder where they put those titles... I saw something about the datastore table, but I couldn't find them in there :-/ if anyone else knows, that'd be cool to know

VietPirates 10-03-2006 09:16 AM

Thank you, Krofh!

But got this error:

Code:

Invalid SQL:
UPDATE TABLE profilefield SET title='Quote Notification' where profilefieldid='[insert profilefieldid here]';

MySQL Error  : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE profilefield SET title='Quote Notification' where profilefieldid='[insert ' at line 1
Error Number : 1064


Tried again:

Code:

Invalid SQL:
ALTER TABLE profilefield ADD title VARCHAR (255);

MySQL Error  : Duplicate column name 'title'
Error Number : 1060


Uninstall Code:

Code:

$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield ADD title VARCHAR (255)");
$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='[insert profilefieldid here]'");
$gettheid = $db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$db->query_write("DELETE FROM " . TABLE_PREFIX . "profilefield WHERE profilefieldid='" . $gettheid['profilefieldid'] . "' LIMIT 1");
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field" . $gettheid['profilefieldid']);
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");


Krofh 10-04-2006 04:11 AM

Where it says {insert profileid here}, I meant for you to put the number of the profileid... since vB3.6 kinda broke this, you'll have to look it up yourself. Go to the User Profile Field Manager, look at the links on things, at the end it has profilefieldid={number}, the number on Quote Notification should be that one.

Btw, now that you added the TITLE field, take the
Code:

$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield ADD title VARCHAR (255)");
line out of it, and try again after fixing the number like I just said.

VietPirates 10-05-2006 04:37 AM

My profilefield is field21

Error:
Code:

Invalid SQL:
UPDATE TABLE profilefield SET title='Quote Notification' where profilefieldid='[field21]';

MySQL Error  : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE profilefield SET title='Quote Notification' where profilefieldid='[field21' at line 1
Error Number : 1064


Unisntall Code:
Code:

$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='[field21]'");
$gettheid = $db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$db->query_write("DELETE FROM " . TABLE_PREFIX . "profilefield WHERE profilefieldid='" . $gettheid['profilefieldid'] . "' LIMIT 1");
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field" . $gettheid['profilefieldid']);
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");

or

Code:

$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='[21]'");
$gettheid = $db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$db->query_write("DELETE FROM " . TABLE_PREFIX . "profilefield WHERE profilefieldid='" . $gettheid['profilefieldid'] . "' LIMIT 1");
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field" . $gettheid['profilefieldid']);
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");

or

Code:

$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='field21'");
$gettheid = $db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$db->query_write("DELETE FROM " . TABLE_PREFIX . "profilefield WHERE profilefieldid='" . $gettheid['profilefieldid'] . "' LIMIT 1");
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field" . $gettheid['profilefieldid']);
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");

or

Code:

$db->query_write("UPDATE TABLE " . TABLE_PREFIX . "profilefield SET title='Quote Notification' where profilefieldid='21'");
$gettheid = $db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$db->query_write("DELETE FROM " . TABLE_PREFIX . "profilefield WHERE profilefieldid='" . $gettheid['profilefieldid'] . "' LIMIT 1");
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "userfield DROP field" . $gettheid['profilefieldid']);
$db->query_write("ALTER TABLE " . TABLE_PREFIX . "profilefield DROP title");


Krofh 10-06-2006 04:48 AM

The last one... just the number itself.

VietPirates 10-06-2006 05:13 AM

Already tried all, Krofh! But didn't work.

Or can I drop its tables manually in phpmyadmin?

Krofh 10-06-2006 06:29 PM

Yes, I suppose you could do that... just drop the row with the quote notification, which seems to be #21 in your case. Argh, 'tis strange that they would remove some of these things in 3.6, I don't like it :( it doesn't help that this was one of my first hacks though, and I didn't code it very well :-/ sorry about the trouble.

distractme 10-08-2006 07:15 PM

Quote:

Originally Posted by Krofh
Updated as promised, with the above suggestions... Email/PM notification choice, and the ability to set what user sent the notification in the case of PMs.


We love your hack but we have run into a conflict with our alert system. We have 'alerts' set up to display as posts in a separate, staff only forum. The alerts include a quote of the post of the alerted post. Quote notifier rightly so. views it as any other quote and sends a PM to the person quoted, or in this case, alerted on. Since the text includes the name of the person who quoted them and the link refers them to a "no permissions" private forum, this basically tells them who alerted on their post.

Quote:

Jim has recently quoted you in a post he made. This user's quotes of you are:
Is there a way to drop the ID action from the text itself? Someway to change the text to a generic "Someone has recently quoted you" and retain the link to the post containing the quote?

Thank you.

Krofh 10-10-2006 12:58 AM

Quote:

Originally Posted by distractme
We love your hack but we have run into a conflict with our alert system. We have 'alerts' set up to display as posts in a separate, staff only forum. The alerts include a quote of the post of the alerted post. Quote notifier rightly so. views it as any other quote and sends a PM to the person quoted, or in this case, alerted on. Since the text includes the name of the person who quoted them and the link refers them to a "no permissions" private forum, this basically tells them who alerted on their post.

Cripe, I can't believe I didn't think of that when I made this. In your Plugin Manager in the ACP, edit the plugin "Quote Notification" under newpost_complete. Add this code at the very top and bottom of the plugin, changing the number 25 to whatever id your private forum is.
Code:

if ($post['forumid'] != 25) {
... all current code here ...
}

Quote:

Originally Posted by distractme
Is there a way to drop the ID action from the text itself? Someway to change the text to a generic "Someone has recently quoted you" and retain the link to the post containing the quote?

In the Phrase Manager of the ACP, look for the GLOBAL phrases "quotenotify_message" and "quotenotify_emailmessage". Those phrases are the PM and email phrases (respectively) that get sent to the quoted user, and you could easily modify those for your needs.

distractme 10-10-2006 11:19 AM

Quote:

Originally Posted by Krofh
Cripe, I can't believe I didn't think of that when I made this. In your Plugin Manager in the ACP, edit the plugin "Quote Notification" under newpost_complete. Add this code at the very top and bottom of the plugin, changing the number 25 to whatever id your private forum is.
Code:

if ($post['forumid'] != 25) {
... all current code here ...
}

In the Phrase Manager of the ACP, look for the GLOBAL phrases "quotenotify_message" and "quotenotify_emailmessage". Those phrases are the PM and email phrases (respectively) that get sent to the quoted user, and you could easily modify those for your needs.


thank you!!!. we will try that.

distractme 10-10-2006 09:27 PM

i have edited the cde to read

if ($post['forumid'] != 65) {


$kr_load = array();
$kr_text = array();
if (preg_match_all("/\[quote=([^\\\"\]]*?)\](.*?)\[\/quote\]/is",$post['message'],$matches)>0) {
for ($kr=0;$kr<count($matches[1]);$kr++){
//echo $matches[1][$kr]."<br>";
$matches[1][$kr] = (strpos($matches[1][$kr],";")) ? substr($matches[1][$kr],0,strpos($matches[1][$kr],";")) : $matches[1][$kr];
if (strtolower($matches[1][$kr]) != strtolower($vbulletin->userinfo['username'])) {
if (!in_array($matches[1][$kr], $kr_load)) {
$kr_load[] = $matches[1][$kr];
$kr_text[] = "
Quote:

Originally Posted by .$matches[1][$kr].
".$matches[2][$kr]."

";
}
else {
for ($kri=0;$kri<count($kr_load);$kri++) {
if ($kr_load[$kri] == $matches[1][$kr]) {
$kr_text[$kri] .= "
Quote:

Originally Posted by .$matches[1][$kr].
".$matches[2][$kr]."

";
break;
}
}
}
}
}
}
if (count($kr_load) > 0) {
for ($kr=0;$kr<count($kr_load);$kr++) {
//echo "<br>" . $kr_load[$kr];
$quotegetfieldquery = $vbulletin->db->query_first("SELECT profilefieldid FROM " . TABLE_PREFIX . "profilefield WHERE title='Quote Notification'");
$quoteuserquery = $vbulletin->db->query_first("SELECT user_table.userid AS userid, user_table.email AS email, profile_fields.field" . $quotegetfieldquery['profilefieldid'] . " AS wantquotenotify FROM " . TABLE_PREFIX . "user AS user_table LEFT JOIN " . TABLE_PREFIX . "userfield AS profile_fields ON (user_table.userid=profile_fields.userid) WHERE user_table.username='" . $vbulletin->db->escape_string($kr_load[$kr]) . "' GROUP BY user_table.userid");
$theurl = $vbulletin->options['bburl'] . "/showthread.php?p=" . $post['postid'] . "#post" . $post['postid'];
if ($quoteuserquery['wantquotenotify'] == "Private Message") {
// Override a potentially full inbox.
$senderpermissions['adminpermissions'] = 2;
$pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);

$qn_fromuserid = $vbulletin->userinfo['userid'];
$qn_fromusername = $vbulletin->userinfo['username'];
if ($vbulletin->options['quotenotify_sender'] > 0) {
$qn_fromuserid = $vbulletin->options['quotenotify_sender'];
$qn_fromtempuser = fetch_userinfo($qn_fromuserid);
$qn_fromusername = $qn_fromtempuser['username'];
}

$pmdm->set('fromuserid', $qn_fromuserid);
$pmdm->set('fromusername', $qn_fromusername);
$pmdm->set('title', $vbphrase['quotenotify_subject']);
$pmdm->set('message', construct_phrase($vbphrase['quotenotify_message'], $kr_load[$kr], $vbulletin->userinfo['username'], $kr_text[$kr], $theurl));
$pmdm->set_recipients($kr_load[$kr], $senderpermissions);
$pmdm->set('dateline', TIMENOW);

$pmdm->save();
//echo "curr url is " . $vbulletin->url;
//echo "send a pm to " . $kr_load[$kr] . "with contents " . $kr_text[$kr];
}
if ($quoteuserquery['wantquotenotify'] == "Email") {
vbmail($quoteuserquery['email'], $vbphrase['quotenotify_subject'], construct_phrase($vbphrase['quotenotify_emailmessage'], $kr_load[$kr], $vbulletin->userinfo['username'], strip_quotes($kr_text[$kr]), $theurl));
}
}
}
}


the alerted posts are still triggering a pm to the alerted person

Krofh 10-11-2006 05:20 AM

Ahhh, my mistake. Looking into it, it turns out the $post variable doesn't have the forumid... change the first line I had you put in:
Code:

if ($post['forumid'] != 65) {
To the following:
Code:

if ($threadinfo['forumid'] != 65) {
When I did that on my server, it worked fine.

distractme 10-11-2006 10:40 AM

Quote:

Originally Posted by Krofh
Ahhh, my mistake. Looking into it, it turns out the $post variable doesn't have the forumid... change the first line I had you put in:
Code:

if ($post['forumid'] != 65) {
To the following:
Code:

if ($threadinfo['forumid'] != 65) {
When I did that on my server, it worked fine.


Thank you! That did it. GREAT NEW FEATURE !

vbreal 11-15-2006 07:51 PM

is there a version for 3.6


All times are GMT. The time now is 05:31 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.01607 seconds
  • Memory Usage 1,873KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (20)bbcode_code_printable
  • (2)bbcode_php_printable
  • (8)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete