문제

기본 팀 사이트 템플릿에서 생성 된 기본 사이트에서 사이트 템플릿을 만들었습니다. 이제 웹 외부의 사이트 템플릿을 사용하여 글로벌 템플릿처럼 작동합니다.

예를 들어, get-spwebtemplate에 표시된 템플릿 목록에 새 템플릿이 표시되거나 'STP'파일을 테스트 시스템에 복사하고 번들 템플릿을 사용하여 새 사이트를 만듭니다.

그게 가능합니까? 불가능하다면 SharePoint-correct 방법은 무엇입니까?

(SharePoint 2010 서버 RC 사용)

감사해요!

도움이 되었습니까?

해결책

나는 지금 이것을하는 방법을 알고 있다고 믿는다. 이 과정이 조금 이상하게 보이기 때문에 누구나 "올바른"방식으로 무게를 두는 사람이 감사 할 것입니다.

UI를 사용하면 사이트 컬렉션 내에서 스톡 템플릿을 사용하여 웹을 만들고 조각을 추가하고 원하지 않는 물건을 제거하여 사용자 정의 할 수 있습니다. 그런 다음 웹에서 템플릿으로 사용하도록 선택한 경우 관리자로서 '사이트 설정'을 선택한 다음 '사이트를 템플릿으로 저장'한 다음 파일 이름, 친숙한 이름 및 설명 텍스트를 할당 할 수 있습니다. 이를 수행하면 결과 템플릿이 데이터베이스에 들어가고 사이트 설정 페이지에 '솔루션'목록에있는 참조가 생성됩니다. ( '솔루션'목록을 방문하는 경우 템플릿을 클릭하여 로컬 파일로 저장 한 다음 다른 사이트에 업로드 할 수 있습니다. 도움이됩니다).

사이트의 웹 컬렉션에 새 웹을 추가하여 코드로 사이트를 만들 수 있다는 것은 합리적으로 알려져 있습니다.

SPWeb newWeb = subSite.Webs.Add(
                "pathtoweb",
                "Title of New Web",
                "Web Description",
                1033,
                template, 
                false, false);

여기서 '템플릿'은 여기에 사용하려는 spwebtemplate의 인스턴스가 있습니다. 재고 템플릿 중 하나 인 경우 일반적으로 여기에 표시된 템플릿 참조 대신 이름, "STS#0"등으로 표시 할 수 있습니다. 문제는 다음과 같습니다. API 호출에서 사용하기 위해 사용자 정의 템플릿의 이름을 얻는 방법입니다.

생성 된 템플릿의 '이름'을 찾으려면 PowerShell을 이렇게 사용했습니다.

$x = get-spsite http://machine/managedpath/sitecollectionname
$x.GetWebTemplates(1033) 

이 하위 사이트에 모든 템플릿을 버리고 C# 프로그램에 복사하고 붙여 넣은 편리한 이름으로 수정 된 템플릿을 포함 시켰습니다.

나는 여기서 모든 순열을 탐색하지 않았다. 나는 이것이 광기라는 것을 듣고 싶습니다. 더 우아한 것을 알려주세요.

        // or any of the other hundred ways to do this...
        SPSite s = new SPSite("your url here");
        SPWeb subSite = s.RootWeb;

        // 1033 is the locale id for English
        SPWebTemplateCollection wtc = s.GetWebTemplates(1033);
        // use the name for the index
        SPWebTemplate template = 
            wtc["{8925048C-DF71-guidguidguidguid}#MyTemplate"];

        SPWeb newWeb = subSite.Webs.Add(
                "pathtoweb",
                "Title of New Web",
                "Web Description",
                1033,
                template, 
                false, false);

공유 지점!

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