Перейти к содержимому


Фотография
* * * - - 2 Голосов

Выбор количества показываемых товаров на странице с фронта

рецепт материалы категория

Сообщений в теме: 35

#1 i001

i001

Отправлено 11 January 2014 - 23:28

1. Правим файл components\com_zoo\controllers\default.php
в public function category()
 строка 207 
 
меряем это
 

	// raise warning when category can not be accessed
		if (!isset($this->categories[$category_id])) {
			return $this->app->error->raiseError(403, JText::_('Unable to access category'));
		}

		$this->category   = $this->categories[$category_id];
		$params	          = $category_id ? $this->category->getParams('site') : $this->application->getParams('frontpage');
		$this->item_order = $params->get('config.item_order');
		$layout 		  = $category_id == 0 ? 'frontpage' : 'category';
		$items_per_page   = $params->get('config.items_per_page', 15);
		$offset			  = max(($page - 1) * $items_per_page, 0);

на это

  // raise warning when category can not be accessed
        if (!isset($this->categories[$category_id]))
        {
            return $this->app->error->raiseError(403, JText::_('Unable to access category'));
        }

        $this->category = $this->categories[$category_id];
        $params = $category_id ? $this->category->getParams('site') : $this->application->getParams('frontpage');
        $this->item_order = $params->get('config.item_order');
        $layout = $category_id == 0 ? 'frontpage' : 'category';
        if (isset($_GET['limit']))
            $_SESSION['limit'] = $this->app->request->getInt('limit', 25);
        elseif (!isset($_SESSION['limit']))
            $_SESSION['limit'] = $this->app->request->getInt('limit', 25);
        $items_per_page = $_SESSION['limit'];
        $offset = max(($page - 1) * $items_per_page, 0);

2. Далее выводим сами цифры
 
media\zoo\applications\jbuniversal\templates\catalog\category.php
строка 52 сразу после 

 // category items render 

вставляем это

 ?>
    Показывать по:
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '1'): ?>
        <b>1</b>
    <? else: ?>
        <a href="?limit=1">1</a>
    <? endif; ?>
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '50'): ?>
        <b>50</b>
    <? else: ?>
        <a href="?limit=50">50</a>
    <? endif; ?>
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '100'): ?>
        <b>100</b>
    <? else: ?>
        <a href="?limit=100">100</a>
    <? endif; ?>
    шт.
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '0'): ?>
        <b>Все</b>
    <? else: ?>
        <a href="?limit=0">Все</a>
    <? endif; ?>
    <?

В данном примере расмотрен такой вариант 
Показывать по: 25 50 100 шт. Все
 
 


Сообщение отредактировал i001: 06 February 2014 - 20:31

  • 4

#2 i001

i001

Отправлено 13 January 2014 - 00:26

В последнем пункте

 

ставим этот код, решает проблему с чпу

 <script type="text/javascript">
        jQuery(document).ready(function($){
            $('.limit').click(function(){
                $('form#limit input[name="limit"]').val($(this).data('limit'));
                $('form#limit').submit();
                return false;
            })
        });
    </script>
    <form id="limit" method="get"><input type="hidden" name="limit"></form>
    Показывать по:
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '25'): ?>
        <b>25</b>
    <? else: ?>
        <a href="#" data-limit="25" class="limit">25</a>
    <? endif; ?>
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '50'): ?>
        <b>50</b>
    <? else: ?>
        <a href="#" data-limit="50" class="limit">50</a>
    <? endif; ?>
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '100'): ?>
        <b>100</b>
    <? else: ?>
        <a href="#" data-limit="100" class="limit">100</a>
    <? endif; ?>
    шт.
    <? if (isset($_SESSION['limit']) && $_SESSION['limit'] == '0'): ?>
        <b>Все</b>
    <? else: ?>
        <a href="#" data-limit="0" class="limit">Все</a>
    <? endif; ?>

  • 3

#3 B_A_H_O

B_A_H_O

Отправлено 24 February 2014 - 22:58

что-то не работает :( :(

В первой версии ссылки ведут на главную страницу.

Во второй версии (код под ЧПУ) вообще не грузится сайт - белый экран.

 

Что не так?

 

И как этот хак применить с хаком-сортировки?


  • 0

#4 i001

i001

Отправлено 03 March 2014 - 15:47

второй код обрамлен  в

 ?>    <?

?

 

С хаком сортировки никто не мешает применить, допишите соотвествующие строки в файлы и все будет работать. 


  • 1

#5 B_A_H_O

B_A_H_O

Отправлено 04 March 2014 - 00:23

нет, был необрамлен ::)


  • 0

#6 B_A_H_O

B_A_H_O

Отправлено 04 March 2014 - 14:26

пробовал совместить Ваши хаки сортировки и количества материалов.

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

И как я и писал, Ajax фильтр при этом слетает.

То есть нужно или хаки делать на Ajax или фильтр без Ajax.


  • 0

#7 Giadastar

Giadastar

Отправлено 01 April 2014 - 08:33

 

 

2. Далее выводим сами цифры
 
media\zoo\applications\jbuniversal\templates\catalog\category.php
строка 52 сразу после 

После вставки кода из второго пункта сайт вырубает (белый экран), не подскажите в чем может быть причина?


  • 0

#8 i001

i001

Отправлено 01 April 2014 - 09:01

второй код обрамлен  в

?> <?

?


Сообщение отредактировал i001: 01 April 2014 - 09:02

  • 0

#9 Giadastar

Giadastar

Отправлено 01 April 2014 - 09:29

 

второй код обрамлен  в

?> <?

?

 

Да второй обрамляю, но дело в том что и первый вариант (без чпу) тоже не работает + тоже самое у меня происходит когда изменения для добавления сортировки по цене и по имени вношу (http://forum.jbzoo.c...-i-td-s-fronta/)


  • 0

#10 Giadastar

Giadastar

Отправлено 01 April 2014 - 09:56

Все-таки заработало)) проблема была с <?, помогла замена на <?php


  • 0





Темы с аналогичным тегами рецепт, материалы, категория

Click to return to top of page in style!