Dreamweaver 템플릿을 사용하여 “고정된” 페이지 레이아웃을 디자인한 다음 해당 페이지 레이아웃을 상속하는 템플릿을 기반으로 문서를 작성하는 방법을 살펴봅니다.

템플릿은 “고정된” 페이지 레이아웃을 디자인할 때 사용하는 특별한 문서 형식입니다. 사용자는 해당 템플릿의 페이지 레이아웃을 상속하는 템플릿을 기반으로 문서를 만들 수 있습니다. 템플릿을 디자인할 때 해당 템플릿을 기반으로 문서에서 편집할 수 있는 내용을 “편집 가능”으로 지정할 수 있습니다. 템플릿 제작자는 작성자, 그래픽 아티스트 또는 기타 웹 개발자 등의 템플릿 사용자가 템플릿에서 어떤 페이지 요소를 편집할 수 있는지 제어할 수 있습니다. 템플릿 제작자가 문서에 포함시킬 수 있는 템플릿 영역에는 몇 가지 유형이 있습니다.

참고:

템플릿을 사용하면 많은 디자인 영역을 제어하고 전체 레이아웃을 재사용할 수 있습니다. 라이브러리 항목을 만들어 사이트의 저작권 정보나 로고 등의 개별 디자인 요소를 재사용할 수 있습니다.

템플릿을 사용하면 한 번에 여러 페이지를 업데이트할 수 있습니다. 템플릿을 사용하여 만든 문서는 사용자가 나중에 분리하지 않는 한 템플릿과 연결된 상태로 유지됩니다. 템플릿을 수정하고 즉시 해당 템플릿에 기반한 모든 문서에서 디자인을 업데이트할 수 있습니다.

참고:

Dreamweaver의 템플릿은 Dreamweaver 템플릿의 페이지 섹션이 기본적으로 고정되어 편집할 수 없다는 점에서 기타 Adobe Creative Cloud 소프트웨어의 템플릿과 구분됩니다.

템플릿 영역의 유형

문서를 템플릿으로 저장하면 대부분의 문서 영역이 잠깁니다. 템플릿 제작자는 템플릿에 편집 가능 영역 또는 편집 가능 매개 변수를 삽입함으로써 템플릿에 기반한 문서의 편집 가능 영역을 지정할 수 있습니다.

제작자는 템플릿을 만들 때 편집 가능 영역과 잠긴 영역 모두를 변경할 수 있습니다. 그러나 템플릿 사용자는 템플릿에 기반한 문서에서 편집 가능 영역의 내용만 변경할 수 있고 잠긴 영역은 수정할 수 없습니다.

템플릿 영역에는 네 가지 유형이 있습니다.

편집 가능 영역: 템플릿 기반 문서에서 잠기지 않은 영역으로, 템플릿 사용자가 편집할 수 있는 부분입니다. 템플릿 제작자는 템플릿의 모든 영역을 편집 가능 영역으로 지정할 수 있습니다. 템플릿을 효과적으로 사용하려면 적어도 하나의 편집 가능 영역이 있어야 합니다. 그렇지 않으면 템플릿에 기반한 페이지를 편집할 수 없습니다. 편집 가능 영역에 대한 자세한 내용은 템플릿에서 편집 가능 영역 만들기를 참조하십시오.

반복 영역: 템플릿 사용자가 필요에 따라 템플릿을 기반으로 문서에서 반복 영역의 사본을 복사 또는 삭제할 수 있도록 설정된 문서 레이아웃 부분입니다. 예를 들어 표 행이 반복되도록 설정할 수 있습니다. 반복되는 부분은 템플릿 사용자가 반복 요소의 내용을 편집할 수 있도록 편집이 가능하지만 디자인 자체는 템플릿 제작자가 제어합니다.

템플릿에 삽입할 수 있는 두 가지 반복 영역 유형으로는 반복 영역과 반복 표가 있습니다. 반복 영역으로 작업하는 방법은 Dreamweaver에서 반복 영역 및 표 만들기를 참조하십시오.

옵션 영역: 문서에 표시되거나 표시되지 않을 수 있는 텍스트나 이미지와 같은 내용을 포함하는 템플릿 부분입니다. 템플릿 기반 페이지에서 템플릿 사용자는 대개 내용의 표시 여부를 제어합니다. 자세한 내용은 옵션 영역 섹션을 참조하십시오.

편집 가능 태그 속성: 템플릿에 기반한 페이지에서 속성을 편집할 수 있도록 템플릿의 태그 속성을 잠금 해제하는 데 사용합니다. 예를 들어 문서에 표시할 이미지는 “잠그고”, 정렬 방식은 템플릿 사용자가 왼쪽, 오른쪽 또는 가운데 중에서 설정하도록 할 수 있습니다. 자세한 내용은 Dreamweaver에서 편집 가능 태그 속성 정의를 참조하십시오.

기존 페이지를 템플릿으로 저장하여 템플릿 파일을 만드는 경우 Templates 폴더의 새 템플릿과 해당 파일의 모든 링크가 업데이트되어 문서 상대 경로가 올바르게 됩니다. 나중에 템플릿에 기반한 문서를 만들고 저장하면 모든 문서 상대 링크는 계속해서 올바른 파일을 가리킬 수 있도록 업데이트됩니다.

템플릿 파일에 새 문서 상대 링크를 추가할 때 속성 관리자의 [링크] 텍스트 상자에 사용자가 직접 경로를 입력하면 잘못된 경로 이름을 입력하기 쉽습니다. 올바른 경로는 템플릿 기반 문서의 폴더에서 링크된 문서로의 경로가 아니라 Templates 폴더에서 링크된 문서로의 경로입니다. 템플릿 파일에서 링크를 만드는 경우 속성 관리자의 폴더 아이콘이나 [파일 표시] 아이콘을 사용하여 올바른 링크 경로를 지정합니다.

템플릿 및 템플릿 기반 문서의 서버 스크립트

일부 서버 스크립트는 문서의 맨 처음 또는 맨 끝(<html> 태그 앞 또는 </html> 태그 뒤)에 삽입됩니다. 이러한 스크립트는 템플릿과 템플릿에 기반한 문서에서 특별하게 처리해야 합니다. 일반적으로 템플릿에서 <html> 태그 앞이나 </html> 태그 뒤의 스크립트 코드를 변경하는 경우 해당 템플릿에 기반한 문서에는 변경 사항이 복사되지 않습니다. 따라서 템플릿의 기본 본문 내에 있는 다른 서버 스크립트가 복사되지 않은 스크립트에 의존하면 서버 오류가 발생할 수 있습니다. 템플릿의 <html> 태그 앞이나 </html> 태그 뒤에서 스크립트를 변경하면 경고 메시지가 표시됩니다.

이러한 문제가 발생하지 않도록 하려면 템플릿의 head 섹션에 다음 코드를 삽입하면 됩니다.

<!-- TemplateInfo codeOutsideHTMLIsLocked="true" -->

템플릿에 이 코드가 있으면 <html> 태그 앞이나 </html> 태그 뒤의 스크립트에 대한 변경 내용이 해당 템플릿을 사용하는 문서에도 그대로 반영됩니다. 그러나 템플릿에 기반한 문서에서는 더 이상 해당 스크립트를 편집할 수 없게 됩니다. 따라서 템플릿이나 템플릿에 기반한 문서에서 이러한 스크립트를 편집할 수 있도록 선택할 수 있지만 둘 모두에서 편집할 수는 없습니다.

템플릿 매개 변수

템플릿 매개 변수는 템플릿 기반 문서의 내용을 제어하기 위한 값을 나타냅니다. 템플릿 매개 변수는 옵션 영역 또는 편집 가능 태그 속성에 사용하거나 연결된 문서에 전달할 값을 설정할 때 사용합니다. 각 매개 변수에 대해 이름, 데이터 유형 및 기본값을 선택합니다. 각 매개 변수는 고유 이름을 가져야 하며 각 이름은 대/소문자를 구분해야 합니다. 이들은 텍스트, 불린, 색상, URL 또는 숫자의 다섯 가지 허용된 데이터 유형 중 하나여야 합니다.

템플릿 매개 변수는 문서에 인스턴스 매개 변수로 전달됩니다. 대부분의 경우 템플릿 사용자는 매개 변수의 기본값을 편집하여 템플릿에 기반한 문서에 나타나는 항목을 사용자 정의할 수 있습니다. 템플릿 제작자가 템플릿 표현식의 값에 기반하여 문서에 표시할 항목을 지정하는 경우도 있습니다.

템플릿 표현식

템플릿 표현식은 값을 계산하거나 평가하는 데 사용하는 명령문입니다.

표현식을 사용하여 값을 저장하고 문서에 표시할 수 있습니다. 예를 들어 매개 변수의 값처럼 단순한 표현식(예: @@(Param)@@)을 사용할 수도 있고, 표 행의 배경색을 대체하는 값을 계산하기 위한 복잡한 표현식(예: @@((_index & 1) ? red : blue)@@)이 될 수 있습니다.

if 및 다중 if 조건에 대한 표현식을 정의할 수도 있습니다. 조건문에 표현식을 사용하면 Dreamweaver에서 표현식을 true 또는 false로 평가합니다. 조건이 true이면 템플릿 기반 문서에 옵션 영역이 표시되고 false이면 표시되지 않습니다.

표현식은 옵션 영역을 삽입할 때 코드 보기나 [옵션 영역] 대화 상자에서 정의할 수 있습니다.

코드 보기에서는 두 가지 방법, 즉 <!-- TemplateExpr expr="your expresson"--> 주석 또는 @@(your expression)@@을 사용하여 템플릿 표현식을 정의할 수 있습니다. 템플릿 코드에서 표현식을 삽입하면 디자인 뷰에 표현식 표시자가 나타납니다. 템플릿을 적용하면 Dreamweaver에서 표현식을 평가한 다음 템플릿 기반 문서에 값을 표시합니다.

템플릿 표현식 언어

템플릿 표현식 언어는 JavaScript의 작은 하위 집합으로서, JavaScript 구문과 우선 순위 규칙을 사용합니다. JavaScript 연산자를 사용하여 다음과 같은 표현식을 작성할 수 있습니다.

@@(firstName+lastName)@@

사용할 수 있는 기능 및 연산자는 다음과 같습니다.

  • 숫자 리터럴, 문자열 리터럴(큰따옴표 구문만 해당), 불린 리터럴(true 또는 false)

  • 변수 참조(이 단원의 뒷부분에 정의된 변수 목록 참조)

  • 필드 참조(“도트” 연산자)

  • 단항 연산자: +, -, ~, !

  • 이진 연산자: +, -, *, /, %, &, |, ^, &&, ||, <, <=, >, >=, ==, !=, <<,>>

  • 조건 연산자: ?:

  • 괄호: ()

    사용되는 데이터 유형으로는 불린, IEEE 64bpc 부동 소수점, 문자열 및 오브젝트가 있습니다. Dreamweaver 템플릿에서는 JavaScript “null” 또는 “undefined” 유형을 사용할 수 없습니다. 또한 스칼라 형식을 암시적으로 오브젝트로 변환할 수 없습니다. 따라서 "abc".length 표현식이 값 3을 생성하는 대신 오류를 트리거합니다.

    표현식 오브젝트 모델에 정의된 오브젝트만 사용할 수 있습니다. 다음 변수가 정의되어 있습니다.

    _document

    템플릿의 각 매개 변수에 대한 필드와 함께 문서 수준의 템플릿 데이터를 포함합니다.

    _repeat

    반복 영역 내에 나타나는 표현식에서만 정의됩니다. 영역에 대한 내장 정보를 제공합니다.

    _index

    현재 항목의 숫자 인덱스(0부터 시작)입니다.

    _numRows

    해당 반복 영역에 있는 전체 항목 수입니다.

    _isFirst

    현재 항목이 반복 영역의 첫 번째 항목이면 true입니다.

    _isLast

    현재 항목이 반복 영역의 마지막 항목이면 true입니다.

    _prevRecord

    이전 항목에 대한 _repeat 오브젝트입니다. 영역의 첫 번째 항목에 대해 이 속성에 액세스하면 오류가 발생합니다.

    _nextRecord

    다음 항목에 대한 _repeat 오브젝트입니다. 영역의 마지막 항목에 대해 이 속성에 액세스하면 오류가 발생합니다.

    _parent

    중첩된 반복 영역에서 닫는(외부) 반복 영역의 _repeat 오브젝트를 지정합니다. 중첩된 반복 영역의 외부에서 이 속성에 액세스하면 오류가 발생합니다.

    표현식을 평가하는 동안 _document 오브젝트와 _repeat 오브젝트의 모든 필드는 암시적으로 사용 가능합니다. 예를 들어 _document.title 대신 title을 입력하여 문서의 제목 매개 변수에 액세스할 수 있습니다.

    필드가 충돌하는 경우 _repeat 오브젝트의 필드가 _document 오브젝트의 필드보다 우선 순위가 높습니다. 따라서 반복 영역 매개 변수에 의해 숨겨진 문서 매개 변수를 참조하기 위해 반복 영역 내에서 _document를 사용해야 하는 경우를 제외하고는 _document나 _repeat를 명시적으로 참조해서는 안 됩니다.

    중첩된 반복 영역이 사용된 경우 가장 안쪽의 반복 영역에 있는 필드만 암시적으로 사용 가능합니다. 바깥쪽 영역은 _parent를 사용하여 명시적으로 참조되어야 합니다.

템플릿 코드의 다중 If 조건

if 및 다중 if 조건에 대한 템플릿 표현식을 정의할 수 있습니다. 이 예제에서는 “Dept”라는 매개 변수를 정의하고, 기본값을 설정하고, 표시할 로고를 판별하는 다중 if 조건을 정의하는 방법을 보여 줍니다.

다음은 템플릿의 head 섹션에 입력할 수 있는 코드 예제입니다.

<!-- TemplateParam name="Dept" type="number" value="1" -->

다음 조건문은 Dept 매개 변수에 할당된 값을 확인합니다. 조건이 true이거나 일치하면 적절한 이미지가 표시됩니다.

<!-- TemplateBeginMultipleIf --> 
<!-- checks value of Dept and shows appropriate image--> 
<!-- TemplateBeginIfClause cond="Dept == 1" --> <img src=".../sales.gif"> <!-- TemplateEndIfClause --> 
<!-- TemplateBeginIfClause cond="Dept == 2" --> <img src=".../support.gif"> <!-- TemplateEndIfClause--> 
<!-- TemplateBeginIfClause cond="Dept == 3" --> <img src=".../hr.gif"> <!-- TemplateEndIfClause --> 
<!-- TemplateBeginIfClause cond="Dept != 3" --> <img src=".../spacer.gif"> <!-- TemplateEndIfClause --> 
<!-- TemplateEndMultipleIf -->

템플릿 기반 문서를 만들면 템플릿 매개 변수가 해당 문서에 자동으로 전달됩니다. 템플릿 사용자는 표시할 이미지를 결정할 수 있습니다.

이 작업에는 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License의 라이센스가 부여되었습니다.  Twitter™ 및 Facebook 게시물은 Creative Commons 약관을 적용받지 않습니다.

법적 고지 사항   |   온라인 개인 정보 보호 정책