문제

이것은 아마도 많은 사람들에게 매우 기본적인 질문 일 것입니다. 그러나 내 배경은 SharePoint 개발자입니다. Wiki 페이지 또는 일반적으로 사이트 페이지가 거의 없었습니다.

조직의 소규모 팀을위한 SharePoint 2010 사이트를 만들고 있으며 팀 사이트 템플릿을 사용하도록 선택했습니다. 나는 사이트에서 할 수있는 일을 시각화하는 수단으로 웹 파트, 이미지 및 텍스트를 홈페이지 (SyeSespages / Home.aspx)에 추가하는 데 시간을 보냈습니다. 이것은 모두 내 개발 환경에서 수행되었습니다.

이제 우리는 페이지의 개발 버전에 만족 했으므로 내보낼 수있는 방법이 있으며 Visual Studio 프로젝트에 추가하여 결국 프로덕션에 다시 배치 될 수 있습니까? 이것은 이것이 좋은 접근 방식이거나, 우리는 프로덕션에서 수동으로 페이지를 다시 만들어야 할 것으로 예상해야합니까?

내 첫 번째 생각은 우리가 SPD에서 페이지를 내보내고 모듈 기능을 통해 배포 할 수 있다는 것이었지만 Wiki 페이지의 EmbeddedFormField 컨트롤이 불가능한 것을 알게되었습니다.

또한이 접근 방식을 시도했습니다. http://www.sharemuch.com/2012/02/20/how-to-automentically-provision-sharepoint-2010-wiki-pages-content/ . 결과 페이지가 웹 파트 (웹 파트가 있지 않고 일부 텍스트가 아닌) 제대로 렌더링되지 않습니다. 또한 "현재 페이지가 템플릿에서 사용자 정의되었습니다."템플리트로 되돌아갑니다 "메시지를 되돌리고"템플릿으로 되돌리기 "를 클릭하십시오.

내 모듈은 다음과 같습니다 :

<Module Name="OneCallPages" Url="SitePages" SetupPath="FEATURES\MyProject.SharePoint_SiteAssetsFeature\MyProjectAssets\SitePages" List="119">
  <File Path="Welcome.aspx" Url="Welcome.aspx" Type="GhostableInLibrary">
    <Property
      Name="WikiField"
      Type="string"
      Value="..."/>
   </File>
</Module>
.

도움이 되었습니까?

해결책 2

rjcup3 덕분에 도움을 받으십시오. http : //sharepointstrugge.blogspot.COM / 2011 / 10 / 프로그래밍 방식으로 - 프로비저닝 - wiki.html .

기본적으로 Wiki 페이지의 내용이있는 XML 파일을 작성한 다음 페이지의 각 웹 파트를 SPD에서 내보내고 결과 .webPart (.dwp) 파일 내용을 XML에서 참조하는 작업이 포함됩니다.그런 다음 사용자 정의 클래스는 프로그래밍 방식으로 Wiki 페이지를 만들고 웹 파트를 가져 오는 것을 처리합니다.

다른 팁

사이트를 템플릿으로 저장하고 .wsp를 내보내려고 시도했습니다.그런 다음 대상 환경의 솔루션 카탈로그에 .wsp를 업로드하고 사이트 템플릿으로 사용하여 페이지 레이아웃을 배포 할 수 있습니다.

사이트를 템플리트로 저장하려면 사이트 설정> 사이트 저장 사이트 템플릿으로 이동합니다.그대로 쉽습니다.

.wsp는 솔루션 카탈로그에 저장됩니다. 에 탐색 할 수 있습니다.

http://[path to site collection]/_catalogs/solutions/

단계별 지침은

와이키아를 만들거나 복사 할 때 웹 파트뿐만 아니라 "WikiContent"등가물을 추가하십시오. wikicontent를 다음과 같이 설정하십시오 :

Item[SPBuiltInFieldId.WikiField] = wikiContent;
Item.Update();
.

웹 파트 매니저가있는 WebParts를 추가하십시오 (이 예제는 웹 파트를 한 페이지에서 다른 페이지에서 다른 페이지로 복사합니다.) :

var wpManagerTemplate = webTemplate.GetLimitedWebPartManager(item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
var wpManagerNew = web.GetLimitedWebPartManager(newFile.Item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

 var webParts = wpManagerTemplate.WebParts;
 foreach (WebPart webpart in webParts)
 {
     wpManagerNew.AddWebPart(webpart, "wpz", webpart.ZoneIndex);
 }
.

또한 참조 : https : // sharepointkaos.WordPress.com/2015/08/07/copy-page-from-oone-wiki-library-to-anther/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top