The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Trying to add PHP to my forums
I am trying to add this simple PHP code to scrape the latest currency to my forums. What is the best and easiest way? thanks,
<?php $today = date('Y-m-d'); $con = mysql_connect('localhost', 'user', 'passwd'); # please put appropriate values here if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("currency", $con); # please replace 'mydb' with your database name. $query = "SELECT cur_rate FROM currency WHERE cur_date = '$today' AND cur_code = 'PHP'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array( $result ); $php = $row['cur_rate']; echo $php; ?> i tried to write a plugin and used global_start as the hook and it worked one time and then went away and never came back. PLEASE HELP! also, while i am at it, how would one format the number that it outputs so it is only 2 decimal places? thanks in advance |
#2
|
||||
|
||||
Method 1 Including External Files
Method 2 Place the code inside a plugin (no PHP start/end tags), and grab the information into a variable. Do not echo it, just use that variable in a template. |
#3
|
|||
|
|||
Quote:
is there a better hook or how would you create a better hook? i would imagine that if i used global start, it just does it the one time - showing the currency. any ideas? thanks. |
#4
|
|||
|
|||
Plugins don't just disappear. Make sure that you didn't add the plugin in a product that you later uninstalled. Other than that I would recommend Method B, echoing has a tendency not to show up because the template system overwrites all your previous output.
For bugtesting I would make a plugin in global_start (in product vBulletin) that looked something like this: PHP Code:
|
#5
|
||||
|
||||
What do you mean that it worked just one time? You mean only the first time you hit the site? First time you hit that page? I don't understand what you mean.
|
#6
|
|||
|
|||
Quote:
so i thought it was the hook - global_start - like it will deal with global commands but just on the start or one time. it is my first plugin attempt. not sure what i am doing. could someone walk me through the whole thing? that wud be even better. maybe there is a better vbulletin hook to use than global_start? not sure. thanks. |
#7
|
||||
|
||||
Post your exact plugin code, please, and your template edit (a few lines above and below and tell us what template it is).
|
#8
|
|||
|
|||
Quote:
<?php $today = date('Y-m-d'); $con = mysql_connect('localhost', 'username', 'passwd1'); # please put appropriate values here if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("dbname_currency", $con); # please replace 'mydb' with your database name. $query = "SELECT cur_rate FROM currency WHERE cur_date = '$today' AND cur_code = 'PHP'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array( $result ); $php = $row['cur_rate']; echo "<p style=\"font-size:70%;\"><b>1 USD = PHP $php</b></p>";?> //end orignal code i set up a plugin called currency using vbulletin and global_start and did this: $today = date('Y-m-d'); $con = mysql_connect('localhost', 'username', 'passwd1'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("dbname_currency", $con); $query = "SELECT cur_rate FROM currency WHERE cur_date = '$today' AND cur_code = 'PHP'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result); $php = $row['cur_rate']; then i save this as currency (plugin) and then go to the header to insert the information i wanted: echo "<p style=\"font-size:70%;\"><b>1 USD = PHP $php</b></p>"; what am i doing wrong? thanks. |
#9
|
||||
|
||||
Please use the html/php tags. It is very difficult to read code when you don't use those.
Don't use echo. Put the variable into the template or use a template_hook. Also, it is probably not a good idea to use a variable named $php. |
#10
|
|||
|
|||
Quote:
ok. original code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php $today = date('Y-m-d'); $con = mysql_connect('localhost', 'username', 'passwd1'); # please put appropriate values here if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("dbname_currency", $con); # please replace 'mydb' with your database name. $query = "SELECT cur_rate FROM currency WHERE cur_date = '$today' AND cur_code = 'PHP'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array( $result ); $php = $row['cur_rate']; echo "<p style=\"font-size:70%;\"><b>1 USD = PHP $php</b></p>";?> </body> </html> and then the plugin using vbulletin and global_start $today = date('Y-m-d'); $con = mysql_connect('localhost', 'username', 'passwd1'); # please put appropriate values here if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("dbname_currency", $con); # please replace 'mydb' with your database name. $query = "SELECT cur_rate FROM currency WHERE cur_date = '$today' AND cur_code = 'PHP'"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array( $result ); $php = $row['cur_rate']; then in the header: echo "<p style=\"font-size:70%;\"><b>1 USD = PHP $php</b></p> $php is scraping philippine peso and is standard at yahoo for that currency so i cannot change it unfortunately. is this what you wanted? can you help me now? |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|