我正在开发一个网站模板,用于为不同的组织单位创建数百个网站。该站点应包含一个表单库,其中包含InfoPath表单模板。
我的问题是 - 是否可以创建模板并让高级用户创建网站,而无需任何管理员或开发人员参与?如果不是 - 最简单的选择是什么?
问题是表单模板包含站点URL,我不知道是否可以避免这种情况。因此,当创建网站并提交表单时 - 它最终会在原始网站的库中。
我为试点项目创建了一些网站,到目前为止我一直在做的是取消删除XSN文件,手动编辑URL,重新打包到XSN并发布到新库。这有效,但涉及我希望避免的网站创建过程中的手动步骤。以下是我正在编辑的行:
<xsf:submit caption="Submit" disableMenuItem="no" onAfterSubmit="close" showStatusDialog="no">
<xsf:davAdapter name="SharePoint Library Submit" submitAllowed="yes" overwriteAllowed="no">
<xsf:folderURL value="http://my_farm_url/subsite1/form_lib"
同样在这里:
<xsf2:solutionPropertiesExtension branch="wss">
<xsf2:wss path="http://my_farm_url/subsite1/form_lib"
我正在将subsite1更改为subsite2。
我试图设置一个相对URL,首先是提交元素,然后是两者,但无济于事。表单正在呈现(在浏览器中),提交工作(没有错误),但随后提交的表单不在库中。进一步研究这一点,表格最终被提交到根网站上的表单库 - http://my_farm_url/form_lib
!当你想到它时,这是有意义的,这是form_lib
的相对网址,从网站,从根网站的角度来看你。
目前我设想的唯一解决方案是创建一个工具,帮助用户根据模板创建网站,将XSN固定在幕后。我不知道如何以编程方式发布表单模板,但它应该是可能的。除了这个未知的,它也不是非常自动化,如果可以使用适用于SharePoint / InfoPath工具的正确解决方案,我将非常高兴。
答案 0 :(得分:1)
您需要安排EventReceiver,无法进行配置。
在EventReceiver中你必须读取文件“Manifest.xsf”,更新XML节点定义了url并保存文件“Manifest.xsf”。
要使用System.Xml.dll
,需要读取XML节点