имеется модуль mod_VirtueMart_manufacturers
с ним нужно сделать так чтоб даже если открыта какая то ктегория выборка делалась по производителю всегда со всех категорий
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
global $mosConfig_absolute_path, $sess, $VM_LANG;
// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_VirtueMart/VirtueMart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_VirtueMart/VirtueMart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_VirtueMart/VirtueMart_parser.php' );
}
$category_id = vmRequest::getInt('category_id');
$text_before = $params->get( 'text_before', '');
$show_dropdown = $params->get( 'show_dropdown', 1);
$show_linklist = $params->get( 'show_linklist', 1);
$auto = $params->get( 'auto', 0);
$sess = new ps_session;
$query = "SELECT DISTINCT m.manufacturer_id, m.mf_name
FROM #__{vm}_manufacturer m
LEFT JOIN #__{vm}_product_mf_xref mx ON mx.manufacturer_id = m.manufacturer_id
LEFT JOIN #__{vm}_product p ON p.product_id = mx.product_id
LEFT JOIN #__{vm}_product_category_xref cx ON cx.product_id = p.product_id
WHERE cx.category_id =".(int)$category_id;
$query .= " ORDER BY m.mf_name ASC";
$query_all = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";
$query_all .= "ORDER BY m.mf_name ASC";
$db = new ps_DB;
if ($auto == 1 && !empty( $category_id ) ) {
$db->query( $query );
} else {
$db->query( $query_all );
}
$res = $db->record;
if( empty( $res )) {
if( $auto == 1 ) {
$db->query( $query_all );
$res = $db->record;
} else {
echo 'No manufacturers defined!';
return;
}
}
?>
<?php if( $show_linklist == 1 ) { ?>
<!--BEGIN manufacturer DropDown List -->
<?php echo $text_before ?><br />
<?php foreach( $res as $manufacturer) { ?>
<div><a href="<?php echo $sess->url( URL."index.php?option=com_VirtueMart&page=shop.browse&manufacturer_id=". $manufacturer->manufacturer_id ) ?>">
<?php echo $manufacturer->mf_name; ?>
</a>
</div>
<?php } ?>
<?php
}
if( $show_dropdown == 1 ) { ?>
<div>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="vm_manufacturer">
<br/>
<select class="inputbox" name="manufacturer_id" onchange="document.vm_manufacturer.submit()">
<option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT') ?></option>
<?php
foreach ($res as $manufacturer) {
$selected = '';
if( @$_REQUEST['manufacturer_id'] == $manufacturer->manufacturer_id ) {
$selected = 'selected="selected"';
}
echo "<option value=\"".$manufacturer->manufacturer_id ."\" $selected>". $manufacturer->mf_name ."</option>\n";
}
?>
</select>
<br />
<input class="button" type="submit" name="manufacturerSearch" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE') ?>" />
<input type="hidden" name="option" value="com_VirtueMart" />
<input type="hidden" name="page" value="shop.browse" />
<input type="hidden" name="Itemid" value="<?php echo $sess->getShopItemid() ?>" />
</form>
</div>
<?php
}
?><!-- End Manufacturer Module -->
и есть в каждой категории выборка произодителя в browse_orderbyfields.tpl.php
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__); ?>
<?php
if( sizeof($VM_BROWSE_ORDERBY_FIELDS) < 2 ) {
return;
}
?>
<?php
// выбор производителя
$query = "SELECT distinct a.manufacturer_id,a.mf_name FROM #__{vm}_manufacturer AS a ";
if (!empty( $category_id ) ) {
$query .= ", #__{vm}_product_category_xref AS d, "
. " #__{vm}_product AS b, "
. " #__{vm}_product_mf_xref AS c "
. " WHERE d.category_id='$category_id'"
. " AND d.product_id = b.product_id AND b.product_publish='Y' "
. " AND b.product_id = c.product_id AND c.manufacturer_id = a.manufacturer_id ";
}
$query .= "ORDER BY mf_name ASC";
$db = new ps_DB;
$db->query( $query );
$res = $db->record;
?>
<?php echo JText::_('BREND'); ?>:
<select class="inputbox" name="manufacturer_id" onchange="order.submit()">
<option value=""><?php echo JText::_('BREND1'); ?></option>
<?php
foreach ($res as $manufacturer) {
$selected = '';
if( @$_REQUEST['manufacturer_id'] == $manufacturer->manufacturer_id ) {
$selected = 'selected="selected"';
}
echo "<option value=\"".$manufacturer->manufacturer_id ."\" $selected>". $manufacturer->mf_name ."</option>\n";
}
?>
</select><span style="padding:0px 40px;"></span>
//сортировка
<?php echo $VM_LANG->_('PHPSHOP_ORDERBY') ?>:
<select class="inputbox" name="orderby" onchange="order.submit()">
<option value="product_list" ><?php echo $VM_LANG->_('PHPSHOP_SELECT') ?></option>
<?php
// SORT BY PRODUCT LIST
if( in_array( 'product_list', $VM_BROWSE_ORDERBY_FIELDS)) { ?>
<option value="product_list" <?php echo $orderby=="product_list" ? "selected=\"selected\"" : "";?>>
<?php echo $VM_LANG->_('PHPSHOP_DEFAULT') ?></option>
<?php
}
// SORT BY PRODUCT NAME
if( in_array( 'product_name', $VM_BROWSE_ORDERBY_FIELDS)) { ?>
<option value="product_name" <?php echo $orderby=="product_name" ? "selected=\"selected\"" : "";?>>
<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_NAME_TITLE') ?></option>
<?php
}
// SORT BY PRODUCT SKU
if( in_array( 'product_sku', $VM_BROWSE_ORDERBY_FIELDS)) { ?>
<option value="product_sku" <?php echo $orderby=="product_sku" ? "selected=\"selected\"" : "";?>>
<?php echo $VM_LANG->_('PHPSHOP_CART_SKU') ?></option>
<?php
}
// SORT BY PRODUCT PRICE
if (_SHOW_PRICES == '1' && $auth['show_prices'] && in_array( 'product_price', $VM_BROWSE_ORDERBY_FIELDS)) { ?>
<option value="product_price" <?php echo $orderby=="product_price" ? "selected=\"selected\"" : "";?>>
<?php echo $VM_LANG->_('PHPSHOP_PRODUCT_PRICE_TITLE') ?></option><?php
}
// SORT BY PRODUCT CREATION DATE
if( in_array( 'product_cdate', $VM_BROWSE_ORDERBY_FIELDS)) { ?>
<option value="product_cdate" <?php echo $orderby=="product_cdate" ? "selected=\"selected\"" : "";?>>
<?php echo $VM_LANG->_('PHPSHOP_LATEST') ?></option>
<?php
}
?>
</select>
здесь после и до, и после выборки выводится слово "все" <option value=""><?php echo JText::_('BREND1'); ?></option>
а надо чтобы выводилось название производителя если была выборка и была ссылка на выборку Все, а если не было выборки то писало - Все
для ссылки Все можно использовать
<option value="product_list" <?php echo Все>
<?php echo $VM_LANG->_('PHPSHOP_DEFAULT') ?></option>
но было не плохо что бы сохранялись сделанные до этого настройки сортировки
кто то знает как сделать такое ?