CommunityServer 2008.5 EXIF

Saturday, 20 March 2010 08:32 by admin

最近迷上相機,但好像我一直忽略 CommunityServer 的一個重要功能,支援 EXIF

在預設下,CommunityServer 2008 後,已經沒有顯示 EXIF ,但還是有支援,只要在 \Themes\hawaii\Media\post.aspx 下加入適當的 CSMedia:MediaGalleryPostMetadataList 就可以顯示

最簡單的用法加在 129 行後

<CSMedia:MediaGalleryPostMetadataList runat="server" />

不過很不幸的,這樣只會顯示 10 個,剛好又是最不重要的,如果要顯示全部,要把顯示的數量增加,用此語法

<CSMedia:MediaGalleryPostMetadataList runat="server">
                            <QueryOverrides PageSize="999" />
                        </CSMedia:MediaGalleryPostMetadataList>

這樣就能取得全部的項目,但又太多了是吧,可以用 PropertyNames="...,..." 設定顯示的項目,要顯示的項目可以用上面那段查名稱 ,以下是我用的

<CSMedia:MediaGalleryPostMetadataList runat="server">
                            <QueryOverrides SortOrder="Descending" PropertyNames="Model,F-Number,Exposure Time,ISO Speed Ratings,Focal Length,Date/Time" />
                        </CSMedia:MediaGalleryPostMetadataList>

顯示出來會如此

  • Model: E-20,E-20N,E-20P
  • ISO Speed Ratings: 80
  • Focal Length: 15.0 mm
  • F-Number: F3.2
  • Exposure Time: 1/15 sec
  • Date/Time: 2009/11/8 下午 04:15:51

由於 CommunityServer 並沒有用標準的名稱做為查詢條件,大多都是要用第二段語法全部拉出來後再挑你要的

 

Comments (1) -

March 23. 2010 07:09

cesie

成功添加,大部分都没问题,但是少量出错,信息如下:

---------------------
指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidCastException: 指定的转换无效。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪:


[InvalidCastException: 指定的转换无效。]
   Telligent.CommunityServer.MetadataExtractor.Directory.GetDouble(Int32 tagType) +295
   Telligent.CommunityServer.MetadataExtractor.Exif.CasioType2MakernoteDescriptor.GetFocalLengthDescription() +59
   Telligent.CommunityServer.MetadataExtractor.Exif.CasioType2MakernoteDescriptor.GetDescription(Int32 tagType) +216
   Telligent.CommunityServer.MetadataExtractor.Directory.GetDescription(Int32 tagType) +19
   Telligent.CommunityServer.MetadataExtractor.Tag.GetDescription() +15
   CommunityServer.MediaGalleries.Components.MediaGalleryPostMetadatas.GetMediaGalleryPostMetadata(MediaGalleryPost post, MediaGalleryPostMetadataQuery query, Int32& totalCount) +1087
   CommunityServer.MediaGalleries.Controls.MediaGalleryPostMetadataList.get_DataSource() +247
   System.Web.UI.WebControls.Repeater.ConnectToDataSourceView() +183
   System.Web.UI.WebControls.Repeater.OnLoad(EventArgs e) +19
   CommunityServer.Controls.WrappedRepeater.OnLoad(EventArgs e) +12
   CommunityServer.Controls.PreTemplatedWrappedRepeaterBase.OnLoad(EventArgs e) +13
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.AddedControl(Control control, Int32 index) +265
   System.Web.UI.ControlCollection.Add(Control child) +80
   CommunityServer.Controls.ConditionalContent.AddContentControls() +185
   CommunityServer.Controls.WrappedContentBase.CreateControlHierarchy() +107
   CommunityServer.Controls.WrappedContentBase.CreateChildControls() +32
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +23
   System.Web.UI.Control.FindControl(String id) +12
   Telligent.Glow.WebControlUtils.ᐁ(Control , String , Dictionary`2 ) +84
   Telligent.Glow.WebControlUtils.ᐁ(Control , String , Dictionary`2 ) +223
   Telligent.Glow.WebControlUtils.ᐁ(Control , String , Dictionary`2 ) +223
   Telligent.Glow.WebControlUtils.ᐁ(Control , String , Dictionary`2 ) +223
   Telligent.Glow.WebControlUtils.ᐁ(Control , String , Dictionary`2 ) +223
   Telligent.Glow.WebControlUtils.FindControl(Control container, String id) +167
   CommunityServer.Controls.ControlVisibilityCondition.get_Result() +72
   CommunityServer.Controls.Conditions.get_Result() +137
   CommunityServer.Controls.WrappedContentBase.OnPreRender(EventArgs e) +71
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
-------------------

不知什么情况,是否能解决?

cesie

Pingbacks and trackbacks (1)+