PDA

View Full Version : Making a Custom Template (vba/vb)


randominity
08-17-2005, 08:33 PM
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
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
<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, 08:58 PM
I don't know, but maybe something like:
while ($weapon = $DB_item->fetch_array($weapons))
{
eval('$weaponline .= "' . fetch_template('adv_portal_weapon_line') . '";');
}

randominity
08-17-2005, 10: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, 05:34 AM
Ever single dot is needed. ;)

Stachel
08-19-2005, 11: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