我正在 Sharepoint Foundation 2013 上构建一个医学 wiki,这将使 (1) 从模板创建新的 wiki 页面和 (2) 将这些新页面的标题和 URL 添加到自定义列表中成为可能。
以下代码处理数字 (1)。用户为新的 wiki 页面输入一个新名称,单击“创建档案”,模板页面被复制并重命名为 newname.aspx。
<hr/>
<p>To create a new dossier, type the child’s name then press the
<em>Create dossier</em> button below.</p>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type="text/javascript">
</script>
<script type="text/javascript">
function myCreateProject()
{
var PATHTOWIKI = "/medical";
var PATHTOPAGES = "Medical Dossiers";
var TEMPLATEFILENAME = "template";
var myPathToWiki = encodeURIComponent(PATHTOWIKI);
var myPathToPages = PATHTOPAGES + "%2f";
var myTemplateFileName = encodeURIComponent(TEMPLATEFILENAME) + "%2easpx";
var EnteredProject = document.getElementById("NewProjName");
var myNewName = EnteredProject.value;
if(myNewName == "")
{
alert('Please enter a name for the new dossier');
}
else
{
myNewName = encodeURIComponent(myNewName) + "%2easpx"
$.ajax({
url: PATHTOWIKI + "/_vti_bin/_vti_aut/author.dll",
data: ( "method=move+document%3a14%2e0%2e0%2e4730&service%5fname="
+ myPathToWiki +
"&oldUrl=" + myPathToPages + myTemplateFileName +
"&newUrl=" + myPathToPages + myNewName +
"&url%5flist=%5b%5d&rename%5foption=nochangeall&put%5foption=edit&docopy=true"
),
success: function(data)
{
var rpcmsg1 = getMessage(data, "message=", "<p>");
$("#myInfo").append("<br/>" + rpcmsg1);
if(rpcmsg1.indexOf("successfully") < 0)
{
// get error info
var rpcmsg2 = getMessage(data, "msg=", "<li>");
$("#myInfo").append("<br/>" + rpcmsg2 + "<br/>");
}
else
{
$("#myInfo").append("<br/><a href=\"http://it.bethelchina.org/" + PATHTOWIKI + "/" + PATHTOPAGES +
"/" + myNewName + "\">Go to new page</a><br/>");
}
},
type: "POST",
beforeSend: function(XMLHttpRequest)
{
XMLHttpRequest.setRequestHeader("X-Vermeer-Content-Type",
"application/x-www-form-urlencoded");
}
});
}
}
function getMessage(data, startmsg, delim)
{
var msgpos = data.indexOf(startmsg);
var endpos = data.indexOf(delim, msgpos);
var rpcmsg = data.substring(msgpos + startmsg.length, endpos);
return rpcmsg;
}
</script>
<input id="NewProjName" type="text"/> <input id="AutoButton"
onclick="myCreateProject();" type="button" value="Create dossier"/> <br/>
<div id="myInfo"><b>Results</b><br/></div>
我想不通的是如何添加新档案/页面的 URL,并将其对应 myNewName 到自定义列表。我知道 SPservice 和 UpdateListItems 必须发挥作用,但我没有运气将它编码到上面的 jquery 中。
帮助将不胜感激,
问候,
马特