Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 01-02-2006, 02:36 AM
Paul Paul is offline
 
Join Date: Jan 2002
Posts: 211
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Best practices recommendations for including conditionals in e-mail notification text

Hi,

I'm turning to the community for recommendations on how to best proceed with using vBulletin's (3.5) plugin system and existing hooks in order to conditionally include $pagetext in the new reply e-mail notification.

Currently, the e-mail text is stored as a phrase in vBulletin.
Unfortunately, vBulletin does not support conditionals in phrases and therefore a simple is_member_of() call wouldn't work to only supply the actual text of the reply in the notification based on usergroup (the intended goal).

To illustrate:
Usergroups X should receive e-mail notifications that include the body of the latest post as is the default in a new vBulletin installation.

Usergroups Y, however, should receive the traditional e-mail notification used in vB 2 that does not contain the text of the message, but merely a link back to the thread.

There appear to be two relevent hooks: newpost_notification_start and newpost_notification_message. There aren't any hooks in the while loop that actually processes the variables in the phrases, nor are there hooks in the replace_template_variables() function that does the dirty work.

My only thought at this time would be to use newpost_notification_message and do a regex search and replace after the variables have been processed before the e-mails are actually passed off to be sent, searching for $pagetext and replacing it with '' should the usergroup in $touser not match a predefined list (as defined by Usergroups X).

This seems less than elegant and perhaps I'm missing something, so I'm calling out to those who might be more experienced overcoming the placement of hooks in the code for some creative suggestions and pointers on how to accomplish this end goal.

Thanks for the assistance in advance!

Paul

Closer inspection of the code reveals a nasty fact. $message isn't evaluated until after the newpost_notification_message hook is called, rendering any changes to $message prior to the e-mail being sent out useless. I fail to see a way to implement this, unless there's a bit of PHP code that will tell the script to skip the next eval statement.
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 12:33 AM.


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.05460 seconds
  • Memory Usage 2,155KB
  • 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
  • (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)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