Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 07-07-2008, 05:47 PM
ArbuZz ArbuZz is offline
 
Join Date: Jun 2008
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Is it possible to write some PHP inside forum templates?

I need to add some extra coding in a custom header that I made for the forum. I need to insert some conditional scripting, which I usually accomplish with PHP. Now is it possible to add some PHP in templates?
Reply With Quote
  #2  
Old 07-07-2008, 05:53 PM
veenuisthebest's Avatar
veenuisthebest veenuisthebest is offline
 
Join Date: Mar 2008
Location: India
Posts: 1,416
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You cannot use php in the templates. You need to include the php by creating a plugin at the appropriate hook location.

Refer this
http://www.vbulletin.com/docs/html/m..._externalfiles
Reply With Quote
  #3  
Old 07-08-2008, 11:03 AM
ArbuZz ArbuZz is offline
 
Join Date: Jun 2008
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ouch...

--------------- Added [DATE]1215518983[/DATE] at [TIME]1215518983[/TIME] ---------------

Not bad. Looks bearable. Thanks for the tip.
Reply With Quote
  #4  
Old 07-10-2008, 12:52 PM
ArbuZz ArbuZz is offline
 
Join Date: Jun 2008
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I was able to insert some pure PHP things in the header. However I cannot connect to a database, because as soon as I do vBulletin says:

Quote:
Fatal error: Call to a member function query_read_slave() on a non-object in .../forum/index.php on line 413
Although I use my one connection resource Isn't it possible to make a separate mysql connection to a different database and still make everything work?
Reply With Quote
  #5  
Old 07-10-2008, 02:22 PM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

As long the MySQL user for vBulletin can access your other database (ie. is on the same server and has SELECT/INSERT/etc. permissions), you can use the "database.table.field" syntax.
PHP Code:
$vbulletin->db->query_read("
    SELECT *
    FROM database2.table1.fieldA AS fieldA
    WHERE fieldA = 
$someid
    LIMIT 1
"
); 
Reply With Quote
  #6  
Old 07-11-2008, 06:46 AM
ArbuZz ArbuZz is offline
 
Join Date: Jun 2008
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you. And is there a place where all db functions of vBulletin are listed?

For example what's wrong with this code:



Quote:
...
require_once('./includes/init.php'); // includes class_core.php
require_once('./includes/class_dm.php'); // for class_dm_user.php
require_once('./includes/class_dm_user.php'); // for user functions
require_once('./includes/functions.php'); // vbsetcookie etc.
require_once('./includes/functions_login.php'); // process login/logout
...
global $vbulletin;
$useridq = $vbulletin->db->query_read("SELECT userid FROM "
. TABLE_PREFIX . "user WHERE username='{$username}'");
if (!$useridq) return $useridq;
$userid = $useridq['userid'];
DB query just returns nothing originally $vbulletin->db->query_read was $vbulletin->db->query_first_slave. But it doesn't work either. How can one print out the error if it happened upon query?
Reply With Quote
  #7  
Old 07-11-2008, 07:01 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just include global.php...In your case, you should use query_first() or query_first_slave(), either will work.
Reply With Quote
  #8  
Old 07-11-2008, 07:03 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

With a query_read() you will need to use fetch_array() to actually retrieve rows (usually in a loop). If you need a single row, then you can use query_first() or query_first_slave(), these functions will also read the first (and only) row.
Reply With Quote
  #9  
Old 07-11-2008, 10:24 AM
ArbuZz ArbuZz is offline
 
Join Date: Jun 2008
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you very much for your notes. Actually everything was alright with the query call. It was a Class that I've used that caused the trouble with some ambiguous code. I've turned it off.
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 07:20 PM.


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.04605 seconds
  • Memory Usage 2,236KB
  • 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)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)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