무버블 타입내에서 디폴트 템플릿을 만들어 주는 도구
무머블 타입에서 말하는 "디폴트" 템플릿이란 무엇입니까?
디폴트 템플릿이란, 새로운 블로그를 생성할 경우에 자동적으로 같이 기본적으로 생성되는 모든 템플릿들을 말합니다. 또한 3.2부터 기본으로 포함된 TemplateRefresh 플러그인까지 고려하면, 디폴트 템플릿이란, 기존의 블로그에서 삭제/변경되더라도 다시 원래의 모습으로 refresh 시킬수 있는 템플릿을 의미하기도 합니다.
어떤 경우에 사용자가 자신의 몇몇 템플릿을 "디폴트" 템플릿으로 만들어 주고 싶을 수가 있습니다. 예를들어, 자신이 사용하는 어떤 플러그인가 기본으로 어떤 입력파일을 사용하는데 그것을 편리하게 인덱스 템플릿을 이용해 생성/관리하고자 하는 경우라든가, 아니면 자신의 입맛에 맞게 특화시킨 각종 피드 등을 새로운 블로그 생성시마다 일일이 다시 등록하기 귀찮은 경우 등이 그 좋은 예일 것입니다.
물론 이렇게 임의의 템플릿을 수작업으로 소스 변경등으로 해줄 수도 있습니다만 특히 TR플러그인에 자신의 템플릿의 다이제스트 값을 입력해주는 부분등이 매우 귀찮기 때문에, 이 툴을 만들게 되었씁니다.
이 플러그인 내에 제공하는 수정된 TemplateRefresh 는 "Add Default Templates"라는 시스템관리 블로그 목록에 적용할수 있는 새로운 액션을 추가시켜 줍니다. 만약 MT의 디폴트 템플릿 중에 어떤 것을 실수로 삭제했을 경우, 혹은 이 툴로 MT시스템내에는 디폴트로 등록했지만 현재 블로그에는 아직 나타나있지 않은 경우에는 이 액션으로 빠진 템플릿만 추가시켜 줄 수 있습니다.
Requirement
- Movable Type 3.2
Installation
압축파일을 받아서 (mt home) 폴더 밑에서 $ tar xvfz addDefaultTemplates.tar.gz 등의 명령으로 풀면 다음과 같은 폴더 구조에 파일들이 생깁니다.
- (mt home)/tools/add-default-templates
- (mt home)/tools/default_templates/test.tmpl.add
- (mt home)/plugins/alogblog/addDefaultTemplates.pl
- (mt home)/plugins/TemplateRefresh/TemplateRefresh.pl
How to Use
디폴트 템플릿 준비
(mt home)/tools/default_templates/ 폴더 아래에 예제 파일이 하나 있는데, 그것을 이용해 다른 템플릿을 만들 수 있습니다.
예를 들어 아래와 같은 형식을 가진 CSS 파일을 위한 디폴트 인덱스 템플릿을 만들려고 한다면,

먼저 any_file_name.tmpl.add 파일을 (mt home)/tools/default_templates/ 폴더 아래에 만들어야 합니다. 이때 "any_file_name" 부분은 임의의 이름이라도 상관없습니다. 이 예제의 경우엔 그냥 mytest.tmpl.add 이라고 가정하면, 그 실제 파일 내용은 아래와 같이 표현됩니다.
$/ = undef;
my $template = {
'outfile' => 'test.css',
'name' => 'My Test CSS',
'type' => 'index',
'rebuild_me' => '1',
'text' => <DATA>
};
$template;
__DATA__
.test
{
font-family: Arial, Verdana, Sans-Serif;
font-size: 12px;
padding: 5px 5px 5px 5px;
margin: 0px;
background: #fff url(<MTBlogName dirify="1">.gif);
}
MT시스템과 TemplateRefresh 플러그인 업데이트
(mt home)/ 폴더 밑에서 $ perl tools/add-default-templates 식의 명령을 실행시킵니다. 그러면 위에서 준비한 (mt home)/tools/default_templates/*.tmpl.add 의 모든 템플릿이 MT시스템과 TemplateRefresh 플러그인에 반영이 됩니다.
만약 어떤 템플릿을 디폴트 템플릿에서 삭제하길 원한다면, 해당 파일의 이름을 AAA.tmpl.add 에서 AAA.tmpl.del 식으로 끝을 바꿔준 후에 위의 명령을 다시 실행하면 됩니다.
이미 존재하는 블로그에 업데이트
위에서와 같이 MT시스템에 내가 만든 임의의 템플릿을 디폴트 템플릿으로 만들면, 앞으로 새로 생성하는 블로그에만 자동 생성될 뿐, 이미 만들어져 있는 블로그들엔 자동으로 나타나지 않기에 아래의 과정으로 이미 존재하는 블로그에도 디폴트 템플릿으로 생성시키는 작업을 합니다.
System Overview 메뉴페이지의 List Weblogs 페이지에가서, 적용하고자 하는 모든 블로그를 선택한 후에, "Add Default Template(s)" 액션명령을 실행하면 됩니다. 이 액션은 MT시스템내에 존재하는 디폴트 템플릿 중에, 현재 블로그에서 빠져 있는 템플릿만을 새로 만들어 주는 구실입니다.
Notes
- 템플릿의 실제 내용은 *.tmpl.add의 __DATA__밑에 나타냅니다.
- 'type' 변수는 'index', 'category', 'archive', 'individual', or 'custom' 값을 가질수 있습니다.
- 'archive' 타입은 Date-based 아카이브를 의미합니다.
- 'custom' 타입은 MT 템플릿 메뉴상에선 Module템플릿을 의미합니다.
- 'rebuild_me' 변수는 '0' 또는 '1'을 가집니다.
- 현재 이 플러그인의 배포파일에는TemplateRefresh.pl 파일이 포함되어 있습니다. 이것은 원래 Movable Type의 기본 플러그인입니다. 원 1.0버전의 TR이 제공하는 액션은 디폴트 템플릿 중에 없는/지워진 템플릿만 복구하는데에는 부적당합니다. 이런 경우에 지워진 템플릿 외에 정상적으로 수정/변경된 템플릿까지 한꺼번에 모두 Refresh를 시켜주기 때문에, 일이 번잡해 지기 때문입니다. 그래서 별도의 "Add Default Template(s)" 액션을 임의로 추가했습니다. 차후의 TR 플러그인에서 이 기능이 포함되길 바라며, 만약 그렇게 되면 배포버전에서 제거하겠습니다.
License
TemplateRefresh.pl 파일은 sixapart사의 원래 저작권을 따릅니다.
Relased under the Creative Commons License.
Version History
- 3.2.01 : newly created MT tool
Post a comment