Share via


Библиотека документов: как изменить иконки для документов и как показать их в CQWP

??? ???????????? Content Query Web Part ????? ???????????? ?? ????, ??? ??? ? ?????? "Customizing the Content Query Web Part XSL" ?????? ??????? ??? ??? ????????.

?????? ??????????????? ??? ??????:  

? ?????? ?????????? ?????????? ???? ??????? ???? DocIcon. ??? ????, ????? ????? ??????????? ??? ???????????? ?? XSL, ??? ?????????? ????????? ? ????? ??? ????? ? ???????? CommonViewFields:

<property name="CommonViewFields" type="string">DocIcon, Lookup;</property>

 XSL ??????, ???????????? ???????? ? ??? ??????? ???????? ????.:

<xsl:stylesheet
  version="1.0"
  xmlns:xsl="https://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:ext="ext"
  exclude-result-prefixes="msxsl ext">

<xsl:template name="DocLib" match="Row[@Style='DocLib']" mode="itemstyle">
<p>
  
  <xsl:variable name="SafeLinkUrl">
            <xsl:call-template name="OuterTemplate.GetSafeLink">
                <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
            </xsl:call-template>
        </xsl:variable>
        <xsl:variable name="DisplayTitle">
            <xsl:call-template name="OuterTemplate.GetTitle">
                <xsl:with-param name="Title" select="@Title"/>
                <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
            </xsl:call-template>
        </xsl:variable>
        <xsl:variable name="LinkTarget">
            <xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if>
        </xsl:variable>
      
       <div >
       <xsl:choose>
          <xsl:when test="@DocIcon=''">
           <img src="_layouts/images/folder.gif" alt="" />
          </xsl:when>
          <xsl:otherwise>
           <img src="_layouts/images/ic{@DocIcon}.gif" alt="" />
          </xsl:otherwise>
        </xsl:choose>
        <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
          <a href="{$SafeLinkUrl}" target="{$LinkTarget}" title="{@LinkToolTip}" style="padding-left:5px;">
               <xsl:value-of select="$DisplayTitle"/>
           </a>
        </div>  
</p>
</xsl:template>

</xsl:stylesheet>

 ???? ?? ??????, ????? SP "???????" ?????? ??? ??????????? ??????????:

1) ?????????? ???? docicon.xml. ?? ????????? ? ????? Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML

2) ???????????? ? ??? ??? ????? ? ???????? ????????. ???????? ????????? ?????????? ? Drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\Images

Comments

  • Anonymous
    January 01, 2003
    Возможно ошибка живет тут src="/_layouts/images/ic{@DocIcon}.gif То есть перед _layouts нужен "/". Еще один возможный вариант что та картинка которая вам нужна не называется ic<что-то там> Вообщем так, посмотрите что у вас возвращается в свойстве @DocIcon. Для этого просто выведите значение куда-нибудь на экран.

  • Anonymous
    April 16, 2009
    Доброе время суток, можно как-то поподробнее объяснить как сделать так , что бы отображались иконки у документов (сейчас не отображаеться)

  • Anonymous
    May 18, 2009
    Отличная статья, кстати автору хочу предложить установить от яндекс.денег полезную фишку на сайт "Дай рубль". Я бы дал, так сказать на поддержание. ;)