0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 3833 Просмотров
*

Iven

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Выбор производителя
« : 09.07.2009, 16:22:33 »
имеется модуль 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>

но было не плохо что бы сохранялись сделанные до этого настройки сортировки

кто то знает как сделать такое ?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Выбор производителя
« Ответ #1 : 09.07.2009, 18:19:31 »
WHERE cx.category_id =".(int)$category_id; убрать из верхнего листинга.
*

Iven

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Выбор производителя
« Ответ #2 : 10.07.2009, 17:51:25 »
спс
а как сделать наоборот ? - тоесть чтоб после выборки производителя из какой то категории можно было сделтаь выборку производителя снова с той же категории, а то на нынешний момент после выборки из категории кидает на выборку производителей из всех каталогов

а по изменениям в browse_orderbyfields.tpl.php
данный способ выборки вообще не срабатывает (
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Выбор производителя
« Ответ #3 : 11.07.2009, 04:54:57 »
Ну ты определись как тебе нужно, либо производители в категории, либо все производители и сделай как определился.
*

Iven

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Выбор производителя
« Ответ #4 : 11.07.2009, 18:20:34 »
видно плохо описал проблему
при наличии WHERE cx.category_id =".(int)$category_id;
после первой же выборки производителя происходит выход из категории
а нада чтобы оставался и последующие выборки производителя происходили все с той же категории
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Выбор производителя
« Ответ #5 : 13.07.2009, 06:17:08 »
<input type="hidden" name="category_id" value="<?php echo $category_id;?>" />
То есть виртуемарту нужно послать ид категории.
*

Maxd

  • Новичок
  • 7
  • 1 / 0
Re: Выбор производителя
« Ответ #6 : 08.12.2009, 00:32:13 »
ребята мот кто знает как запихнуть этот модуль (mod_virtuemart_manufacturers) поближе к стандартной сортировке VM вот пример http://www.scompro.ru/shop/provodnie-garnituri и как снести из кода кнопку поиска. может быть на образце вообще не этот модуль?

Re: Выбор производителя
« Ответ #7 : 25.01.2010, 13:44:03 »
А как сделать чтобы при выборе производителя - отображались категории продуктов этого производителя, а не весь список продуктов?
Заранее, спасибо!
*

mark111

  • Захожу иногда
  • 63
  • 1 / 0
Re: Выбор производителя
« Ответ #8 : 02.03.2010, 15:07:06 »
А как сделать чтобы при выборе производителя - отображались категории продуктов этого производителя, а не весь список продуктов?
Заранее, спасибо!

у меня тот же вопрос. Например вот http://www.domrybaka.com.ua/katalog-tovarov/shop.browse/20.html - категория с катушками, при выборе производителя "Mikado"  выдается список всех товаров производителя "Mikado", а нужно, чтобы выводились только катушки производителя "Mikado".  Установлена Joomla! 1.5.14 Stable, Virtuimart 1.1.3.  Как это можно сделать? Помогите пожалуйста, что мне подправить в стандартном модуле?  


По совету одного из собратьев по этой ссылке все сделал  http://joomlaforum.ru/index.php/topic,56323.0.html



Но не помогло....
« Последнее редактирование: 02.03.2010, 15:25:26 от mark111 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Логотип производителя вместо ссылки[Super-Puper]

Автор john123

Ответов: 8
Просмотров: 3856
Последний ответ 30.04.2014, 17:26:43
от terr
Категории товаров выбранного производителя

Автор aikr

Ответов: 2
Просмотров: 1242
Последний ответ 25.02.2013, 01:51:19
от aikr
Заменить параметр attribute c select на checkbox, и выбор нескольких параметров из одного attbibute

Автор Artrum

Ответов: 2
Просмотров: 2249
Последний ответ 02.12.2012, 18:29:16
от angelo4ek-001
Вывод товаров в popup окне производителя.

Автор Galyanoff

Ответов: 2
Просмотров: 1073
Последний ответ 26.03.2012, 20:33:05
от Galyanoff
вывод товаров производителя по категориям (модуль mod_virtuemart_topten)

Автор olf

Ответов: 0
Просмотров: 974
Последний ответ 11.03.2012, 22:34:12
от olf