vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Making a Custom Template (vba/vb) (https://vborg.vbsupport.ru/showthread.php?t=94517)

randominity 08-17-2005 07:33 PM

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! ^^

Marco van Herwaarden 08-17-2005 07:58 PM

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') . '";'); 
    } 


randominity 08-17-2005 09:27 PM

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 ^^

Marco van Herwaarden 08-18-2005 04:34 AM

Ever single dot is needed. ;)

Stachel 08-19-2005 10:03 AM

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


All times are GMT. The time now is 09:47 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.01822 seconds
  • Memory Usage 1,733KB
  • 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_html_printable
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete