Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-17-2005, 08:33 PM
randominity randominity is offline
 
Join Date: Jul 2005
Location: Chicago, IL
Posts: 92
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Making a Custom Template (vba/vb)

So I've been learning how the template engine works and the more I mess with it the more I love it (1000000x more than phpBB). I've been messing around with vba's custom modules but I've having some problems.

The module I'm making basically queries my mysql database and retrieves a listing of items (for a MMORPG), and then displays it. Here is the weapon.php file:

PHP Code:
<?php
globalize
($_GET, array(
    
'id' => INT,
    
'type' => STR,
    
'grade' => STR,
    
'order' => STR
));

$DB_item = new DB_Sql_vb;
$DB_item->appname 'L2Guru';
$DB_item->appshortname 'L2Guru (Weapons)';
$DB_item->database ''//values removed
$DB_item->connect(''''''0); //values removed


    
if (!isset($order)) {
        
$order 'item_grade';
    }
    
$query_extra '';
    
    
//check for ordering variables
    
if (isset($type))  {
        
$query_extra " WHERE weapon_cat = '" addslashes($type) ."'";
    }  
    
    if (isset(
$grade)) {
        
$query_extra " WHERE item_grade = '" addslashes($grade) ."'";
    }
    
    
$query_extra .= " ORDER BY " addslashes($order);

    
    
$weapons $DB_item->query("SELECT weapon_id, weapon_cat, weapon_name, item_grade, attack_speed, patk, matk, crystal_value FROM weapon" $query_extra);


    while (
$weapon $DB_item->fetch_array($weapons)) 
    {
    }

    eval(
'$weaponline = "' fetch_template('adv_portal_weapon_line') . '";');
    
}

eval(
'$home[$mods[\'modid\']][\'content\'] = "' fetch_template('adv_portal_weapon_list') . '";');

?>
my adv_portal_weapon_line template
HTML Code:
<tr>
<td>$weapon[weapon_name]</td>
<td>$weapon[patk]</td>
<td>$weapon[matk]</td>
<td>$weapon[item_grade]</td>
<td>$weapon[attack_speed]</td>
<td>$weapon[crystal_value]</td>
</tr>

I'm not quite sure what to put in the while() loop in the php file to make this work. Any help is appreciated, thanks! ^^
Reply With Quote
  #2  
Old 08-17-2005, 08:58 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't know, but maybe something like:
PHP Code:
    while ($weapon $DB_item->fetch_array($weapons))  
    { 
        eval(
'$weaponline .= "' fetch_template('adv_portal_weapon_line') . '";'); 
    } 
Reply With Quote
  #3  
Old 08-17-2005, 10:27 PM
randominity randominity is offline
 
Join Date: Jul 2005
Location: Chicago, IL
Posts: 92
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

well that "semi" works. When I try that, it only grabs the very last weapon that was pulled.

I think I'm missing something with arrays in templates.

*edit* grrr didn't notice the concat, yes that works, thanks ^^
Reply With Quote
  #4  
Old 08-18-2005, 05:34 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ever single dot is needed.
Reply With Quote
  #5  
Old 08-19-2005, 11:03 AM
Stachel Stachel is offline
 
Join Date: Jun 2004
Location: US
Posts: 68
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for posting this !

Very useful and great time-saver to see how someone goes from [total newbie] to the first example of something working.

I'm completely in awe of how elegantly and cleanly vBulletin developers separated out logic from presentation using PHP vs templates.

Stachel
Reply With Quote
Reply


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 06:54 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.06434 seconds
  • Memory Usage 2,218KB
  • 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_html
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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