zoukankan      html  css  js  c++  java
  • SP2010:从Ribbon功能区移除操作

            当你使用SP2010,往富HTML编辑器中输入文本时,你得到丰富的功能区体验。使用这些功能区,你可以做很多事情,如格式化文本。


            这对内容编辑器Web部件有效,以及HTML内容域,如网站列,或者内容类型列。

            编辑器包含许多组(字体、段落等),每个组里都有不同的操作,像Bold、Italic、Underline等等。

            添加项目时,可以使用DeclarativeXML创建自定义操作,本专栏有相应文章。

            如果要移除一些操作或组时怎么办呢?

            或者针对不同母版页和(或)页面布局,你需要给不同页面类型去掉操作(或组)呢?

            下面是一些C#代码,使用SP API允许你完成这个任务。

    基本步骤:

    1.      创建VS项目

    2.      打开Web UserControl项目类型

    3.      添加C#代码,隐藏选项卡

    4.      在母版页添加这个用户控件的一个引用

    1.      创建VS项目

            (非常酷)新的VS2010 IDE有许多SP相关的项目类型。

    A.     打开VS2010,新建项目

    B.     选择SP2010组

    C.     选择空白SP项目,命名为SPR.Utilities

    D.     选择部署为场解决方案,完成。

    2.      添加映射文件夹。

            现在我们需要添加代码到Ribbon Item Hider----实际上我们不需要feature----只需要能添加到CONTROLTEMPLATES文件夹的东西----在14中----SP根文件夹。

    A.     右击跟项目节点(解决方案管理器的黑体文字)

    B.     添加SP映射文件夹


    C.     展开TEMPLATE文件夹

    D.     点击CONTROLTEMPLATES,确定

            这样增加了一个地址,我们可以添加项目代码和ASCX(web用户控件)

            我们仍然需要一个子文件夹----否则代码片会在同一个文件夹中,作为SP OOTB 项目----那个文件夹有超过90个项目呢。

    E.      右击CONTROLTEMPLATES文件夹----点击添加---文件夹

    F.      改名为SPR.Utilities。

    3.      添加web用户控件项目

    A.     右击SPR.Utilities文件夹

    B.     添加----新建项

    C.     在SP2010组,选择用户控件项目

    D.     重命名为RibbonItemHider。

    4.      添加代码—耶耶

            用户控件放在SP母版页上,因此,总有SPContext和SPRibbon对象可用。

            我们真的只需要做下面的逻辑:

    A.     在页面上建引用到SPRibbon对象

    B.     隐藏我们不想展示的项目

    C.     没啦!!!

            需要添加引用到下面的DLL----在添加引用后粘贴这个路径。

            C:Program FilesCommonFilesMicrosoft SharedWeb ServerExtensions14ISAPIMicrosoft.Web.CommandUI.dll

            在Page_Load事件中,添加如下代码:

            你在SPRibbon下会得到一些波浪线,只需点击Ctrl+.,并选择添加using语句,如下:


            很明显,你可能会想到,在TrimById方法中,并没有包含xxxxxxxxxxxx,这将与下面文件的一个进入点有关:C:Program FilesCommon FilesMicrosoft SharedWeb ServerExtensions14TEMPLATEGLOBALXMLCMDUI.XML。

    A.     在IE中打开这个文件----很大的哦

    B.     搜索“Ribbon.EditingTools.CPEditTab.Groups”

    C.     子节点是你感兴趣的那些----GROUP节点的集合

    D.     这些组应该很熟悉----它们与功能区上的窗格有关:

            a.      Ribbon.EditingTools.CPEditTab.EditAndCheckout

            b.      Ribbon.EditingTools.CPEditTab.Clipboard

            c.      Ribbon.EditingTools.CPEditTab.Font

            d.      Ribbon.EditingTools.CPEditTab.Paragraph

            e.      Ribbon.EditingTools.CPEditTab.Styles

            f.       Ribbon.EditingTools.CPEditTab.Layout

            g.      Ribbon.EditingTools.CPEditTab.Markup

    E.      使用这些ID可以隐藏功能区


            并且,进一步,你可以隐藏单个按钮----不只是整个组。

            在GROUP节点中,有控件集合。如果我们把CPEditTab.Font节点展开,你会发现屏幕上显示的所有按钮。


            所以----隐藏Bold、Underline和Italic按钮的代码—是:

      ribbon.TrimById("Ribbon.EditingTools.CPEditTab.Font.Bold");

      ribbon.TrimById("Ribbon.EditingTools.CPEditTab.Font.Italics");

      ribbon.TrimById("Ribbon.EditingTools.CPEditTab.Font.Underline");

            简单吗?我们这就投入使用。

    F.      部署并使用控件

            a.      右击项目节点,选择部署

            然后我们需要从母版页引用控件

            b.      使用SPD2010 打开你选择的母版页

            c.      在顶部添加下列标签

    <%@ Register TagPrefix="SPR"TagName="RibbonItemHider"src="~/_controltemplates/SPR.Utilities/RibbonItemHider.ascx" %>


            现在我们只需在母版页某处使用这个标签。我在紧跟<body>后添加如下代码,保证把它添加到HTML body中,而不是HEAD部分

    <SPR:RibbonItemHider id="RibbonItemHider" runat="server"/>

    G.     测试一下

            返回SP—改变母版页为你刚编辑的,你会看到功能区被隐藏了。


    H.     结语

            使用同样的框架,可以隐藏其他功能----如果你需要限制编辑者、作者等的权限的话。

            a.      移除编辑HTML按钮---不让内容作者搞乱它。

            b.      移除SuperScript和SubScript----和(或)Strikeout

            c.      移除段落选项卡,强制使用CSS布局。

  • 相关阅读:
    MVC-07数据库
    Visual Web Developer 2012安裝教程
    开机启动项
    使用其他身份运行计算机(DOS命令)
    网络重置
    JavaWeb(七):EL表达式、自定义标签和JSTL
    JavaWeb(六):会话与状态管理
    JavaWeb(五):MVC案例
    JavaWeb(三):JSP
    JavaWeb(二):Servlet
  • 原文地址:https://www.cnblogs.com/crazygolf/p/3857053.html
Copyright © 2011-2022 走看看