Jump to content
Sign in to follow this  
barslol0

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

		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)
			); 

Share this post


Link to post
Share on other sites

Все спасибо.
Сделал. Вот так.
В файле 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> 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

<?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 } ?>

Share this post


Link to post
Share on other sites

 

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

<?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 } ?>

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Но

 

<?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)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.