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

Как ограничить количество страниц пагинации в категории?


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

Всем привет!

Хочу ограничить в определенной категории количество страниц в пагинации, т.е. по умолчанию выводятся все страницы (30), а я хочу чтобы выводилось только 5.

 

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

 

<div class="paging_top"> 

	{* Количество выводимых ссылок на страницы *}
	{$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)}

	{* Ссылка на 1 страницу отображается всегда *}
	<a {if $current_page_num==1}class="current_page"{/if} href="{url page=null}">1</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 {if $p==$current_page_num}class="current_page"{/if} href="{url page=$p}">...</a>
		{else}
		<a {if $p==$current_page_num}class="current_page"{/if} href="{url page=$p}">{$p}</a>
		{/if}
	{/section}

	{* Ссылка на последнююю страницу отображается всегда *}
	<a {if $current_page_num==$total_pages_num}class="current_page"{/if}  href="{url page=$total_pages_num}">{$total_pages_num}</a>
	
	{if $current_page_num==2}<a class="prev_page_link" href="{url page=null}">←назад</a>{/if}
	{if $current_page_num>2}<a class="prev_page_link" href="{url page=$current_page_num-1}">←назад</a>{/if}
	{if $current_page_num<$total_pages_num}<a class="next_page_link" href="{url page=$current_page_num+1}">вперед→</a>{/if}
	
</div>

 

 

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

Стоп, этот код не ограничивает вывод страниц, как было 30 так и осталось, он выводит кол-во видимых страниц а между ними ... А мне надо ограничить количество самих страниц, т.е. сейчас у меня 30, а надо чтобы стало 5.

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

Стоп, этот код не ограничивает вывод страниц, как было 30 так и осталось, он выводит кол-во видимых страниц а между ними ... А мне надо ограничить количество самих страниц, т.е. сейчас у меня 30, а надо чтобы стало 5.

Ну так укажите лимит в выборке товаров, если категория такая-то то $fitler['limit'] = 'количество товаров'. Изменено пользователем Noxter
Ссылка на сообщение
Поделиться на другие сайты

В ProductsView? 

Пробую вот так, но не срабатывает. Это страница фильтра по дате создания (новинки).

if ($mode == 'new')
		{
		$fitler['limit'] = 5;
		$filter['sort'] = 'created';
		
		}
Ссылка на сообщение
Поделиться на другие сайты

В ProductsView? 

Пробую вот так, но не срабатывает. Это страница фильтра по дате создания (новинки).

if ($mode == 'new')
		{
		$fitler['limit'] = 5;
		$filter['sort'] = 'created';
		
		}

 

 

Нужно передавать количество товаров, а не количество страниц.

Сколько у вас в админке выставлено товаров на страницу?

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

48 товаров на странице, проблема что на $fitler['limit'] = 5; или $fitler['limit'] = 100; - сайт вообще никак не реагирует, как светились все 30 страниц так и светятся. 

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

48 товаров на странице, проблема что на $fitler['limit'] = 5; или $fitler['limit'] = 100; - сайт вообще никак не реагирует, как светились все 30 страниц так и светятся. 

 

И не должен реагировать. Чтобы реагировал, переменная должна быть названа правильно, а не как сейчас - смотрите свой код внимательно...

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

48 товаров на странице, проблема что на $fitler['limit'] = 5; или $fitler['limit'] = 100; - сайт вообще никак не реагирует, как светились все 30 страниц так и светятся. 

if($mode == 'new')
{
	$filter['limit'] = 240;
}
else
{
	$filter['limit'] = $items_per_page;
}
Ссылка на сообщение
Поделиться на другие сайты

Ставил и сверху кода и внизу над get_products - если ставить внизу то он выводит 240 товаров на одной странице, но страниц все равно остается 30..

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

Если ставить сверху то ничего не происходит а если возле get_products то выводится 240 товаров на странице

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

Надо не так

Надо вместо

// Вычисляем количество страниц
		$products_count = $this->products->count_products($filter);

Сделать как-то так

if($mode == 'new')
{
	// Вычисляем количество страниц
		$products_count = 240;
}
else
{
// Вычисляем количество страниц
		$products_count = $this->products->count_products($filter);
}


Тогда ссылок на страницы будет только 5

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

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

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

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

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

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

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

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

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

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