#sharepoint-2010
#sharepoint-2010
Вопрос:
Я ищу способ предоставить моим пользователям SharePoint возможность создавать новые вики-страницы из существующего шаблона. В процессе исследования я нашел отличное пошаговое руководство, которое, похоже, соответствует потребностям (http://www.mssharepointtips.com/tip.asp?id=1072amp;page=2 ), но у меня возникли проблемы с тем, чтобы заставить его работать. Проблема, похоже, заключается в назначении пути к PATHTOWIKI — если я использую «/ Еженедельное обновление Wiki», скрипт возвращает ошибку «Нет веб-сайта с именем «/ Еженедельное обновление Wiki»». Если я использую «Еженедельное обновление Wiki» без косой черты, вместо этого я получаю сообщение об ошибке «Нет веб-сайта с именем»/сайты /[Родительский сайт] / [Дочерний сайт] / Еженедельное обновление Wiki / Еженедельное обновление Wiki».
Есть идеи о том, чего я здесь не понимаю?
function myCreateProject() {
// Configure these for your environment
// include no slashes in paths
var PATHTOWIKI = "Weekly Update Wiki";
var PATHTOPAGES = "Pages";
// file name only for template page, no extension
var TEMPLATEFILENAME = "Template";
var myPathToWiki = encodeURIComponent(PATHTOWIKI);
var myPathToPages = PATHTOPAGES "/";
var myTemplateFileName = encodeURIComponent(TEMPLATEFILENAME) ".aspx";
var EnteredProject = document.getElementById("NewProjName");
var myNewName = EnteredProject.value;
if(myNewName == "") {
alert('Please enter a name for the new project page');
} else {
myNewName = encodeURIComponent(myNewName) ".aspx"
$.ajax({
url: PATHTOWIKI "/_vti_bin/_vti_aut/author.dll",
data: ( "method=move document:14.0.0.4730amp;service_name="
myPathToWiki
"amp;oldUrl=" myPathToPages myTemplateFileName
"amp;newUrl=" myPathToPages myNewName
"amp;url_list=[]amp;rename_option=nochangeallamp;put_option=editamp;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="/" 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");
}
});
}
}
Обновление: я понял, что должно было произойти в моем случае. Поскольку я не мог понять относительный подход, я просто использовал абсолютный путь для PATHTOWIKI и немного изменил добавление в вызове ajax.
PATHTOWIKI:
var PATHTOWIKI = "https://[domain]/sites/[parentSite]/[childSite]";
добавить:
$("#myInfo").append("<br /><a href="" PATHTOWIKI "/" PATHTOPAGES "/" myNewName "">Go to new page</a><br />");
Изменение в последней строке кода неуловимо; поскольку я использовал абсолютный путь в PATHTOWIKI, я просто удалил ведущую косую черту в теге привязки, так что <a href="/"
стало <a href=""
. Это делает сценарий немного менее переносимым, но, поскольку это одноразовое усилие, я буду придерживаться этого, если не появится что-нибудь для расширения области.
Комментарии:
1. Является ли PATHTOWIKI веб-сайтом? Или библиотека документов?
2. Это хороший вопрос. Я на самом деле только что понял это и опубликую ревизию в исходном сообщении.