![]() |
Adding a New Variable
Hi All,
I am trying to add a new variable to my vBulletin installation. My vBulletin deals with sensitive content, and I require that the Forum Name sent in various emails, to be different to the actual Forum Name. In other words, I need to mask the $vboptions[bbtitle] variable in certain places. What I have done is changed $vboptions[bbtitle] to $vboptions[bbtitle_discrete] in the required phrases and then basically I have created a new record in the `setting` table for the $vboptions[bbtitle_discrete] variable. This variable can now be edited in the adminCP, but the discrete forum name saved in this variable does not show up in the emails, or anywhere else for that matter. I'm not sure if this is the correct way to go about it, but that is what I have so far. Can anyone help me out, or suggest another way to do this? Thanks in advance. Remo |
Your code has to know that it is supposed to use the new variable.
You will need to edit the code and templates which display the name, and swap the variable over. Since its only emails you care about I'd concentrate on includes/functions_digest.php to start with |
Thanks Eikinskjaldi, I'm not sure if I'm on the right track though.
Like I said, I have replaced the variable in all of the phrases that I require and I have created the new variable in the `setting` table. I checked out the "includes/functions_digest.php" file and it does not look to have any relevance to my problem. It does not deal with pulling values from the setting table, it actually looks to pull stuff mainly dealing with threads and posts. Please advise if I am missing something? |
Can Anyone else offer any assistance on this?
Surely it can't be that difficult? Thanks. Remo |
I guess it depends on what you mean by "various emails", I assumed you were using the builtin digest system.
Can you give more information on exactly where and when the new phrase is supposed to be seen. A quick grep of the code shows 42 locations where bbtitle is used...sure you got them all? |
Thanks for your reply Eikinskjaldi.
Below is the list of phrases that I have edited to contain the variable $vboptions[bbtitle_discrete] in place of $vboptions[bbtitle]. Email Subject Text Phrases Containing 'bbtitle_discrete': - accountlocked - activateaccount_change - contactus - infraction_received - lostpw - moderation_deleted - moderation_validated - newuser - parentcoppa_profile - parentcoppa_register - payment_received - payment_reversed - pmboxalmostfull - pmboxfull - pmreceived - reportbadpost_discuss - reportbadpost_nodiscuss - resetpw - warning_received Email Body Text Phrases Containing 'bbtitle_discrete': - accountlocked - activateaccount - activateaccount_change - birthday - contactus - digestforum - digestthread - infraction_received_post - infraction_received_profile - lostpw - moderation_deleted - moderation_validated - moderator - newevent - newuser - notify - paidsubscription_reminder - parentcoppa_profile - parentcoppa_register - payment_received - payment_reversed - pmboxalmostfull - pmboxfull - pmreceived - reminder - resetpw - sendtofriend - usermessage - warning_received_post - warning_received_profile Where is it that the variable $vboptions[bbtitle] is set in the code? Does it have something to do with the $registry variable? I am assuming that it is pulled out of the Database, set once, and then it is available to all scripts, similar to a type of global variable. If I could find out how 'bbtitle' is declared so that it is available in all of these phrases, I could declare 'bbtitle_discrete' in a similar manner. Thanks Remo |
$vbulletin->options['bbtitle'] is used in files.
|
Great, thanks Dismounted.
What I need to know now is where that variable is assigned its value, once the value has been retrieved from the database. This is so that I can use the variable that I have added to the setting table in the same manner.. ie: $vbulletin->options['bbtitle_discrete'] |
Quote:
while name=>value option[name] = value I don't know where that would be. Here's a grep of all the include files that reference it, hope it helps adminfunctions.php:124: <b><a href="../<?php echo $vbulletin->options['forumhome']; ?>.php"><?php echo $vbulletin->options['bbtitle']; ?></a></b><br /> adminfunctions.php:260: case 'AdminCP': $titlestring = iif($title, "$title - ") . $vbulletin->options['bbtitle'] . " - vBulletin $vbphrase[admin_control_panel]"; break; adminfunctions.php:261: case 'ModCP': $titlestring = iif($title, "$title - ") . $vbulletin->options['bbtitle'] . " - vBulletin $vbphrase[moderator_control_panel]"; break; adminfunctions.php:262: case 'Upgrade': $titlestring = iif($title, "vBulletin $title - ") . $vbulletin->options['bbtitle']; break; adminfunctions.php:263: case 'Install': $titlestring = iif($title, "vBulletin $title - ") . $vbulletin->options['bbtitle']; break; adminfunctions.php:264: default: $titlestring = iif($title, "$title - ") . $vbulletin->options['bbtitle']; class_bbcode.php:2331: 'html' => '<a href="' . $prepend_path . 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . 't=%2$s" title="' . htmlspecialchars_uni($vbulletin->options['bbtitle']) . ' - ' . $vbphrase['thread'] . ' %2$s">%1$s</a>', class_bbcode.php:2345: 'html' => '<a href="' . $prepend_path . 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . 'p=%2$s#post%2$s" title="' . htmlspecialchars_uni($vbulletin->options['bbtitle']) . ' - ' . $vbphrase['post'] . ' %2$s">%1$s</a>', class_mail.php:196: $mailfromname = construct_phrase($this->fetch_first_line($vbphrase['x_mailer']), $vbulletin->options['bbtitle']); class_mail.php:200: $mailfromname = $vbulletin->options['bbtitle']; class_mail.php:218: $mailfromname = "$username @ " . $vbulletin->options['bbtitle']; functions_online.php:214: $userinfo['where'] = '<a href="' . $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'] . '">' . $vbulletin->options['bbtitle'] . '</a>'; functions_online.php:892: $userinfo['where'] = '<a href="index.php?' . $vbulletin->session->vars['sessionurl'] . '">' . $vbulletin->options['bbtitle'] . '</a>'; functions_online.php:933: $userinfo['where'] = '<a href="' . $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'] . '">' . $vbulletin->options['bbtitle'] . "</a>"; functions_online.php:947: $userinfo['where'] = '<a href="' . $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'] . '">' . $vbulletin->options['bbtitle'] . "</a>"; functions_online.php:963: $userinfo['where'] = '<a href="' . $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'] . '">' . $vbulletin->options['bbtitle'] . "</a>"; functions.php:2602: $title = $vbulletin->options['bbtitle']; functions.php:2730: $title = $vbulletin->options['bbtitle']; line numbers are for 3.6.6 |
Yeah,
I think these are the ones that I am concerned with: Quote:
I have changed these to be: $vbulletin->options['bbtitle_discrete'] but the problem is that when the emails are sent, this variable is empty. In the same progression of code, where would the: $vbulletin->options['bbtitle'] variable be getting its value? (From the Database I know) But where is it set? Quote:
Thanks for your help Eikinskjaldi. Can anyone else suggest a solution? Remo. |
How exactly have you created 'bbtitle_discrete' in the first place ?
|
Thanks for your reply Paul, please read my first post in this thread.
|
Hi, I'm still looking for a solution on this.. can anyone help?
|
When you answer my question, what steps exactly did you take to create it.
|
Hi Paul, Thanks for replying.
I created the variable through MySQL queries. Code:
INSERT INTO `setting` VALUES ('bbtitle_discrete', 'address', 'HC Support Forum', 'vBulletin Forums', '', 15, 0, 1, 'free', 'vbulletin', '', 0); The above queries allow me to edit the new variable in the adminCP. I assumed that since the variable is in the setting table (alongside the original variable - bbtitle), it would be simple for me to access it's value in the scripts, provided I ensure that it is being set. That's why I am trying to find out where the original variable - bbtitle - is set. Regards Remo |
You could've created that setting without running SQL queries of your own, that's what the Products are for. You could just change $vbulletin->options['bbtitle'] by using a plugin at global_start.
|
ok, thanks Dismounted, but...
I don't actually want to change $vbulletin->options['bbtitle'] everywhere, only in some places. That's why I created another variable, $vbulletin->options['bbtitle_discrete'] , so that I can use both. Also, I created it this way so that it can be edited in the adminCP. Could you explain how I would do this in the way of a plugin? Thanks Remo |
It depends where you want to change it.
|
If you go back to page 1 in this thread, one of my posts states all of the phrases I have changed 'bbtitle' to 'bbtitle_discrete'.
|
What you are trying to do would need a lot of changes in phrases, templates and worse code-edits.
I suggest you try to do it the other way round: Mask your bbtitle, create a new setting with the real title and use that in your regular templates (just a guess, probably only needed in header template). Not tried this but i have the feeling it would be a lot less work. |
Firstly, thanks to all who have posted to this thread.
I have now found a much easier way to do this. So this is for the people who may want to have this feature on their board (if any). Rather than creating a new variable in the `setting` table (which mind you would be nice and easy for non-coders to edit in the admin cp), I have simply created a plugin which hooks at global_start (thanks Dismounted), and is just one line of code. Code:
$vboptions['bbtitle_discrete'] = "My Discrete Forum Name"; Additionally, I had to replace the variable $vboptions['bbtitle'] to with $vboptions['bbtitle_discrete'] in all of the required phrases. -------------------------------------------------------------------------------------------------- Now here is some food for thought: I guess, one could probably still get this to work as I previously mentioned, with a new variable in the setting table. All you would have to do is modify the plugin to retrieve the setting from the database, before setting the variable in the plugin, so that the variable isn't "hard coded" so to speak. Maybe like this? (Please note: The following code is not complete, it is merely an attempt to show an idea.) SQL Code to add the new variable: Code:
INSERT INTO `setting` VALUES ('bbtitle_discrete', 'address', 'My Discrete Forum Name', 'vBulletin Forums', '', 15, 0, 1, 'free', 'vbulletin', '', 0); New Plugin Code: Code:
$con = the connection resource |
Poor coding form to use an extra query just to select that one row.
If you add it as a setting it will get pulled into the registry when the other settings do. If anything, i'd say you didn't rebuild the datastore when you ran those queries, therefore it wasn't cached and getting fetched. |
Hi Dilmah,
Where were you a month ago? Not even Moderators and a Board Coordinator could answer my questions as to why the setting value was not getting fetched. :confused: Which forced me to try and do this a different way. This is why I have removed the setting from the table and "hard-coded" it in a plugin. Thanks Dilmah. As for the rest of you, maybe you could take a leaf out of Dilmah's book on how to post a real reply to a question. |
It's more a matter of trying things sequentially. You had created the setting, however the way you did it was what's important.
I'd guarantee you both Paul and Dismounted at least would have arrived at the same conclusion - they were trying to answer the questions but needed more information, hence the questions about how you created the setting. |
Well, I thought I answered all of their questions.
It seems that you had all of the information you required to give me an answer, did you not? |
Hi all..
Quote:
Thanks. R. :) |
I'm also interested in an answer
|
<a href="http://members.vbulletin.com/api/vBulletin/_includes_adminfunctions_php.html#functionbuild_op tions" target="_blank">build_options</a>
BUT! You shouldn't be manually editing the database in the first place, if you enable debug mode on your test board and go into vBulletin Options you will find that you can create New Settings (and Setting Groups). This way vBulletin will take care of everything related to updating the datastore, adding a row to the table e.t.c. just make sure that you set a product for it and it will also be exported with the product XML. |
All times are GMT. The time now is 04:53 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 | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|