SharePoint 20102012.07.09 13:51

이번 세션은 쉐어포인트 WCM 의 핵심인 페이지 레이아웃 기능에 대한 내용을 다루고 있습니다. 수준높은 데모를 보여주고 있는데, 쉐어포인트 개발자와 기획/설계를 담당하는 사람이라면 큰 도움이 될 수 있을 것 같습니다.

 

image

자 이제 시작합니다.

 

image

쉐어포인트 WCM 의 핵심은 개발자가 아닌 사용자에 의해 컨텐츠를 관리할 수 있게 하겠다는 것입니다. 기존의 개발팀이 모든 것을 다 하는 것이 아닌 사용자에 의한 XXX 라는 점에서 MS 의 큰 기조에 부합하는 느낌입니다. 그렇지만 우리의 현실은 좀 다르죠.

 

image

페이지 레이아웃을 소개합니다. 퍼블리싱의 대표적인 기능이구요. 2007 에서 소개가 되었습니다. 국내에서 제대로 쓰는 사례는 아직 못봤습니다.

마스터 페이지와 비슷한 점이 존재합니다만, 목적과 용도가 다릅니다.

마스터 페이지 => 전체 화면의 배치와 브랜딩을 담당

페이지 레이아웃 => 컨텐츠 영역 안의 배치와 브랜딩을 담당

 

image

페이지 레이아웃은 컨텐츠의 템플릿입니다. 이에 반해 마스터 페이지는 페이지들의 템플릿이지요.

결과물로 사이트의 브랜딩에 영향을 끼친다는 점에서 마스터 페이지과 공통점이 있습니다.

퍼블리싱 기반이다 보니 게시/승인의 프로세스를 가지고 있습니다.

 

image

간단하게 예로 보여주는 화면입니다. ASP.NET 페이지에서는 마스터와 컨텐츠로 구성되는데 쉐어포인트에서는 컨텐츠에 페이지 레이아웃을 적용할 수 있는 겁니다.

 

image

쉐어포인트는 사용자가 웹 페이지를 직접 만들 수 있습니다. CMS 라고 부르기도 하던데요. 페이지를 만든 후 컨텐츠의 레이아웃을 선택할 수 있습니다.

 

image

이런 페이지로 만들었다가..

 

image

레이아웃을 바꾸는 것만으로 이렇게 페이지의 모양을 바꿀 수 있습니다. 컨텐츠는 유지되지요.

 

image

이해를 돕기 위해 ASP.NET 의 마스터 페이지와 컨텐츠 페이지를 설명합니다.

 

image

그래서 이런 컨텐츠 페이지와

 

image

이런 마스터 페이지가 결합되면

 

image

이런 결과 페이지가 나옵니다

 

image

컨텐츠 플레이스 홀더가 마스터 페이지와 컨텐츠 페이지를 묶는 연결점이 됩니다. 컨텐츠 페이지의 컨텐츠 플레이스 홀더가 마스터 페이지에 없으면 에러가 납니다. 반면 마스터 페이지에 있는 컨텐츠 플레이스 홀더가 모두 컨텐츠 페이지에 있을 필요는 없습니다.

이게 쉐에포인트 마스터 페이지가 그렇게 많은 컨텐츠 플레이스 홀더를 가지고 있는 이유랍니다. 쳇!!

 

image

쉐어포인트의 페이지 레이아웃은 마스터와 페이지의 중간에 놓이는 놈은 아닙니다. 마스터 페이지에 영향을 주지는 못하구요. 컨텐츠의 배치에 관여 한다고 보면 됩니다.

중요한 것은 컨텐츠 타입과 관련이 있다는 것입니다.

페이지 레이아웃 ==> 컨텐츠 타입에 근거하여 컨텐츠(필드들)를 어떻게 배치 하여 보여줄 것인가를 결정

 

image

이렇게 만듭니다. asp.net 의 컨텐츠 페이지에 쉐어포인트 필드를 배치 한 것이지요.

 

image

쉐어포인트의 마스터 페이지 입니다.

 

image

기본적으로 asp:content 영역을 마스터 페이지에 연결해서 화면을 보여주는 것이어서 asp.net 과 동일합니다. 페이지 레이아웃은 asp:content 영역 안에서 일이 벌어집니다.

 

image

어떻게 쓰이는 지는 아래의 스샷과 데모로 볼 수 있습니다.

아래에서 보여주는 데모 중에 URL 파라미터를 이용해 컨텐츠 쿼리 웹파트의 필터를 걸어서 보여주는 데모가 압권입니다. 꼭 끝까지 보십시오 .

 

image

예제

 

image

실제 사례

 

image

실제 사례

 

image

이제 예제 데모를 좀 더 파볼  것입니다.

 

image

위에서 페이지 레이아웃은 컨텐츠 타입과 관련이 있다고 했는데, “페이지” 라는 녀석도 컨텐츠 타입의 일종입니다. 제목과 본문등의 사이트 컬럼을 가지고 있는 것인데, 그 필드를 페이지 레이아웃에서 배치할 때 쓰는 것입니다.

 

image

그래서 페이지 컨텐츠 타입에 메타데이터 필드를 넣으면 페이지 레이아웃에서도 그 필드를 사용할 수 있게 됩니다.

 

image

페이지 레이아웃에 웹파트 존을 넣을 수 있습니다. 다만 웹파트 존에 구성되는 내용 즉, 웹파트의 선택과 배치, 설정 등은 버전 컨트롤의 대상이 되지 않습니다. 컨텐츠 쿼리 웹파트가 페이지 컨텐트들을 정리해서 보여주는 좋은 도구가 될 것입니다.

 

image

컨텐츠 쿼리 웹파트는 알아서 공부 하라는…

 

image

이제 컨텐츠 쿼리 웹파트를 이용한 다이나믹 롤업의 내용을 소개 합니다. 컨텐츠 쿼리 웹파트가 가진 필터 기능을 이용하는 것입니다.

 

image

예제를 보시면 컨텐츠 영역의 오른쪽에 웹파트 존이 있고 그안에 컨텐츠 쿼리 웹파트가 있습니다. 그리고 그  웹파트의 설정에 필터를 걸어 놓았는데, PageFieldValue 를 받아서 처리하도록 되어 있습니다.

 

image

완성된 예제를 보면 왼쪽의 필드 값을 선택하면 오른쪽의 웹파트가 그 필드 값을 받아서 동적으로 변합니다.

 

image

이제 실전 예제를 볼 것인데요. 필드 값이 아닌 쿼리스트링 값을 이용하는 것입니다.

 

image

이 화면은 컨텐츠 영억이 두개의 웹파트 존으로 이루어져 있습니다.

왼쪽은 컨텐츠 쿼리 웹파트가 들어 있고, 오른쪽은 HTML 컨텐츠 웹파트(하드코딩)가 들어 있습니다. 기본적으로 쿼리스트링이 없을 때는 왼쪽의 웹파트는 모든 페이지를 리스트업 해 서 보여줍니다. 그러다가 오른쪽의 항목을 클릭하면 페이지 URL 에 쿼리스트링이 추가되어 페이지를 호출하게 되고 그러면 왼쪽의 웹파트가 그걸 받아서 필터링 된 페이지의 목록들을 보여줍니다.

일반적인 웹사이트, 홈페이지, 블로그 등에 아주 유용하게 쓰일 수 있을 것 같습니다. 쌩으로 개발하지 않아도 쉐어포인트의 페이지와 컨텐츠 롤업 기능으로 이렇게 손쉽게 구성이 가능한 것이지요.

 

image

마지막으로 디플로이 에 대한 내용입니다.

세가지 방법이 있지요.

- 손으로 올린다. 파일을 가져다가 마스터 갤러리에 업로드 하면 되지요

- 디자이너로 만든다.

- WSP 패키지로 만들어서 배포한다. 비주얼 스튜디오를 사용한 방법입니다

 

image

작은 사이트와 중대형 사이트 일 때 이렇게 해라는 것인데, 글쎄요…

개념이 좀 혼동 스럽게 설명이 되어 있습니다. 아래 그림을 꼭 보셔야 합니다

 

image

페이지 레이아웃을 기본 그대로 사용하는 것이 좋다는데, 그래서야 우리가 원하는 바를 이룰 수 없으니..

여기서 커스터 마이징이 됬느냐 안됬느냐의 차이는 이게 물리적으로 파일로 존재하는냐, 쉐어포인트 디비에 저장되느냐 입니다. 그래서 기본 그대로의 레이아웃 페이지 이더라도 쉐어포인트 마스터 갤러리에서 업로드 하면 그건 커스터 마이징된 파일인 겁니다.

결국 제가 생각하기에는 약간 어패가 있습니다. 언커스터 마이징된 레이아웃 파일을 권장한다니.. 내가 마음대로 하고 싶은게 인지상정이고, 자기들도 개발해서 쓰고 있으면서 !!

 

image

배포시의 팁이라는데 나중에 페이지 레이아웃으로 개발할 기회가 생기면 유념해서 참고해야 겠습니다. 뭐 굉장히 대단한 팁은 아니네요.

 

image

요건 주의 깊게 볼 필요가 있습니다. 기본 중의 기본이니까요.

1. 페이지 레이아웃을 만든다

2. 비주얼 수튜디오로 WSP 패키지에 포함시킨다

3. 엘리먼트 파일을 수정한다

4. 레이아웃 페이지가 사용하는 사이트 컬럼과 컨텐츠 타입이 서버에 정상적으로 존재하는지 확인한다

5. WSP 배포하고 관련 피쳐를 활성화 한다

 

image

엘리먼트 파일의 예제 입니다. 여기 보시면 File 태그의 타입이 GhostableInLibrary 로 되어 있습니다. 이게 바로 디비에 저장되며 커스터 마이징 된 파일의 사례 인 것입니다

그리고 중요한 것이 바로 이 레이아웃 페이지를 기존의 컨텐츠 타입과 연결하는 것인데, 컨텐츠 타입의 아이디를 넣어줘야 합니다. 위 화면에서 길게 나온 것이 그것이고 아래의 화면에서 컨텐츠 타입 아이디를 쉽게 찾는 법에 대해 설명합니다.

 

image

대략 세가지 방법이 있습니다.

=======================================

여기까지 페이지 레이아웃 에 대해 굉장히 상세히 다룬 세션이었습니다.

지금까지 경험해본 자료 중 페이지 레이아웃에 대해 가장 잘 정리하고 설명해주는 자료라고 평가하고 싶습니다.

Posted by 랜스 lanslote