Перейти к содержанию
Официальный форум поддержки Simpla

Вывести все товары из категории


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

Здравствуйте! Помогите , как вывести все товары из категории? Хочу добавить кнопку в сортировку "Все товары" и что бы выводились все товары из выбранной категории. Подскажите пожалуйста, как? То есть что бы не было страниц, а просто все товары на одной странице

файл products.tpl:


{* Сортировка *}
{if $products|count>0}
<div class="sort">
	Сортировать по 
	<a {if $sort=='position'} class="selected"{/if} href="{url sort=position page=null}">умолчанию</a>
	<a {if $sort=='price'}    class="selected"{/if} href="{url sort=price page=null}">цене</a>
	<a {if $sort=='name'}     class="selected"{/if} href="{url sort=name page=null}">названию</a>
</div>
{/if}


{include file='pagination.tpl'}


<!-- Список товаров-->
<ul class="products">

	{foreach $products as $product}
	<!-- Товар-->
	<li class="product">
		
		<!-- Фото товара -->
		{if $product->image}
		<div class="image">
			<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
		</div>
		{/if}
		<!-- Фото товара (The End) -->

		<div class="product_info">
		<!-- Название товара -->
		<h3 class="{if $product->featured}featured{/if}"><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
		<!-- Название товара (The End) -->

		<!-- Описание товара -->
		<div class="annotation">{$product->annotation}</div>
		<!-- Описание товара (The End) -->
		
		{if $product->variants|count > 0}
		<!-- Выбор варианта товара -->
		<form class="variants" action="/cart">
			<table>
			{foreach $product->variants as $v}
			<tr class="variant">
				<td>
					<input id="variants_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
				</td>
				<td>
					{if $v->name}<label class="variant_name" for="variants_{$v->id}">{$v->name}</label>{/if}
				</td>
				<td>
					{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
					<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
				</td>
			</tr>
			{/foreach}
			</table>
			<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
		</form>
		<!-- Выбор варианта товара (The End) -->
		{else}
			Нет в наличии
		{/if}

		</div>
		
	</li>
	<!-- Товар (The End)-->
	{/foreach}
			
</ul>

{include file='pagination.tpl'}	
<!-- Список товаров (The End)-->

Файл pagination.tpl

 

{* Постраничный вывод *}

{if $total_pages_num>1}
{* Скрипт для листания через ctrl ? *}
{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *}
<script type="text/javascript" src="js/ctrlnavigate.js"></script>           


<!-- Листалка страниц -->
<div class="pagination">
    
    {* Количество выводимых ссылок на страницы *}
    {$visible_pages = 11}


    {* По умолчанию начинаем вывод со страницы 1 *}
    {$page_from = 1}
    
    {* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *}
    {if $current_page_num > floor($visible_pages/2)}
        {$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)}
    {/if}    
    
    {* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *}
    {if $current_page_num > $total_pages_num-ceil($visible_pages/2)}
        {$page_from = max(1, $total_pages_num-$visible_pages-1)}
    {/if}
    
    {* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *}
    {$page_to = min($page_from+$visible_pages, $total_pages_num-1)}
<div class="navigation-arrows">
    {if $current_page_num==2}<a id="navigation_1_previous_page" href="{url page=null}"><span class="prev_arrow_active">   </span></a>{/if}
    </div>
    {* Ссылка на 1 страницу отображается всегда *}
    <div class="navigation-pages">
    <a href="{url page=null}"><span class="{if $current_page_num==1}nav-current-page{/if}">1</span></a>
    
    
    {* Выводим страницы нашего "окна" *}    
    {section name=pages loop=$page_to start=$page_from}
        {* Номер текущей выводимой страницы *}    
        {$p = $smarty.section.pages.index+1}    
        {* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *}    
        {if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)}    
        <a  href="{url page=$p}"><span class="{if $p==$current_page_num}nav-current-page{/if}">...</span></a>
        {else}
        <a  href="{url page=$p}"><span class="{if $p==$current_page_num}nav-current-page{/if}">{$p}</span></a>
        {/if}
    {/section}


    {* Ссылка на последнююю страницу отображается всегда *}
    <a  href="{url page=$total_pages_num}"><span class="{if $current_page_num==$total_pages_num}nav-current-page{/if}">{$total_pages_num}</span></a>
    </div>
    
        
    {if $current_page_num>2}<div class="navigation-arrows"><a  href="{url page=$current_page_num-1}"><span class="disabled prev_arrow">   </span></a></div>{/if}
    {if $current_page_num<$total_pages_num}<div class="navigation-arrows"><a id="navigation_1_next_page" href="{url page=$current_page_num+1}"><span class="next_arrow_active">   </span></a></div>{/if}
    
</div>
<!-- Листалка страниц (The End) -->
{/if}

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

Уважаемый Noxter, наверное если бы я знал как я бы не создал тему.

Стандартно может и есть, но я вам скинул код двух файлов, тема нестандартная.

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

Открываем стандартный шаблон, pagination.tpl и видим строчку

<a href="{url page=all}">все сразу</a>
Ссылка на сообщение
Поделиться на другие сайты

Уважаемый Noxter, наверное если бы я знал как я бы не создал тему.

Стандартно может и есть, но я вам скинул код двух файлов, тема нестандартная.

Ну а если пораскинуть мозгами, то можно додуматься взять код со стандартной симплы.
Ссылка на сообщение
Поделиться на другие сайты

 

Открываем стандартный шаблон, pagination.tpl и видим строчку

<a href="{url page=all}">все сразу</a>

Я так делал . Но ничего. ?page=all ничего не меняет

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

view/ProductsView.php

		// Постраничная навигация
		$items_per_page = $this->settings->products_num;		
		// Текущая страница в постраничном выводе
		$current_page = $this->request->get('page', 'int');	
		// Если не задана, то равна 1
		$current_page = max(1, $current_page);
		$this->design->assign('current_page_num', $current_page);
		// Вычисляем количество страниц
		$products_count = $this->products->count_products($filter);
		
		// Показать все страницы сразу
		if($this->request->get('page') == 'all')
			$items_per_page = $products_count;	
		
		$pages_num = ceil($products_count/$items_per_page);
		$this->design->assign('total_pages_num', $pages_num);
		$this->design->assign('total_products_num', $products_count);

		$filter['page'] = $current_page;
		$filter['limit'] = $items_per_page;
Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое Косяк! Низкий поклон!

Можно было не дожидаться ответа, а сому взять этот код из оригинальной симплы, сэкономили бы себе и людям время.
Ссылка на сообщение
Поделиться на другие сайты

Можно было не дожидаться ответа, а сому взять этот код из оригинальной симплы, сэкономили бы себе и людям время.

Откуда вы такой умный? А можно было вам показать мне этот код вместо того что бы разводить здесь пустые разговоры? Если бы я наверно был программистом, или просто юзером который понимает какой и откуда код брать я бы не задал тут этот вопрос.

Я ж вам писал выше, если бы знал что брать и откуда я бы сделал.

Вам минус к карме - . Людям, тем более если считаете что ничего сложного , нужно помогать , ибо смысл вашего тут общения, как минимум в моей теме.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...