наверно названия типов хранятся в отдельной таблице, нужно посмотреть по структуре БД, добавить в запрос новый JOIN а дальше как всегда - в SELECT нужное поле и в list новый элемент
Детально не подскажу, нет под рукой рабочей базы
function list_product_type($product_id) {
global $VM_LANG;
if (!$this->product_in_product_type($product_id)) {
return "";
}
$dbag = new ps_DB;
$dba = new ps_DB;
$dbp = new ps_DB;
$html = "";
$q = "SELECT * FROM #__{vm}_product_product_type_xref ";
$q .= "LEFT JOIN #__{vm}_product_type USING (product_type_id) ";
$q .= "WHERE product_id='$product_id' AND product_type_publish='Y' ";
$q .= "ORDER BY product_type_list_order";
$dbag->query( $q );
$q = "SELECT * FROM #__{vm}_product_type_parameter ";
$q .= "WHERE product_type_id=";
while ($dbag->next_record()) { // Show all Product Type
if ($dbag->f("product_type_flypage")) {
$flypage_file = PAGEPATH."templates/".$dbag->f("product_type_flypage").".php";
if (file_exists($flypage_file)) {
$html .= include($flypage_file);
continue;
}
}
$html .= "<br />\n<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
$html .= "<tr><td colspan=\"2\"><strong>".$VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETERS_IN_CATEGORY'). ": ".$dbag->f("product_type_name")."</strong></td></tr>\n";
// SELECT parameter value of product
$q2 = "SELECT * FROM #__{vm}_product_type_".$dbag->f("product_type_id");
$q2 .= " WHERE product_id='$product_id'";
$dbp->query($q2);
// SELECT parameter of Product Type
$dba->query($q.$dbag->f("product_type_id")." ORDER BY parameter_list_order");
$i=0;
while ($dba->next_record()) {
if ($i++ % 2) {
$bgcolor='row0';
} else {
$bgcolor='row1';
}
$html .= "<tr class=\"$bgcolor\" height=\"18\">\n";
$html .= "<td width=\"30%\">".$dba->f("parameter_label");
$parameter_description = $dba->f("parameter_description");
if (!empty($parameter_description)) {
$html .= " ";
$html .= vmToolTip($parameter_description, $VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_DESCRIPTION'));
}
$html .= "</td>\n<td>";
$html .= $dbp->f($dba->f("parameter_name"))." ".$dba->f("parameter_unit")."</td></tr>\n";
}
$html .= "</table>\n";
}
return $html;
}
так в вирте. типы лежат в отдельной таблице+к ним создабтся новые таблицы при создании новых типов и параметров к ним
jos_vm_product_type
jos_vm_product_type_parameter
ну и далее
jos_vm_product_type_1
jos_vm_product_type_2
jos_vm_product_type_3
jos_vm_product_type_4
....