Помогите сделать запрос

Статус
В этой теме нельзя размещать новые ответы.

baldins

Создатель
Регистрация
7 Сен 2009
Сообщения
26
Реакции
0
Помогите, пожалуйста, сделать запрос к базе. Версия 5,1 1)Нужно сделать возможность пользователю выбирать сколько выводить ему товаров на странице 10,20,30 или все и как это реализовать в шаблоне?
Я думаю что в прототипе нужна функция которая будет это делать, а как потом эту функцию приделать к шаблону не разберусь.
2)как сделать чтобы при нажатии в левом столбце на одну категорию выводились(в центре) все товары этой категории, а подкатегории выводились ниже категорий,т.е.
1-категория выбрана
2
3
4
---
1,1
1,2
1,3
...
 
изменениями только шаблонов здесь не обойтись. Нужно добавить в шаблон ссылки на кол-во товаров для показа (например, /catalog/action=assortment&id=ID&rows=10&start=1, где ID - ID категории)
дальше в скрипте каталога ищешь case 'assortment':
в GLOBAL добаляй $request_rows.
и измени строчку $max_rows = $request_rows ? $request_rows : ($max_rows ? $max_rows : $CONFIG['catalog_max_rows']);
дальше в $navstr = $main->_show_nav_string
после 'nav', заменяеш на 'action='.$action.'&id='.$request_id.'&rows='.$max_rows,
может что-то упустил... проверь и отпишись
 
Спасибо, что ответил! Когда заменяю на 'action='.$action.'&id='.$request_id.'&rows='.$max _rows, сайт вообще не открывается, даже главная,но при стандартной записи все работает. А как сделать чтобы весь ассортимент выводился при нажатии на категорию, т.е. без подкатегорий? И как сделать по 1му вопросу?
 
вместо:
$main->_show_nav_string($this->table_prefix.'_catalog_products',
' AND active = 1 AND category_id='.$request_id,
'nav',
'action='.$action.'&id='.$request_id,
$request_start,
$max_rows,
'',
'',
0,
0);
нужно так:
$main->_show_nav_string($this->table_prefix.'_catalog_products',
' AND active = 1 AND category_id='.$request_id,
'nav',
'action='.$action.'&id='.$request_id.'&rows='.$max _rows,
$request_start,
$max_rows,
'',
'',
0,
0);

Добавлено через 20 минут
чтобы показать все товары в категории включая подкатегории нужно в case 'assortment':
после
$categs = $this->getSubCategsForRootCateg($request_id);
добавляеш
$in = $request_id;
if(is_array($categs)) {
foreach($categs as $categ){
$in .= ",".$categ['ctg_id'];
}
}
заменить
$prods = $this->getProdsOfSubCategs($request_id, $max_rows, $request_start);
на
$prods = $this->getProdsOfSubCategs($in, $max_rows, $request_start);

в функции getProdsOfSubCategs изменяеш запрос
заменить нужно
category_id = '.$prp.'
на
category_id in ('.$prp.')

возвращаешся в case 'assortment':
и изменяеш $navstr = $main->_show_nav_string.......
на
$navstr = $main->_show_nav_string($this->table_prefix.'_catalog_products',
" AND active = 1 AND category_id in (".$in.")",
'nav',
'action='.$action.'&id='.$request_id.'&rows='.$max_rows,
$request_start,
$max_rows,
'',
'',
0,
0);

должно работать
 
Не работает(((
Причем когда в
$prods = $this->getProdsOfSubCategs($in, $max_rows, $request_start, $categ[0]['title']);
убираю $categ[0]['title'], то каталог вообще не отображается(((
 
ну если ты уже изменял функцию getProdsOfSubCategs тогда просто адаптируй текст с моего поста под свою функци. Я так понимаю, ты добавил в функцию еще одну обязательную входную переменную и конечно при ее отсутствии у тебя будет белый экран. В настройках або поставь, чтобы выводились ошибки и предупреждения на экран.
Перед тем, как запостить ответ я проверил у себя эти изменения. Все работает. Перепроверь, что менял и где что добавлял.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху