Фильтр страниц с несколькими тегами в Umbraco 4.7 - PullRequest
0 голосов
/ 14 февраля 2012

Я хочу поставить флажки на своей странице, соответствующие определенным тегам. Затем я хочу, чтобы пользователь мог отфильтровывать статьи в зависимости от того, какие флажки установлены. Например: пользователь хочет прочитать о яблоках и апельсинах и поэтому помечает как «яблоки», так и «апельсины». Результатом должны стать статьи, в которых оба помечены, но не только яблоки или только апельсины.

Есть идеи, как мне это сделать в Умбрако?
Я пользуюсь umbraco 4.7

1 Ответ

0 голосов
/ 15 февраля 2012

Есть несколько способов сделать это. Самый простой (но не самый масштабируемый) - создать тип данных с флажком, который называется «фрукт». Это будет добавлено ко всем типам документов, которые вы хотите фильтровать.

Затем можно использовать XLST / XPATH для фильтрации типов документов с документами с выбранными фруктами.

Edit:

XSLT, к которому вам нужно получить доступ и отобразить выбранные теги фруктов для определенной статьи, будет выглядеть примерно так:

<xsl:variable name="items" select="umbraco.library:Split($fruit,',')" />
<xsl:for-each select="$items//value">
   <xsl:value-of select="umbraco.library:GetPreValueAsString(current())"/>
</xsl:for-each>

В контексте фильтрации коллекции статей вы можете использовать этот код, чтобы он выглядел примерно так:

<xsl:for-each select="$currentPage//Article [umbraco.library:Split(./fruit,',')//value = 'orange']">
   <xsl:value-of select="./@nodeName"/>
</xsl:for-each>

При этом будут найдены все узлы Статьи на текущей странице, для которых тег фруктов установлен как «оранжевый», а затем отобразится заголовок каждой Статьи.

...