Сортировка от дешевых к дорогим VirtueMart 2

  • 7 Ответов
  • 190 Просмотров

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

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Всем привет.
Уважаемые гуру подскажите есть код  для своей сортировки товаров
Код
<div class="top_category_form_header">Сортировать:

<select onchange="javascript: window.location.href=this.options[this.selectedIndex].value" id="category_sort_select">

<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price',FALSE);?>">От дорогих к дешевым</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=ASC',FALSE);?>"  >От дешевых к дорогим</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_sales',FALSE);?>">Популярные</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=r=ASC',FALSE);?>">По названию от А до Я</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=DESC',FALSE);?>">По названию от Я до А</option>
</select>
Проблема при выборе параметра все срабатывает, кроме запоминания текущего вида сортировки.
Например:
Выбираю  -  Популярные, сортировка происходит, но в поле выборе значение остается  первое От дорогих к дешевым.
может кто подскажет как справится с этой бедой 

*

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Привет ... А кеш Браузера.... Не...
Смотри... эта сортировка берется из кука....
Может ссылку на сайт дашь ()())(

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Не это не из кука я сам HTML код дописал
не могу придумать условие для сортировки по типу
<?php if ( $options['foo'] = $_SERVER["REQUEST_URI"] ) echo 'selected="selected"'; ?> >


вот код есть для Wordpressа, хочу на подобии такого запелить
Код
<div class="sort">
<b>Сортировать по:</b>
<select onchange="location = this.value;">
<option value="{url sort=position page=null}"{if $sort=='position'} selected="selected"{/if}>По умолчанию</option>
<option value="{url sort=name_asc page=null}"{if $sort=='name_asc'} selected="selected"{/if}>Имени от А до Я</option>
<option value="{url sort=name_desc page=null}"{if $sort=='name_desc'} selected="selected"{/if}>Имени от Я до А</option>
<option value="{url sort=price_asc page=null}"{if $sort=='price_asc'} selected="selected"{/if}>Ценам: Низкие &gt; Высокие</option>
<option value="{url sort=price_desc page=null}"{if $sort=='price_desc'} selected="selected"{/if}>Ценам: Высокие &lt; Низкие</option>
</select>
</div>



*

fsv

  • Moderator
  • *****
  • 2506
  • 367
Эта сортировка и выбор активного option'a через одно место сделана в модели товара.
Фильтрацию надо бы делать с использованием формы, заполняя скрытые поля по change. И с user state.
Если вы сами HTML писали, можно как-то так сделать:
Код
$app = JFactory::getApplication('site');
$orderby = $app->input->getCmd('orderby', '');
$dir = $app->input->getCmd('dir', 'ASC');
Код
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'ASC'){ echo 'selected="selected"'; } ?>>
От дорогих к дешевым
</option>
по каждому option'у - свой код
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Эта сортировка и выбор активного option'a через одно место сделана в модели товара.
Фильтрацию надо бы делать с использованием формы, заполняя скрытые поля по change. И с user state.
Если вы сами HTML писали, можно как-то так сделать:
Код
$app = JFactory::getApplication('site');
$orderby = $app->input->getCmd('orderby', '');
$dir = $app->input->getCmd('dir', 'ASC');
Код
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'ASC'){ echo 'selected="selected"'; } ?>>
От дорогих к дешевым
</option>
по каждому option'у - свой код

Код
<?php 
$app = JFactory::getApplication('site');
$orderby = $app->input->getCmd('orderby', '');
$dir = $app->input->getCmd('dir', 'ASC');
?>
<select onchange="javascript: window.location.href=this.options[this.selectedIndex].value" id="category_sort_select" name="options[foo]">

<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price',FALSE);?>" <?php if($orderby == 'product_price'){ echo 'selected="selected"'; } ?>>
От дорогих к дешевым
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=ASC',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'ASC'){ echo 'selected="selected"'; } ?>>
От дешевых к дорогим
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_sales',FALSE);?>" <?php if($orderby == 'product_sales' ){ echo 'selected="selected"'; } ?>>
Популярные
</option>
</select>
Популярные работают на ура а вот    От дорогих к дешевым и От дешевых к дорогим всегда при выборе любого из них оба selected="selected"
тута тоже <option value="<?php echo JRoute::_ ($fieldLink . '&dir=r=ASC',FALSE);?>" <?php if($dir == 'ASC' ){ echo 'selected="selected"'; } ?>>
По названию от А до Я
</option>
не могу побороть
« Последнее редактирование: 20.02.2017, 12:06:49 от vladsklyar »

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Упс
Код
<?php 
$app = JFactory::getApplication('site');
$orderby = $app->input->getCmd('orderby', '');
$dir = $app->input->getCmd('dir', 'ASC');
?>
<select onchange="location = this.value;">

<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=DESC',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'DESC'){ echo 'selected="selected"'; } ?>>
От дорогих к дешевым
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=ASC',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'ASC'){ echo 'selected="selected"'; } ?>>
От дешевых к дорогим
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_sales',FALSE);?>" <?php if($orderby == 'product_sales' ){ echo 'selected="selected"'; } ?>>
Популярные
</option>

</select>

Так работает, осталось разобрать  
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=r=ASC',FALSE);?>">По названию от А до Я</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=DESC',FALSE);?>">По названию от Я до А</option>

<option value="<?php echo JRoute::_ ($fieldLink . '&dir=ASC',FALSE);?>" <?php if( $dir == 'ASC' ){ echo 'selected="selected"'; } ?>>
По названию от А до Я
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=DESC',FALSE);?>" <?php if( $dir == 'DESC' ){ echo 'selected="selected"'; } ?>>
По названию от Я до А
</option>
« Последнее редактирование: 20.02.2017, 12:38:32 от vladsklyar »

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Осталась проблема с
Код
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=ASC',FALSE);?>" <?php if( $orderby == '' && $dir == 'ASC' ){ echo 'selected="selected"'; } ?>>
По названию от А до Я
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&dir=DESC',FALSE);?>" <?php if( $orderby == '' && $dir == 'DESC' ){ echo 'selected="selected"'; } ?>>
По названию от Я до А
</option>
при загрузке страницы и выборе первыми По названию от А до Я или  По названию от Я до А все нормально но если после этого выбрать    От дорогих к дешевым то тогда ссылки стают вида
/katushki.html?dir=ASC&orderby=product_price и
/katushki.html?dir=DESC&orderby=product_price
и эти тоже тогда   echo 'selected="selected"'
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=DESC',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'DESC'){ echo 'selected="selected"'; } ?>>
   От дорогих к дешевым
</option>
<option value="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=ASC',FALSE);?>" <?php if($orderby == 'product_price' && $dir == 'ASC'){ echo 'selected="selected"'; } ?>>
От дешевых к дорогим
</option>

*

vladsklyar

  • Осваиваюсь на форуме
  • ***
  • 47
  • 0
Все разобрался, тему можно закрывать