vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Trying to add PHP to my forums (https://vborg.vbsupport.ru/showthread.php?t=213335)

visitangeles 05-10-2009 05:07 PM

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

Dismounted 05-11-2009 04:38 AM

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.

visitangeles 05-11-2009 04:51 AM

Quote:

Originally Posted by Dismounted (Post 1808415)
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.

i did that in method B. it worked just the one time. i used global_start as the hook.

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.

Cip 05-11-2009 07:18 AM

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:

if (isset($_REQUEST['testing'])){
   
//Fetch latest Coke prices from coke.com
   
getLatestCurrencyCode();

   
//350 litres gives you 2 gold coins.
   
echo $CokeToGoldRatio;

   
//Make sure that we don't let vBulletin continue
   //(to prevent the template from writing over your echo)
   
exit;



Lynne 05-11-2009 02:00 PM

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.

visitangeles 05-11-2009 02:12 PM

Quote:

Originally Posted by Lynne (Post 1808685)
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.

yes. i finally got it to work. it showed the currency. i refreshed and it was gone! :(

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.

Lynne 05-11-2009 02:37 PM

Post your exact plugin code, please, and your template edit (a few lines above and below and tell us what template it is).

visitangeles 05-11-2009 03:48 PM

Quote:

Originally Posted by Lynne (Post 1808725)
Post your exact plugin code, please, and your template edit (a few lines above and below and tell us what template it is).

original code is this:

<?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.

Lynne 05-11-2009 04:20 PM

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.

visitangeles 05-11-2009 05:08 PM

Quote:

Originally Posted by Lynne (Post 1808793)
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.


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?


All times are GMT. The time now is 03:39 AM.

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.01578 seconds
  • Memory Usage 1,749KB
  • 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
  • (1)bbcode_php_printable
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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