Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
подсчет количества объектов каталога в разделе с учетом фильтра

Автор fantom103Раздел Шаблоны TPL

Ответов: 6
Просмотров: 7583
Последний ответ 02 Октября 2014, 14:14:39
от fantom103
Скрыть ненужные позиции фильтра каталога (выпадающий список)

Автор smartwebРаздел Макросы UMI.CMS

Ответов: 1
Просмотров: 1797
Последний ответ 17 Ноября 2016, 23:45:58
от aghigay
Вывод фильтра в разделах каталога второго уровня.

Автор s.kirillРаздел Макросы UMI.CMS

Ответов: 11
Просмотров: 5867
Последний ответ 19 Января 2017, 09:48:55
от e.ioffe
Вывод одного фильтра на всех страницах?

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

Ответов: 7
Просмотров: 3542
Последний ответ 14 Мая 2014, 12:24:32
от admin
Вывод фильтра в главном шаблоне

Автор WenLeksРаздел Настройка системы и модулей

Ответов: 27
Просмотров: 7873
Последний ответ 21 Июля 2014, 16:57:34
от WenLeks

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

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Реализация фильтра
« : 01 Марта 2016, 14:03:43 »
Ситуация такая.
У меня есть куча Специалистов, которые должны быть привязаны к разным Специализациям, сейчас они привязываются с помощью выпадающего списка, в котором выбираются Специализации.

Специалисты и Специализации являются типом данных и так же они могут использоваться как справочник.
У некоторых Специалистов может быть несколько направлений.

Получается на странице сотрудников вверху под крошками есть список Специализаций, если выбираешь Администрация, то должны отобразиться Специалисты у которых выбрана Специализация Администрация.
И соответственно если выбираешь все Специализации, то идет заголовок <h3></h3> с вставленным названием Специализации, и получается так, что Специалист на странице должен появляться несколько раз.

Думала использовать облако тегов, но почитав, вообще реально в облако тегов занести данные из справочника Специализаций?


вот запрос сотрудников:
 	<xsl:template match="result[page/@id = '272']">
<div class="specialize">
<h3>Администрация</h3> <!-- тут по сути должен быть запрос, который берет название из справочника -->
</div>
<div class="specialists">
<ul>
<xsl:apply-templates select="document('usel://main/272/148')/udata" mode="human"/>
</ul>
</div>
</xsl:template>
<xsl:template match="udata" mode="human">
<xsl:apply-templates select="page" mode="human"/>
    </xsl:template>

<xsl:template match="page" mode="human">
<li class="specialists_item">           
<a href="{@link}">
<span class="text">
<img src="{.//property[@name='fotografiya']/value}" alt="" />
<big><xsl:value-of select="//property[@name = 'familiya']/value"/></big>
<small><xsl:value-of select="//property[@name = 'imya_otchestvo']/value"/></small>
<p><xsl:value-of select="extended/properties/property[@name = 'dolzhnost']/value" disable-output-escaping="yes"/></p>
</span>
</a>
</li>
</xsl:template>

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #1 : 01 Марта 2016, 14:28:53 »
Так а вопрос-то какой? :-)

И, кстати, я предпочитаю делать связки между разными страницами на сайте через ссылки в дереве. Конечно может целостность помереть: пользователь ткнул не в тот тип. Но зато быстро и просто.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #2 : 01 Марта 2016, 14:39:27 »
Вопрос в том как это реализовать.
Я думала это реализовать через табы, но это будет просто оооочень огромная страница. Или можно как-то обратиться к справочнику, в данном случае Специализация, чтобы он вывелся в табы? А специалисты заносились в tabs__content....
Звучит и выглядеть кажется будет очень бредово...

Использовать хочу самый простой таб:
<div class="tabs">
  <ul class="tabs__caption">
    <li class="active">1-я вкладка</li>
    <li>2-я вкладка</li>
  </ul>
  <div class="tabs__content active">
    Содержимое первого блока
  </div>
  <div class="tabs__content">
    Содержимое второго блока
  </div>
</div>


Я просто не знаю как связать справочники между собой. Чтобы при выборе специализации фильтровались специалисты....
Например прикол в том, что нужно, чтобы два специалиста рандомно выводились в правой колонке на странице описания специализации.
У меня мозг уже охреневает на самом деле...

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #3 : 01 Марта 2016, 14:44:31 »
Оуоуоу, полегче

Внешний вид и способ хранения данных - это независимые штуки. Не надо их мешать. Табы - это табы. Это просто верстка в виде табов.

Вопрос в том, как получить список специалистов по конкретной специализации? Или как отобразить этот список?
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #4 : 01 Марта 2016, 14:59:43 »
Да, получается список специалистов по конкретной специализации.

Я догадываюсь что независимые, а так как на umi первый раз делают сайт абсолютно с нуля, вот я и уточняю на всякий случай всю информацию по вопросу, которая вдруг будет нужна.
Да и мозг уже несется на автомате, вдруг что забыла я 10-ый день работаю, поэтому волнуюсь уже :-X

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #5 : 01 Марта 2016, 15:05:34 »
Самый простой способ: взять usel и задать выборку с условием. Что-то типа http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/#sel=114:1,114:6
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #6 : 01 Марта 2016, 15:26:57 »
Я видела, но честно не могу представить как применить... Т___Т
И я не умею работать с usel... в запросе к специалистам мне просто повезло найти готовый xml.....

Поэтому и пишу тут Т__Т

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #7 : 01 Марта 2016, 16:48:11 »
Работать с ним примерно так:
1. в каталоге usel шаблона или сайта сделать файлик с правилами usel (например, test.xml)
2. в конфиге проверить что параметр usel.http.allow = "1" (если 0 - то исправить)
3. на сайте вызвать usel в таком формате: http://site.ru/usel/test/
4. наслаждаться списком в виде xml
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #8 : 01 Марта 2016, 18:06:46 »
Да... объяснение на грани фола..

Если я знала как правильно составлять usel, а так же знала бы нюансы построения usel и справочника (допустим) в xslt, думаю вопросов у меня бы не возникало.

Даже 40% специалистов я сделала на примере, 40%  мне объяснили на форуме, при том как говорится я самой сути не знала. 20% я в итоге методом проб и ошибок вычислила. И несколько страниц на этом методе что узнала, я уже сделала.

Если бы время было сидела бы я и читала, ни дергалась бы =_= и тестила-тестила-тестила. Спокойно и не мучалась бы
А тут еще заказчик придумывает каждый раз новую хрень

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #9 : 01 Марта 2016, 18:11:59 »
Вот тут: http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/ написано как правильно составлять USEL.

И еще, я прекрасно понимаю, что кинуть ссылку - не самый лучший ответ.

Но так же я понимаю, что пользоваться форумом вместо того, чтобы почитать элементарные основы - это тоже не самый лучший вариант.

Чтобы понять как что-то делать - нужно знать хотя бы основные правила. Больше не нужно. А для этого нужно почитать мануал. Без этого никуда. Рассказывать мануал, если честно, не очень хочется.
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #10 : 01 Марта 2016, 18:39:25 »
Среди сайтов в доступе, я таких примеров не нашла. Много уже смогла на этих примерах разобрать и сделать, а так сделала себе отдельный список, чтобы изучить подробней то, что мне не понятно, но сейчас я не могу взять бросить все и читать -_-.

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

Поэтому хотелось бы практический пример.


*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #11 : 01 Марта 2016, 21:46:34 »
Сайт в студию - будем гонять живьем

И, кстати, читать форум = читать доку. Слово читать и там и тут ;-)
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #12 : 02 Марта 2016, 16:23:18 »
Как сделать его в студию, он локальный ><

Попробовала сделать по примерам получился вот такой xml (на это моих знаний и хватило)
<?xml version="1.0" encoding="utf-8"?>

<selection>
    <target result="pages">
        <type id="152" />
    </target>
<extended>
        <properties>h1</properties>
    </extended>
</selection>

Вот как идет запрос на странице специалисты, и сверху специалистов сейчас находится все Специализации в виде списка.

Лазила и по dev и по wiki сайтам по umi, даже думала что нашла, но так и не уловила суть. не нашла я как связать два справочника

У каждого специалиста есть выпадающий список с множественным выбором и там выделено какие специализации он имеет, хотела его вывести и посмотреть, но ничего не выводит, может я не так сделала запрос? (выделено комментарием)

 	<xsl:template match="result[page/@id = '272']">
<ul>
<xsl:apply-templates select="document('usel://directions/272/152')/udata" mode="directions"/>
</ul>
<div class="specialize">
<h3>Администрация</h3>
</div>
<div class="specialists">
<ul>
<xsl:apply-templates select="document('usel://main/272/148')/udata" mode="human"/>
</ul>
</div>
</xsl:template>

<xsl:template match="udata" mode="human">
<xsl:apply-templates select="page" mode="human"/>
    </xsl:template>

<xsl:template match="page" mode="human">
<li class="specialists_item">
<a href="{@link}">
<span class="text">
<xsl:value-of select="extended/properties/property[@name = 'otdelenie']/value" /> <!-- вот эта строка не выводится, хотя поле прописано в xml -->
<img src="{extended/properties/property[@name='fotografiya']/value}" alt="" />
<big><xsl:value-of select="extended/properties/property[@name = 'familiya']/value"/></big>
<small><xsl:value-of select="extended/properties/property[@name = 'imya_otchestvo']/value"/></small>
<p><xsl:value-of select="extended/properties/property[@name = 'dolzhnost']/value" disable-output-escaping="yes"/></p>
</span>
</a>
</li>
</xsl:template>


<xsl:template match="udata" mode="directions">
<xsl:apply-templates select="page" mode="directions"/>
</xsl:template>

<xsl:template match="page" mode="directions">
<li>
<xsl:value-of select="extended/properties/property[@name = 'h1']/value" />
</li>
</xsl:template>

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Реализация фильтра
« Ответ #13 : 02 Марта 2016, 16:34:37 »
Зачем связывать 2 справочника?
Мой блог http://umicms.me

*

Sumrakrnd

  • ****
  • 311
  • +1/-0
  • Учусь «на примерах»
    • Просмотр профиля
Re: Реализация фильтра
« Ответ #14 : 02 Марта 2016, 17:05:41 »
Хм... а как тогда по другому реализовать фильтр?
Я бы еще предположила сделать вывод Специалистов по отмеченным в поле Специализациям.
Т.е. у нас есть выводимый сверху список Специализаций, при выборе какой-то специализации выводить тех Специалистов, у которых в поле списка со множественным выбором, где подключен справочник Специализации, выбраны одна или несколько специализаций.

Но такой метод я  сомневаюсь что осилю, тут кроме теоретической стороны, ничего предположить не могу
Не говоря о том, что у меня почему-то не выводится содержимое поля списка... (((
Хотя оно есть:
<group id="411" name="specialisty">
<title>Специалисты</title>
<property id="512" name="dolzhnost" type="text" is-important="0">
<title>Должность</title>
<value>Профессор, руководитель центра</value>
</property>
<property id="519" name="specialzaciya" type="relation" multiple="multiple" is-important="0">
<title>Специализация</title>
<value><!-- Вот список -- >
<item id="1314" name="Тест1" type-id="152" update-time="1456911122" ownerId="59" xlink:href="uobject://1314"/>
<item id="1343" name="Тест2" type-id="152" update-time="1456911260" ownerId="59" xlink:href="uobject://1343"/>
<item id="1344" name="Тест3" type-id="152" update-time="1456911865" ownerId="59" xlink:href="uobject://1344"/>
<item id="1363" name="Тест4" type-id="152" update-time="1456914369" ownerId="59" xlink:href="uobject://1363"/>
</value>
</property>
<property id="521" name="familiya" type="string" is-important="0">
<title>Фамилия</title>
<value>Вторая</value>
</property>
<property id="522" name="imya_otchestvo" type="string" is-important="0">
<title>Имя Отчество</title>
<value>Имя Первое</value>
</property>
</group>
« Последнее редактирование: 02 Марта 2016, 17:14:49 от Sumrakrnd »