Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

Cubes

  • *
  • 13
  • +0/-0
    • Просмотр профиля
Собственно задача стоит в том, чтобы в каталоге не выводить список объектов, пока пользователь не воспользуется фильтром. Можно ли это реализовать штатными средствами или придется писать кастомный макрос на основе %catalog viewObject()%?

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Нужно сделать для tpl или xslt шаблонизатора?
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

Cubes

  • *
  • 13
  • +0/-0
    • Просмотр профиля

*

admin

  • *****
  • 2443
  • +172/-1
    • Просмотр профиля
Вам нужна какая-то проверка, что фильтрующие параметры есть в адресной строке.

Так как в отличие от xslt, мы не сможем проверить результат макроса %catalog search()% и вывести или не вывести макрос %catalog getObjectsList()%, то придеться делать что-то вроде:

- Либо делаете маленький кастомный скрипт, который делает такую проверку и при успешном ответе вызывает макрос вывода товаров %catalog getObjectsList()%.
- Либо пишите кастомную версию макроса %catalog getObjectsList()%, внутри которого делаете туже проверку.

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Если в остальном используется типовой функционал umi, лучше писать свои скрипты "прокси".

Например:

public function getObjectsListCustom($template = "default", $path = false, $limit = false, $ignore_paging = false, $i_need_deep = 0, $field_id = false, $asc = true) {
if(!$template) $template = "default";

$category_id = $this->analyzeRequiredPath($path);

if($category_id === false && $path != KEYWORD_GRAB_ALL) {
throw new publicException(getLabel('error-page-does-not-exist', null, $path));
}

if(!getRequest('fields_filter')) {
list($template_block, $template_block_empty, $template_block_search_empty, $template_line) = def_module::loadTemplates("catalog/".$template, "objects_block", "objects_block_empty", "objects_block_search_empty", "objects_block_line");

$block_arr['numpages'] = umiPagenum::generateNumPage(0, 0);
$block_arr['lines'] = "";
$block_arr['total'] = 0;
$block_arr['per_page'] = 0;
$block_arr['category_id'] = $category_id;

return $this->parseTemplate($template_block_search_empty, $block_arr, $category_id);
}

return $this->getObjectsList($template, $category_id, $limit, $ignore_paging, $i_need_deep, $field_id, $asc);
}
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/