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


Выбор количества товаров на странице

товары в категории количество товаров

  • Вы не можете ответить в тему
Сообщений в теме: 25

#1 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 20 October 2012 - 08:00 PM

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

Выглядит так
Изображение
Изменения в 2х файлах, /core/includes/category.php и category.tpl.html в папке текущего шаблона.

1. /core/includes/category.php

находим строку

function _getUrlToNavigate( $categoryID )

перед ней вставляем


//-- change products per page number START --//
if (isset($_POST["change_perpage"])) $_SESSION['CUSTOM_PERPAGE'] = $_POST["change_perpage"];

function settingSELECT_PERPAGE()
{
$res = "";
if ( isset($_SESSION["CUSTOM_PERPAGE"])){
$selectedPP = $_SESSION["CUSTOM_PERPAGE"];
}else{
$selectedPP = _getSettingOptionValue("CONF_PRODUCTS_PER_PAGE");
}
define('CONF_CUSTOM_PER_PAGE', $selectedPP);
$pplist = array(5, 10, 20, 50); // в массиве перечисляем список из вариантов выбора

for ($i = 0; $i < count($pplist); $i++) {
if ($pplist[$i] != "") {
$res .= "<option value='".$pplist[$i]."' ";
if ($pplist[$i] == $selectedPP) $res .= "selected";
$res .= ">".$pplist[$i]."</option>";
}
}
return $res;
}

$varioperpage = settingSELECT_PERPAGE();
$smarty->assign("varioperpage",$varioperpage );
//-- change products per page number END --//


array(5, 10, 20, 50) - варианты выбора меняем на свои произвольные, желательно чтобы один из них совпадал со значением поля "Максимальное количество товаров на странице" из общих настроек в админке, он будет выбран по умолчанию.

в этом же файле ниже в двух местах меняем

CONF_PRODUCTS_PER_PAGE
на
CONF_CUSTOM_PER_PAGE

2. category.tpl.html

в нужном месте (зависит от структуры и дизайна конкретного шаблона) вставляем

<form action="" method="post" name="perpageform" id="perpageform">
  <select name="change_perpage" onchange="document.getElementById('perpageform').submit(); return false">{$varioperpage}</select>
</form>

Все. Проверяем, отписываемся.
Спасибы говорим "спонсору проекта" redali :)
  • 4
502 Bad Gateway

#2 Mihalich75

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 19 сообщений
Репутация: 0
Начинающий
  • ГородНевинномысск

Отправлено 08 February 2013 - 10:36 AM

Данный модуль не работает, видимо не хватает части кода. Варианты выбирать можно, но ничего не происходит...
  • 0

#3 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 08 February 2013 - 10:44 AM

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


"Данный модуль" установлен неоднократно и работает.
  • 0
502 Bad Gateway

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 February 2013 - 03:17 PM

Данный модуль не работает, видимо не хватает части кода.

Видимо, вы не внесли эту часть кода :). У меня работает, ничего дополнитекльно не дописывал.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 Mihalich75

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 19 сообщений
Репутация: 0
Начинающий
  • ГородНевинномысск

Отправлено 08 February 2013 - 05:46 PM

В том то и дело, что сделано всё согласно инструкции...
С результатом можете ознакомиться на http://best-yug.net/
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 February 2013 - 05:52 PM

В том то и дело, что сделано всё согласно инструкции...

Ага. Вот эта хрень -

<object=<p>'Количество товаров на странице'</p>></object>

- она сама внутрь тэга select вписалась или по инструкции? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 08 February 2013 - 05:54 PM

Дело в том что в category.tpl.html есть ошибка в тегах
и поэтому событие onchange не обрабатывается, ищите ошибку
  • 0
Изображение Изображение Изображение

#8 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 08 February 2013 - 05:56 PM

и судя по ". href=" вверху страницы, там наверняка хватает ошибок в коде. Как говорил классик, "неча на зеркало пенять" :)
  • 0
502 Bad Gateway

#9 Mihalich75

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 19 сообщений
Репутация: 0
Начинающий
  • ГородНевинномысск

Отправлено 08 February 2013 - 06:38 PM

Ага. Вот эта хрень -


<object=<p>'Количество товаров на странице'</p>></object>

- она сама внутрь тэга select вписалась или по инструкции? :)


эту хрень вписывал уже после, пытался текст вывести, но не знаю как... а так просто раскрывающийся список выводит и всё. читал разные сайты и ничего путнего не нашёл.
php и html пока что ещё не знаю... времени нет ни на что, даже на семью. освободится время - начну учить.
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 February 2013 - 07:06 PM

эту хрень вписывал уже после, пытался текст вывести, но не знаю как...

http://ru.wikipedia.org/wiki/%D2%E5%EE%F0%E5%EC%E0_%EE_%E1%E5%F1%EA%EE%ED%E5%F7%ED%FB%F5_%EE%E1%E5%E7%FC%FF%ED%E0%F5
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 Mihalich75

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 19 сообщений
Репутация: 0
Начинающий
  • ГородНевинномысск

Отправлено 09 February 2013 - 02:46 PM

Разобрался, вчера уже голова не работала. Некорректно код вставил в category.tpl.html
И текст перед блоком вставил - оказалось всё проще чем я думал.
Теперь работает. Осталось разобраться с ". href=" вверху страницы.

Нашёл и это. В head.tpl.html в конце осталось после правок.
  • 0

#12 SotaPerm

    Пользователь

  • Download User
  • PipPip
  • 11 сообщений
Репутация: 0
Начинающий

Отправлено 14 July 2013 - 09:51 PM

А как ещё помимо количества товара в списке выбора сделать показать все (чтобы выводил весь товар в списке) ?
И при смене категории не сбрасывается по умолчанию остаются то количество которое выбрано
  • 0

#13 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 July 2013 - 12:28 PM

А как ещё помимо количества товара в списке выбора сделать показать все (чтобы выводил весь товар в списке) ?

"Показать все" обычно присутствует в навигаторе по страницам. Частенько его принудительно убирают и правильно делают. В выпадающем списке "количество товаров на странице" этому пункту, на мой взгляд, совершенно не место. Тем более, когда выбор сохряняется при переходе из категории в категорию.

И при смене категории не сбрасывается по умолчанию остаются то количество которое выбрано

Так и задумано. И это удобно. Если не нужно, то упростите функцию убрав сохранение настройки в $_SESSION.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#14 SotaPerm

    Пользователь

  • Download User
  • PipPip
  • 11 сообщений
Репутация: 0
Начинающий

Отправлено 15 July 2013 - 09:42 PM

А не подскажите ещё вот допустим вставляю этот выбор товара вверху и внизу страницы при этом работает только 1 верхний то что внизу не срабатывает т.е. не меняет значения. если убрать сверху страницы то нижний начинает работать.
  • 0

#15 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 15 July 2013 - 09:47 PM

А не подскажите ещё вот допустим вставляю этот выбор товара вверху и внизу страницы при этом работает только 1 верхний то что внизу не срабатывает т.е. не меняет значения. если убрать сверху страницы то нижний начинает работать


потому что ID дублируются. нужно или оставлять один селект, или переписывать код второго с другими именами и ID
  • 1
502 Bad Gateway

#16 zcz

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 104 сообщений
Репутация: 62
Продвинутый

Отправлено 21 February 2014 - 04:29 PM

Во первых - огромное спасибо за модуль.
Во вторых - небольшая доработка. Потребовалось вывести вариант "все" в конец.. в общем решение такое:

//-- change products per page number START --//
if (isset($_POST["change_perpage"])) $_SESSION['CUSTOM_PERPAGE'] = $_POST["change_perpage"];

function settingSELECT_PERPAGE()
{
$res = "";
if ( isset($_SESSION["CUSTOM_PERPAGE"])){
$selectedPP = $_SESSION["CUSTOM_PERPAGE"];
}else{
$selectedPP = _getSettingOptionValue("CONF_PRODUCTS_PER_PAGE");
}
define('CONF_CUSTOM_PER_PAGE', $selectedPP);
$pplist = array(9, 18, 36, 72, 1000); // в массиве перечисляем список из вариантов выбора

for ($i = 0; $i < count($pplist); $i++) {
if ($pplist[$i] != "") {
	if ($i != 4) {
		$res .= "<option value='".$pplist[$i]."' ";
		if ($pplist[$i] == $selectedPP) $res .= "selected";
		$res .= ">".$pplist[$i]."</option>";
	}
	elseif ($i == 4) {
		$res .="<option value='".$pplist[$i]."' ";
		if ($pplist[4] == $selectedPP) $res .="selected";
		$res .=">Все</option>";
	}
}
}
return $res;
}

$varioperpage = settingSELECT_PERPAGE();
$smarty->assign("varioperpage",$varioperpage );
//-- change products per page number END --//

Данный код для последнего вывода пишет надпись "все". Ну и 1000, соответственно, заменить на максимальное чило товаров.
Ну и если вариантов больше 5, то
elseif ($i == 4) {
4 заменяем на последнюю цифру цикла. (не забываем, что начинает считать с 0)
Спасибо.
  • 0
Пишу, устанавливаю, натягиваю))) pix-art.ru

#17 Amiga

    Пользователь

  • Download User
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 23 September 2014 - 10:20 AM

Народ помогите после установки данного модуля, при нажатии на любую категорию выводится пустой экран!
  • 0

#18 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 23 September 2014 - 10:32 AM

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

Какой помощи ты ждешь? Посочувствовать разве что можем :)
  • 0
502 Bad Gateway

#19 Amiga

    Пользователь

  • Download User
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 23 September 2014 - 10:45 AM

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

Какой помощи ты ждешь? Посочувствовать разве что можем :)

Спасибо и на этом, но может поможете подскажете где что ковырять?
  • 0

#20 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 23 September 2014 - 10:51 AM

Не нужно ничего ковырять. Достаточно просто следовать инструкции. Она не единожды проверена. А угадывать где вы там смогли накосячить - никакого желания.
  • 0
502 Bad Gateway