2014-02-04 3 views
0

Я пытаюсь создать динамическую галерею с xslt и искать на форумах, но не могу найти ни одного потока с той же проблемой. Идея состоит в том, что пользователи могут выбирать до 6 изображений со вкладки мультимедиа на отдельных страницах контента, чтобы на разных страницах могли быть разные галереи. Файл сохраняется правильно, и я не получаю никаких ошибок, но при загрузке страницы ничего не отображается.xslt getMedia Umbraco macro

XSLT

<xsl:if test="$currentPage/image &gt; 0"> 
    <xsl:variable name="gal1" select="umbraco.library:GetMedia($currentPage/galimg1, false())" /> 
    <xsl:variable name="gal2" select="umbraco.library:GetMedia($currentPage/galimg2, false())" /> 
    <xsl:variable name="gal3" select="umbraco.library:GetMedia($currentPage/galimg3, false())" /> 
    <xsl:variable name="gal4" select="umbraco.library:GetMedia($currentPage/galimg4, false())" /> 
    <xsl:variable name="gal5" select="umbraco.library:GetMedia($currentPage/galimg5, false())" /> 
    <xsl:variable name="gal6" select="umbraco.library:GetMedia($currentPage/galimg6, false())" /> 

    <xsl:if test="not($gal1/error)"> 
     <xsl:variable name="url" select="$gal1/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
    <xsl:if test="not($gal2/error)"> 
     <xsl:variable name="url" select="$gal2/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
    <xsl:if test="not($gal3/error)"> 
     <xsl:variable name="url" select="$gal3/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
    <xsl:if test="not($gal4/error)"> 
     <xsl:variable name="url" select="$gal4/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
    <xsl:if test="not($gal5/error)"> 
     <xsl:variable name="url" select="$gal5/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
    <xsl:if test="not($gal6/error)"> 
     <xsl:variable name="url" select="$gal6/umbracoFile" /> 
     <a rel="prettyPhoto [gallery]" href="{$url}"> 
     <img src="{$url}" /> 
     </a> 
    </xsl:if> 
</xsl:if> 
+0

Можете ли вы вставить некоторый код отладки в свой XSLT, чтобы узнать значение какого-либо входа? Например. вверху, ''. Дайте нам знать результат. – LarsH

+0

Добавление '' до и после первой строки не приводит к изменению. Добавление '' после первых 6 переменных также не приводит к изменению. В настоящее время это не рендеринг в источнике просмотра в любой конфигурации. – Endot

+0

Я думаю, вы говорите, что когда вы «просматриваете источник», вы получаете совершенно пустую страницу? Боюсь, у меня нет много идей, чтобы предложить ... Можете ли вы найти аналогичную страницу, которая * работает *, и попытаться изменить ситуацию, чтобы сделать ее похожей на приведенную выше страницу, пока она не перестанет выводить что-нибудь? Также вы проверили журналы ошибок Umbraco? (Не знаю, где вы имели в виду, когда вы сказали, что не получили никаких ошибок.) – LarsH

ответ

0

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

<!-- Displays all images from a folder in the Media Library --> 
<xsl:if test="number($mediaFolderId)"> 
    <div class="galleryContainer"> 
     <xsl:for-each select="umbraco.library:GetMedia($mediaFolderId, true())/Image"> 
      <xsl:if test="umbracoFile !=''"> 
       <a href="{umbracoFile}" title="{umbracoDescription}" rel="prettyPhoto [gallery]"> 
        <img class="galleryWatermark" src="/images/logo_watermark.png" alt="{@nodeName}" title="{@nodeName}" style="background:url({umbracoFile}) top no-repeat; background-size:180px; width:100%; height:100%;" /> 
       </a> 
      </xsl:if> 
     </xsl:for-each> 
    </div> 
</xsl:if> 
Смежные вопросы