ipark's blog[MVP SharePoint]

SharePoint related...
随笔 - 23, 评论 - 123, 引用 - 3

导航

关于

My Old Blog: http://freepark.cnblogs.com Email:ipark.cn@gmail.com




Locations of visitors to this page



Creative Commons License

标签

每月存档

最新留言

广告

SharePoint Solution Schema里面一些相关的路径的位置

我们知道SharePoint 的Solution Schema里面有很多Element都是涉及到部署某个文件的,比如:

FeatureManifest

TemplateFile

ApplicationResourceFile

Resource

ClassResource

DwpFile

RootFile

Site definitions

但是这些文件到底会被部署到服务器的什么位置呢,在SDK中没有详细的说明,查了一下,具体应该是:

Features <FeatureManifest>:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\

Template Files <TemplateFile>:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\

Application Resources <ApplicationResourceFile>:

C:\Inetpub\wwwroot\wss\VirtualDirectories\{virtual app port}\resources

Global Resources <Resource>:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\

Assemble ClassResource<ClassResource>:

C:\Inetpub\wwwroot\wss\VirtualDirectories\{virtual app port}\wpresources\程序集名称\

Web Parts <DwpFile>:

C:\Inetpub\wwwroot\wss\VirtualDirectories\80\wpcatalog

Root Files <RootFile>:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12

Site definitions:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates

参考自以下文章:

 SharePoint Solution Manifests

Creating Advanced Solutions for SharePoint 2007

posted on 2008-03-25 13:36:01 by ipark  评论(0) 阅读(4826)

[CSSFriendlyMenu]可在SharePoint中使用的CSS友好的Menu控件

1.Overview

SharePoint中的菜单都是基于ASP.Net 2.0的Menu和TreeView,这些控件生成的Html源码都是用table的结构,使得使用CSS控制菜单的样式不是很方便。

针对这个问题,网上有一个解决办法就是使用CSS Friendly Adapters(http://www.asp.net/cssadapters/ )可以让IIS中所有Web Site的Menu和TreeView菜单控件生成CSS友好的菜单结构,但是这种技术作用于整个IIS的所有网站。如果我在SharePoint中使用意味这整个服务器上的所有网站都会受到影响。

所以,为了灵活,我单独写了一个纯粹生成CSS友好的菜单结构的Web Control——CSSFriendlyMenu。使用方法和ASP.Net中的Menu控件一样,都是与一个SiteMapDataSource联合使用,大家可以到  这里  去下载Ipark.Web.WebControls.CSSFriendlyMenu试用。

Ipark.Web.WebControls.CSSFriendlyMenu是一个产生CSS友好的菜单的服务器端控件,较CSS Friendly Adapters灵活。
需与SiteMapDataSource控件联合使用。

CSSFriendlyMenu在SharePoint下的一个例子如下:

CSSFriendlyMenu

(红色框 就是由CSSFriendlyMenu生成的CSS友好的菜单结构)其结构形如:

MenuStructure

2.Deployment
把dll部署到GAC($system\windows\assembly)中即可,此时在Visual Studio中即可在工具箱中找到。
如果在SharePoint中使用,请在对应的Web Application的Web.config的SafeControls节中添加
<SafeControl Assembly="Ipark.Web.WebControls.CSSFriendlyMenu, Version = 1.0.0.0, Culture = neutral, PublicKeyToken=064925da862cab62" Namespace="Ipark.Web.WebControls" TypeName="*" Safe="True" AllowRemoteDesigner="True"  />
注: AllowRemoteDesigner="True"为了使在SharePoint Designer等设计器中可编辑。安装完成之后重启IIS,如正在用SharePoint Designer编辑页面,请重开SharePoint Designer方能正确使用。

3.Use
在页面顶端添加:
<%@ Register TagPrefix="Ipark" Namespace="Ipark.Web.WebControls" Assembly="Ipark.Web.WebControls.CSSFriendlyMenu, Version = 1.0.0.0, Culture = neutral, PublicKeyToken=064925da862cab62" %>
在页面中:
<Ipark:CSSFriendlyMenu ID="CSSFriendlyMenu" DataSourceID="topSiteMapDS" Direction="Horizontal " MenuLevel="2" runat="server"></Ipark:CSSFriendlyMenu>           
<SharePoint:DelegateControl runat="server" ControlId="TopNavigationDS">
    <Template_Controls>
            <asp:SiteMapDataSource
              ShowStartingNode="False"
              SiteMapProvider="CurrentNavSiteMapProvider"
              id="topSiteMapDS"
              runat="server" />
    </Template_Controls>
</SharePoint:DelegateControl>
注:本例中的SiteMapDataSource以SharePoint平台为例,除了CurrentNavSiteMapProvider外,SharePoint还提供了很多其他的SiteMapProvider,下次找机会介绍一下。

CSSFriendlyMenu包含两个主要属性:

Direction: Horizontal 或者 vertical,这个主要是控制输出的菜单外层的div的class的名称,便于在页面有多个CSSFriendlyMenu的时候,分别控制垂直和水平的Menu的CSS Style
DataSourceID:SiteMapDataSource控件的ID
MenuLevel:需要显示的菜单的层级,默认显示3级菜单

4.CSS Tag
设计CSS来定制菜单的显示样式,CSSFriendlyMenu生成的结构中使用的CSS class如下:

IparkCSSFriendlyMenu: root div
AspNet-Menu-Vertical: Vertical Menu root
AspNet-Menu-Horizontal: Horizontal Menu root
AspNet-Menu: root ul
AspNet-Menu-WithChildren: Submenu with children
AspNet-Menu-WithChildren-Current: Current Submenu with children
AspNet-Menu-Leaf: single Submenu
AspNet-Menu-Leaf-Current: Current single submenu
AspNet-Menu-Link: the link

<update>2008-3-23</update>

posted on 2008-03-21 04:48:09 by ipark  评论(0) 阅读(5257)

利用RunWithElevatedPrivileges模拟管理员权限时慎用SPContext

WSS 3.0中我们使用:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    // implementation details omitted
});

可以提升代码的运行权限,实现模拟管理员身份的功能。

在RunWithElevatedPrivileges中不要使用SPContext.Current.Web,SPContext.Current.Site,SPControl.GetContextWeb(HttpContext.Current)之类的根据当前上下文得到当前的Web或者Site,根据这些方法得到的所有对象(包括从根据这些对象得到的List,ListItem等等对象)都是以当前网站登录用户权限运作的,即使是在RunWithElevatedPrivileges其运作权限也不会是管理员。

所以,如果要真正让在RunWithElevatedPrivileges中的代码以管理员权限正常运作的话,必须重新初始化相应的对象,比如:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite mySite = new SPSite(SPContext.Current.Site.Url))
    {
        Response.Write(mySite.RootWeb.CurrentUser.LoginName);
    }
});
以上mySite.RootWeb.CurrentUser.LoginName返回的是管理员的登录帐号。
但是如果按之前所说使用SPContext:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
     Response.Write(SPContext.Current.Web.CurrentUser.LoginName);
});

这时候即使在提升权限的范围内运行,得到的也是当前网站登录帐户名,而不是管理员登录帐号。

posted on 2008-03-19 00:21:24 by ipark  评论(1) 阅读(5277)

Microsoft Silverlight Blueprint for SharePoint

下面这个网站是在SharePoint中集成Silverlight的一个网站,包含了很多示例,值得一看!

http://www.ssblueprints.net/sharepoint/

包含下面一些例子:

1)Hello Silverlight Web Parts and the SilverlightPart

2)Silverlight Navigation Controls

3)Silverlight Social Networking Web

4)Visual How-To Center with Silverlight

5)Picture Viewer Sample

6)Silverlight Custom Field Types

posted on 2008-03-09 12:18:01 by ipark  评论(1) 阅读(4619)

Powered by: Joycode.MVC引擎 0.5.2.0