Проблема со сценарием вики-шаблона SharePoint 2010

#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. Это хороший вопрос. Я на самом деле только что понял это и опубликую ревизию в исходном сообщении.