Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод ссылками названия тем "Входит в сюжеты" на главной странице новостей

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 4171
Последний ответ 01 Ноября 2013, 22:41:58
от Axiomateria
Вывести сумму заказа на странице "Заказ поступил в обработку"

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3790
Последний ответ 07 Ноября 2014, 23:46:49
от Axiomateria
Новые товары каталога на главной странице сайта (xslt)

Автор wolfmanРаздел Шаблоны XSLT

Ответов: 7
Просмотров: 5430
Последний ответ 21 Сентября 2012, 21:09:41
от admin
Вывод на странице названия (заголовка) главного раздела в его объекте

Автор AxiomateriaРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 2646
Последний ответ 13 Сентября 2013, 11:07:44
от admin
[Решено] Проблема переноса с хостинга на хостинг

Автор A Раздел Установка UMI.CMS

Ответов: 10
Просмотров: 14027
Последний ответ 04 Апреля 2011, 10:42:58
от admin

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

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
проблема сортировки на странице
« : 13 Сентября 2013, 13:32:17 »
Прошу помочь в решении вопроса. С UMI.CMS работаю три месяца. Использую TPL-шаблонизатор. Для вывода товаров по определенному значению поля использую %system getOuterContent()%

Создала в структуре пустую страницу. Назвала ее for_brands
Теперь в разделах каталога, где надо вывести товары по определенному бренду пишу
%system getOuterContent('http://www.oktoy.ru/for_brands/?fields_filter[brand]=1191')%
все выводится так как мне надо (например, http://oktoy.ru/shop/brendy/lego/ - вывести все товары по бренду Lego)
проблема в том, что при таком вызове - не работает сортировка по цене и по рейтингу. А если вызвать страницу напрямую http://www.oktoy.ru/for_brands/?fields_filter[brand]=1191 - то сортировка работает.
Как правильно решить эту проблему?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #1 : 13 Сентября 2013, 14:13:37 »
хитрый ход  ;)

дело в том что сортировка передается в адресную строчку, которая видимо игнорируется вашим макросом %system getOuterContent()% прописаным на странице for_brands.
Может стоит попробовать работать через макрос %system getFilteredPages()% предположительно, он будет подхватывать сортировку, а определенный бренд ему можно передать как параметры при его вызове.

Или более сложный вариант, но обычно я использую его. Создаем макрос который добавляет в $_REQUEST параметры определенные значения (конечно для этого пришем маленький макрос, предположим в /classes/custom.php). Что то вроде
public function addFilterParams($name=NULL,$value=NULL){
          if(!$name || !$value) return;
          $_REQUEST['fields_filter'][$name]=$value;
          return ;        
     }

теперь создаем в админке страницу для бренда "LEGO" и в поле контент пишем %custom addFilterParams(brand,1191)% , а за ним вызываем макрос вывода всего каталога %catalog getObjectsList('default', '/shop/',,,100)%.

P.S. надеюсь с запятыми не намудрил при вызове макроса getObjectsList
« Последнее редактирование: 14 Сентября 2013, 14:58:12 от admin »

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #2 : 13 Сентября 2013, 22:44:20 »
Спасибо, получилась моя сортировка! Единственно, я в макросе еще в условии дописала отрицание - !$value, чтоб фильтр получился. Только почему-то выдается сообщение:
"По Вашему запросу ничего не найдено!!"
Хотя все объекты на месте.

http://www.oktoy.ru/shop/brendy/lego/

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #3 : 14 Сентября 2013, 14:58:01 »
видимо уже починили, по ссылке все работает.

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #4 : 14 Сентября 2013, 21:26:58 »
Частично удалось. Но внизу списка товаров это сообщение выводится. Я полагаю из-за параметра %catetegory_id%, используемого в шаблонах, так как по факту товары в брендах, брендовым категориям не принадлежат физически
« Последнее редактирование: 14 Сентября 2013, 21:30:36 от kobus »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #5 : 15 Сентября 2013, 11:37:28 »
вы по поводу сообщения "По Вашему запросу ничего не найдено!!" в низу центральной части страницы?

приведите что у вас в поле контент страницы LEGO и ваш ~tpls/catalog/default.tpl файл

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #6 : 16 Сентября 2013, 13:26:23 »
в поле content страницы LEGO:

%custom addFilterParams('brand','1191')%
%catalog getObjectsList('default','/shop/','24', '',4)%
-------------------------------------------------------------------------------
в шаблоне  ~tpls/catalog/default.tpl

<?php
$FORMS = Array();
$FORMS['category'] = <<<END
%descr%
%catalog getObjectsList('default', '%category_id%', '24', '',4)%
END;


$FORMS['category_block'] = <<<END
<h3>Подразделы</h3>
<ul>
   %lines%
</ul>
END;

$FORMS['category_block_empty'] = "";
$FORMS['category_block_line'] = <<<END
<li><a href="%link%"><b>%text%</b></a></li>
END;

$FORMS['objects_block'] = <<<END
<table style="width: 100%;">
   <tr><td>%catalog search('/shop/','','default','%type_id%')%</td></tr>
</table>
<div class="verh">%system numpages(%total%, %per_page%, 'catalog')%</div>
 <div class="showcase">
        <div class="showcase__item">
<div umi:method="catalog" umi:module="category" umi:element-id="%category_id%" class="showcase__line1">
%lines%
</div>
</div></div>
<div style="clear: both;"></div>
<div class="niz">
%system numpages(%total%, %per_page%, 'catalog')%
</div>
<br /><br />

END;


$FORMS['objects_block_search_empty'] = <<<END
%catalog search('/shop/', 'cenovye_svojstva', 'search')%
<div class="filt">По Вашему запросу ничего не найдено!!</div>
END;

$FORMS['objects_block_line'] = <<<END
%catalog viewObject(%id%, 'preview')%
END;

$FORMS['view_block'] = <<<END
......
END;

$FORMS['search_block'] = <<<END
<div class="side__title slide__title__select_title">
                Поиск по сайту
            </div>
<div class="side__block">
   <div class="small-select">
      <form id="s1" method="get" action="%content get_page_url(36)%">
         <div class="select__container">
            %lines%
         </div>
         <table class="small-select__buttons">
                            <tbody>
            <tr>
                                <td>
                                    <input type="submit" class="small-select__button">
                                </td>
                                <td>
                                    <a href="/shop/?fields_filter[old]=&fields_filter[sex]=&fields_filter[hero]=&fields_filter[brand]=&fields_filter[price][0]=&fields_filter[price][1]=" >сбросить</a>
                                </td>
                            </tr>
                        </tbody></table>
      </form>
   </div>   
</div>   
END;

$FORMS['search_block_line'] = <<<END
      %selector%
END;

$FORMS['search_block_line_relation'] = <<<END
 <div class="select__wrap">
      <select name="fields_filter[%name%]" class="select__item select__item_%name%" id="select-%name%">
         <option value="" class="tooltips">%title%</option>
   %items%
      </select>
</div>
END;

$FORMS['search_block_line_text'] = <<<END
<tr id="hat">
   <td>
      %title%
   </td>
</tr>
<tr>
   <td>
      <input type="text" name="fields_filter[%name%]" class="textinputs" value="%value%" />
   </td>
</tr>
END;

$FORMS['search_block_line_price'] = <<<END
 <table class="small-select__table">
                            <tr>
                                <td>Цена от</td>
                                <td><input class="small-select__input"  type="text" name="fields_filter[%name%][0]"   value="%value_from%"  />
                                </td>
                                <td>до</td>
                                <td><input class="small-select__input" type="text" name="fields_filter[%name%][1]" value="%value_to%" /></td>

                            </tr>
                        </table>

END;

$FORMS['search_block_line_boolean'] = <<<END
<tr id="hat">
   <td>
      <label for="fields_filter[%name%]" style="">%title%</label>
   </td>
</tr>
<tr>
   <td>
      <input type="checkbox" name="fields_filter[%name%]" id="fields_filter[%name%]" %checked% value="1" />
   </td>
</tr>
END;
?>
« Последнее редактирование: 16 Сентября 2013, 13:46:01 от kobus »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #7 : 16 Сентября 2013, 13:39:17 »
... и ваш ~tpls/catalog/default.tpl файл

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #8 : 16 Сентября 2013, 13:49:13 »
добавила, не увидела, что не прицепился сразу

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #9 : 16 Сентября 2013, 14:17:21 »
Страница LEGO это раздел каталога? поэтому помимо вывода ваших инструкций

%custom addFilterParams('brand','1191')%
%catalog getObjectsList('default','/shop/','24', '',4)% в поле контент, которые выводят все как надо

Система еще пытается запустить макрос %catalog category()% который по умолчанию запускается для данных страниц, который начинает с блока

$FORMS['category'] = <<<END
%descr%
%catalog getObjectsList('default', '%category_id%', '24', '',4)%
END;

который через переменную %descr%, подгружает ваше поле с контентом, а затем запускает макрос %catalog getObjectsList('default','/shop/','24', '',4)%, колторый при своей работе учитывает есть ли фильтрующие параметры и выводит либо результат фильтра, либо блок с пустым результатом. В вашем случае, это
$FORMS['objects_block_search_empty'] = <<<END
%catalog search('/shop/', 'cenovye_svojstva', 'search')%
<div class="filt">По Вашему запросу ничего не найдено!!</div>
END;

Варианты решения:
1. страницы с товарами бренда делать не "раздел каталога", а обычные "страница контента"
2. использоваться для страниц "разделы каталога" которые выводят товары определенного бреднаа особый шаблон дизайна, в котором вместо %content% будет %descr% вызов

*

kobus

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #10 : 16 Сентября 2013, 14:30:36 »
Спасибо за помощь. Буду пробовать оба варианта, хотя на мой взгляд - второй вариант предпочтительней - меньшей кровью обойдется.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:проблема сортировки на странице
« Ответ #11 : 16 Сентября 2013, 14:39:13 »
так и есть  ;)