컨텐츠 종류별로 입력 형식(Input Filter)의 기본값(Default)를 설정하려면...

제목 : 컨텐츠 종류별로 입력 형식(Input Filter)의 기본값(Default)를 설정하려면...

생각보다 어렵다.
(수정 : 제일 나은 것은 Default Filter 모듈이다)
(재수정 : 제일 나은 것은 Better Formats 모듈이다. 본 글의 댓글에 상세 기록이 있다.)
(주의 : Default Filter와 Filter Default는 다른 모듈이다)

관리자 > 사이트 설정 > 입력 형식 메뉴에서, 아무리 둘러 봐도 컨텐츠별로 기본(Default) 입력 형식을 설정하는 것은 없다. 모든 사용자와 모든 컨텐츠가 동시에 하나의 Default 입력 형식을 가지는 수 밖에 없다.

이 불편함을 해결하려면(완벽한 해결책은 아니다),

1. Filter Default 라는 모듈 ( http://drupal.org/project/filter_default ) 을 설치해서,
관리자 > 사이트 설정 > 입력 형식에서 "Default" 항목의 탭을 선택하면, 사용자 그룹별로 기본 입력 형식을 선택할 수 있다.
2. 관리자 > 사용자 관리 > 역할 만들기에서 "새로운 그룹"을 만든다.
3. 기본적인 입력 형태를 컨텐츠 별로 지정하는 대신, 1번에서 설명한 기능으로, 사용자 그룹별로 기본적인 Default Input Filter를 지정할 수 있다.

또다른 방법으로는,

Filter by node type 모듈 ( http://drupal.org/project/filterbynodetype ) 를 설치한 후, 모듈별 관리 메뉴에서 Filter by node type 항목을 선택, 각 컨텐츠별로 입력 형식을 지정해 줄 수 있다.
하지만! 이 방법은, Default Input Filter를 지정하는 것이 아닌, 컨텐츠별로 입력이 가능한 입력 형식의 On/Off를 결정하는 것이다.

아래의 Default Filter이 제일 무난했다.

--------- 수정 : 2008.02 -----------

아래의 Default Filter 모듈이 정확히 원하는 기능을 수행한다.
http://drupal.org/project/default_filter

Default Filter 라는 모듈을 설치/활성화해서,
관리자 > 사이트 환경설정 > Default Filter Settings에서
사용자 그룹별로, 노드 타입별로 기본 입력 형식을 선택할 수 있다.

주의) 관리자(최초 유저)로 로그인한 상태에서 이를 적용하면 작동하지 않는 것처럼 보인다. 이는 관리자가 어떠한 유저 그룹에도 포함되어 있지 않기 때문이다. 이를 해결하려면, admin이라는 사용자 그룹을 하나 생성하고, 관리자를 그 그룹에 소속시킨 다음, 다시 Default Filter Settings에서 적용해 보면 관리자에서도 특정 노드에 대해서 디폴트 필터가 잘 정의돼 있다.

주의) 가입 유저(Authenticated user)도 최초에는 이 모듈이 잘 적용되지 않는 것처럼 보이지만, 이는 권한 문제이므로 admin/user/access 페이지에서, Node 모듈부분의 권한들에서 해당 노드타입으로의 쓰기 권한이나 노드 접근 권한을 가입 유저들에게도 배당해야 한다. 이렇게 하면 디폴트 필터 설정이 잘된다.

주의) 프로그래밍에 의한 자동 노드생성시에는 이것이 잘 작동하지 않을 수도 있다(예:FeedAPI를 이용한 피이드 아이템을 노드화할 때, 디폴트 필터가 잘 안먹는다, 2008년 2월 기준).

주의) Filter Default 모듈과 이름이 헛갈린다. 하지만 다른 모듈이다.

--------- 수정 : 2009.01 -----------

위 모든 문제를 해결한 필터 모듈이 나왔네요.
아직 6.x대만 지원하고 2009년 1월 기준으로 베타판입니다만 나왔다는 자체가 어딥니까.

Better Formats 모듈 - http://drupal.org/project/better_formats
원했던 기능 이외에도 역할이 다양하네요.

* Set the default format per role.
* Set the default format per content type.
* Control allowed formats per content type.
* Hide format tips.
* Hide more format tips link.
* Hide format selection, forcing the default to be used.
* Expand the selection fieldset by default.
* Disable the expand/collapse of the selection fieldset.
* Set selection fieldset title.
* Set more format tips link text.
* Set default formats for nodes and comments separately.
* Sensible defaults and fail overs for ease of use.
* Works with CCK textareas.

사용법이 다소 까다롭습니다. 2009년 01월 28일 댓글에 상세 기록해 둡니다.

댓글

위 Better Formats 모듈의

위 Better Formats 모듈의 사용법이 조금 까다롭네요.

관리자로 로그인후 모듈을 설치/활성화한 후,
admin/settings/filters/settings 에 가서,
(메뉴로는 관리 > 사이트 환경설정 > 입력 형식의 환경설정 탭이다)
Control 항목의 Control formats per node type 을 체크/저장한다.

그런 다음, admin/content/types 에 있는 해당 컨텐츠 타입을 [편집],
Input format settings 항목에 있는
Allowed formats: 를 원하는 필터로 설정해 주면
그 다음부터 해당 컨텐츠 타입으로 생성할 때마다 Allowed formats 에서
지정한 입력 필터 형태로 본문이 저장된다.

위 모든 문제를

위 모든 문제를 해결한 필터 모듈이 나왔네요.
아직 6.x대만 지원하고 2009년 1월 기준으로 베타판입니다만 나왔다는 자체가 어딥니까.

Better Formats 모듈 - http://drupal.org/project/better_formats
원했던 기능 이외에도 역할이 다양하네요.

* Set the default format per role.
* Set the default format per content type.
* Control allowed formats per content type.
* Hide format tips.
* Hide more format tips link.
* Hide format selection, forcing the default to be used.
* Expand the selection fieldset by default.
* Disable the expand/collapse of the selection fieldset.
* Set selection fieldset title.
* Set more format tips link text.
* Set default formats for nodes and comments separately.
* Sensible defaults and fail overs for ease of use.
* Works with CCK textareas.

이 건에 관한 해결은

이 건에 관한 해결은 드루팔 버전7에서 이룰 가능성이 있어 보입니다. 아래 글에 오랜 시간동안 논의가 진행되고 있구요. 몇몇 예제 인터페이스 이미지도 있네요.

http://drupal.org/node/11218

* 개선된 필터 설정 인터페이스 이미지 :
http://www.asitis.org/tmp/input_formats-per-role.png

Default Filter 모듈을

Default Filter 모듈을 테스트해 봤습니다만,
뭔가 이상하네요. 새로 만든 컨텐츠 타입의
디폴트 필터로 Full HTML을 지정해 두었습니다만,
현재 오작동합니다. 안타깝군요.

Default Filter 모듈이 잘

Default Filter 모듈이 잘 작동하도록 했습니다.
요령이 다소 필요했습니다(권한 설정).
위 본문에 수정 반영해 두었습니다.