Установите флажок из списка флажков xsl umbraco - PullRequest
1 голос
/ 03 февраля 2012

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

У меня есть переменная с именем value, в которой я получаю dataType 2084, который является списком флажков.

Как установить флажок для отдельного флажка в списке, если он установлен.Предварительные значения 99 и 101.

Любой, кто может помочь, очень благодарен!

Вот моя попытка ниже.

<xsl:param name="currentPage"/>
<xsl:param name="parentNode" select="/macro/parentNode"/>

<xsl:template match="/">

  <xsl:for-each select="$currentPage/OperationsMap[@id=$parentNode]/MarkerItem">

        <xsl:variable name="value" select="umbraco.library:GetPreValues('2084')"/>


        <div class="popup-box">

          <xsl:if test="$value/preValue[@alias='99'] = '1'">  
            <div class="colorbox-link-container">  
               <a href="#" class="colorboxLink">View current gallery</a>
             </div>     
            </xsl:if>

            <xsl:if test="$value/preValue[@alias='101'] = '1'">
              <div class="colorbox-link-container">
                <a href="#" class="colorboxLink">View historical project progress</a>
              </div>   
            </xsl:if>
        </div>

 </xsl:for-each>

</xsl:template>

</xsl:stylesheet>

1 Ответ

1 голос
/ 03 февраля 2012

GetPreValues возвращает набор данных для необработанного типа данных umbraco, а не статус, если они проверены или нет на каком-либо конкретном узле контента.

Допущения (не указанные в вопросе):

Ваш тип данных будет выглядеть примерно так:

<preValues>
    <preValue id="99">Red</preValue>
    <preValue id="100">Green</preValue>
    <preValue id="101">Blue</preValue>
</preValues>

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

MarkerItem/colours

Код:

Этот код был написан на лету, поэтому у меня не было времени проверить его.

<xsl:for-each select="$currentPage/OperationsMap[@id=$parentNode]/MarkerItem">

    <div class="popup-box">

        <!-- get the colours checked on MarkerItem -->
        <xsl:variable name="colours" select="./colours"/>
        <xsl:variable name="coloursValues" select="umbraco.library:Split($colours, ',')" />

        <!-- cycle through each of the checked colours -->
        <xsl:for-each select="$coloursValues/value">

            <xsl:choose>
                <xsl:when test=". = 'Red'">
                    <div class="colorbox-link-container">  
                        <a href="#" class="colorboxLink">View current gallery</a>
                    </div>
                </xsl:when>
                <xsl:when test=". = 'Blue'">
                    <div class="colorbox-link-container">
                        <a href="#" class="colorboxLink">View historical project progress</a>
                    </div>
                </xsl:when>
            </xsl:choose>

        </xsl:for-each>

    </div>

Надеюсь, это поможет вам.Очевидно, обновите любую ссылку на цвета и их значение на то, что конкретно для вас.

...