استرداد قائمة الوسائط في umbraco
سؤال
لقد بدأت للتو اللعب بنظام XSLT في أومبراكو حيث كنت أتمنى إنتاج ماكرو يدرج جميع الوسائط ضمن دليل وسائط محدد.لقد صادفت umbraco.library:GetMedia، لكن بصراحة، ليس لدي أي فكرة عما يجب تمريره إليه للحصول على قائمة العناصر.مستندات API في http://umbraco.org/apiDocs/html/M_umbraco_library_GetMedia.htm يبدو أنه يشير إلى أن ما أريده على الأرجح هو البحث عن عقدة (كيف؟) ثم تمريرها بها
umbraco.library:GetMedia(<some node id>, true)
كيف يمكنني الحصول على معرف العقدة الأولي هذا؟
وبعد ذلك شيء من هذا القبيل العمل؟
<xsl:for-each select="umbraco.library:GetMedia(<SOMEMAGIC>, 'true')">
<li>
<a href="{umbraco.library:NiceUrl(@id)}">
<xsl:value-of select="@nodeName"/>
</a>
</li>
</xsl:for-each>
المحلول 2
بفضل بعض المساعدة الكبيرة من الأشخاص في منتديات أومبراكو، اكتشفت ذلك.الخيط هو هنا والحل هو في الأساس هذا XSLT
<xsl:for-each select="umbraco.library:GetMedia($currentPage/data [@alias='mediaDir'], 'true')/node">
<li>
<xsl:choose>
<xsl:when test="umbraco.library:GetMedia(@id, 'false')/data [@alias = 'umbracoFile']">
<a><xsl:attribute name="href">
<xsl:value-of select="umbraco.library:GetMedia(@id, 'false')/data [@alias = 'umbracoFile']"/>
</xsl:attribute>
<xsl:value-of select="@nodeName"/>
</a>
</xsl:when>
<xsl:otherwise>
<!--Do something with the directory-->
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:for-each>
إلى جانب التحكم في منتقي الوسائط على الصفحة.
نصائح أخرى
إليك نفس الرمز ولكن تم تحديثه للعمل مع Umbraco 4.5 أو الأحدث:
<xsl:variable name="images" select="umbraco.library:GetMedia($currentPage/mediaDir, 1)" />
<xsl:for-each select="$images/*">
<li>
<xsl:choose>
<xsl:when test="string(local-name()) = 'Image'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="./umbracoFile"/>
</xsl:attribute>
<xsl:value-of select="@nodeName"/>
</a>
</xsl:when>
<xsl:otherwise>
<!--Do something with the directory-->
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:for-each>
لا تنتمي إلى StackOverflow