zoukankan      html  css  js  c++  java
  • SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (1)

    当开发一个sharepoint门户网站,或者是一个内容管理的网站的时候,站点的模板通常会选用publish portal,或者是开启了publishing feature来对内容进行版本控制和流程控制。

    在这种环境下,如果对整个站点进行爬网,就需要注意一个关于文档库中文件夹的问题:

    文件夹的状态有draft,approved的两种,当创建一个文件夹的时候,文件夹的初始状态是draft,如果对整个站点进行爬网,那么draft状态下的文件夹里的内容是不会被爬到的,即使这些内容都是approved的状态。

    因此我们需要将文件夹的状态改成approved状态,手动当然是可以的,但是用户经常忘记这项操作。。。你懂的

    所以我们最好用event receiver的ItemAdded方法来自动将文档夹的状态变成approved。

    代码片段如下:

     		if (properties.ListItem.FileSystemObjectType != SPFileSystemObjectType.Folder)
                        return;
                    SPSecurity.RunWithElevatedPrivileges(delegate
                               {
                                   SPSite spSite = new SPSite(properties.Web.Site.ID);
                                   SPWeb web = spSite.OpenWeb(properties.Web.Url);
                                   web.AllowUnsafeUpdates = true;
                                   string itemUrl = properties.Web.Url + @"/" + properties.AfterUrl;
                                   SPListItem item = web.GetListItem(itemUrl);
                                   SPModerationInformation approverInfo = item.ModerationInformation;
                                   if (approverInfo != null)
                                   {
                                       if (approverInfo.Status != SPModerationStatusType.Approved)
                                       {
                                           approverInfo.Status = SPModerationStatusType.Approved;
                                           item.Update();
                                       }
                                   }
                                   web.AllowUnsafeUpdates = false;
                                   web.Dispose();
                                   spSite.Dispose();
    
                               });


     创建文件夹动作的代码控制已经完成,但是如果用户修改了文件夹名称,文件夹又会回到draft状态,这时候就需要用到ItemUpdated方法,这块比ItemAdded要复杂,涉及到同步异步的问题,在下一篇博客会详细讲下。

  • 相关阅读:
    XML文件的解析—DOM、SAX
    JSP :使用<%@include%>报Duplicate local variable path 错误
    XML文件的DTD编写
    DOM生成XML文件
    ArrayList增加扩容问题 源码分析
    实时事件统计项目:优化flume:用file channel代替mem channel
    CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr
    solrconfig.xml介绍
    Solr Update插件自定义Update Chain按条件更新索引
    实时事件统计项目:优化solr和morphline的时间字段
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3157316.html
Copyright © 2011-2022 走看看