Welcome to TechNet Blogs Sign in | Join | Help

Библиотека документов: как изменить иконки для документов и как показать их в 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="http://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

Published Tuesday, April 24, 2007 11:16 PM by tvsmetanina

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

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

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

Thursday, April 16, 2009 6:25 AM by Дмитрий

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

Возможно ошибка живет тут src="/_layouts/images/ic{@DocIcon}.gif

То есть перед _layouts нужен "/".

Еще один возможный вариант что та картинка которая вам нужна не называется ic<что-то там>

Вообщем так, посмотрите что у вас возвращается в свойстве @DocIcon. Для этого просто выведите значение куда-нибудь на экран.

Thursday, April 16, 2009 7:30 AM by tvsmetanina

# Жесть

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

Monday, May 18, 2009 7:35 AM by Марк

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker