Перейти к содержанию
barslol0

Несколько видов сортировки по отдельности

Рекомендуемые сообщения

Ребята, привет.

Подскажите как сделать вот такой внешний и рабочий вид сортировки (во вложении). 

Чтобы каждый вид сортировки был отдельно. Opencart 1.5.5.1.1
 

post-30678-0-83131700-1412875304_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В контроллере формировать ссылку на фильтр с учетом порядка сортировки

 

Приблизительно это будет выглядеть так

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.price';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}
			$url = '';
			
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}

А вот здесь формировать нужное  в зависимости от порядка сортировки.

			$this->data['sorts'] = array();
			
			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_price_asc'),
				'value' => 'p.price-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)
			); 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все спасибо.
Сделал. Вот так.
В файле category.tpl

<div class="sort">
<ul>
<li>
Сортировать по:
</li>
<li>
<span   <?php if (($sorts[1]['value'] == $sort . '-' . $order) or ($sorts[2]['value'] == $sort . '-' . $order)) { ?><?php  echo 'class="active"'; ?><?php } ?>><a href="<?php if ($sorts[1]['value'] == $sort . '-' . $order) echo $sorts[2]['href']; else echo $sorts[1]['href']; ?>">названию</a></span>
</li>
<li >
<span   <?php if (($sorts[3]['value'] == $sort . '-' . $order) or ($sorts[4]['value'] == $sort . '-' . $order)) { ?><?php  echo 'class="active"'; ?><?php } ?>><a href="<?php if ($sorts[3]['value'] == $sort . '-' . $order) echo $sorts[4]['href']; else echo $sorts[3]['href']; ?>">цене</a></span>
</li>

<li >
<span   <?php if (($sorts[5]['value'] == $sort . '-' . $order) or ($sorts[6]['value'] == $sort . '-' . $order)) { ?><?php  echo 'class="active"'; ?><?php } ?>><a href="<?php if ($sorts[5]['value'] == $sort . '-' . $order) echo $sorts[6]['href']; else echo $sorts[5]['href']; ?>">рейтингу</a></span>
</li>

</ul>
</div> 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только вот не знаю как стрелочки добавить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Со стрелочками интересно

<?php if ($sort == 'pd.name') { ?>
                <a href="<?php echo $sort_name; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_name; ?></a>
<?php } else { ?>
                <a href="<?php echo $sort_name; ?>"><?php echo $column_name; ?></a>
<?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Со стрелочками интересно

<?php if ($sort == 'pd.name') { ?>
                <a href="<?php echo $sort_name; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_name; ?></a>
<?php } else { ?>
                <a href="<?php echo $sort_name; ?>"><?php echo $column_name; ?></a>
<?php } ?>

Что это за код?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы хотели готовый?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я понимаю Ваши намеки. Спасибо за помощь, но кошелек у меня не резиновый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, вы не правильно поняли мои намеки (конечно, я готов отнять у вас денег :) )

 

Но

 

<?php if ($sort == 'pd.name') { ?> -- Если сортируем по имени
                <a href="<?php echo $sort_name; ?>" --  выведем url c сортировкой по имени &sort=pd.name

                 class="<?php echo strtolower($order); ?>"> -- в переменной указан порядок сортиорвки (ASC или DESC)

<?php echo $column_name; ?></a>

 

В результате получим код

<a href=url c сортировкой по имени &sort=pd.name    class="asc | desc>По имени</a>

 

class нужен для того чтобы в

бекграунде вывести нужный треугольник

a.desc{backgroun:url(up.png)

a.asc{backgroun:url(down.png)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.