Столкнулся с необходимостью вывода определённого параметра типа товаров.
Как известно за вывод информации о товаре отвечает flypage.
Сам флаер в принципе устраивал, кроме того что параметры типа товара выводятся внизу под картинкой, я решил их поднять наверх для чего переместил
<?php echo $product_type ?> в нужное мне место получилось вот так:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); ?>
<?php echo $buttons_header // The PDF, Email and Print buttons ?>
<?php
if( $this->get_cfg( 'showPathway' )) {
echo "<div class=\"pathway\">$navigation_pathway</div>";
}
if( $this->get_cfg( 'product_navigation', 1 )) {
if( !empty( $previous_product )) {
echo '<a class="previous_page" href="'.$previous_product_url.'">'.shopMakeHtmlSafe($previous_product['product_name']).'</a>';
}
if( !empty( $next_product )) {
echo '<a class="next_page" href="'.$next_product_url.'">'.shopMakeHtmlSafe($next_product['product_name']).'</a>';
}
}
?>
<br style="clear:both;" />
<table border="0" style="width: 100%;">
<tbody>
<tr>
<?php if( $this->get_cfg('showManufacturerLink') ) { $rowspan = 5; } else { $rowspan = 4; } ?>
<td width="33%" rowspan="<?php echo $rowspan; ?>" valign="top"><br/>
<?php echo $product_image ?><br/><br/><?php echo $more_images ?></td>
<td rowspan="1" colspan="2">
<h1><?php echo $product_name ?> <?php echo $edit_link ?></h1>
</td>
</tr>
<?php if( $this->get_cfg('showManufacturerLink')) { ?>
<tr>
<td rowspan="1" colspan="2"><?php echo $manufacturer_link ?><br /></td>
</tr>
<?php } ?>
<tr>
<td width="100%" valign="top" align="left">
<?php echo $product_price_lbl ?>
<?php echo $product_price ?>
<?php echo $addtocart ?>
<?php echo $product_type ?><br /></td>
<td valign="top"><?php echo $product_packaging ?><br /></td>
</tr>
<tr>
Далее за вывод таблицы параметров товара у нас отвечает файлик ps_product_type.php, вызываемый <?php echo $product_type ?>.
Здесь я убрал дополнительную инфу о товаре, закомментировав одну строчку в функции вывода.
Получил вот что:
/**
* Returns HTML code for show parameters
* @author Zdenek Dvorak
*
* @param int $product_id
* @return string
*/
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;
}
}
?>
Далее мне необходимо из всех параметров типов товара выбирать параметр Наименование (Name) и выводить его отдельно в нужном мне месте. Кто подскажет как правильно сделать запрос и вывести этот параметр?