content

각종 폼의 Field 모양새를 조정하는데 도움되는 모듈들

각종 폼의 Field 모양새를 조정하는데 도움되는 모듈들

- Content Display Order 모듈 ★★★
http://drupal.org/project/content_display_order

특정 컨텐츠 타입내의 필드 표시 순서를 손쉽게 조정할 수 있다.
드루팔 6에서도 잘 작동한다.

- Contemplate 모듈 (Content Template)
유명하다. 하지만 드루팔 7부터는 사라질 예정이다.
설정법이 복잡하다. 그만큼 커스터마이징이 자유롭다.

- 위와 비슷한 목적의 모듈들이 드루팔 7에 더 많다.

Field display weights (per node)
http://drupal.org/project/field_weight

또는

http://drupal.org/search/apachesolr_multisitesearch/node%20field%20order...

_____________________

- Arrange Fields 모듈
http://drupal.org/project/arrange_fields

This module lets you drag-and-drop the fields of any CCK content type, Webform, or almost any other form in Drupal into the positions you would like for editing.

- Compact Forms 모듈

MultiGroup모듈과 FieldGroup모듈의 차이점

CCK를 이용해서 노드의 필드를 만들 수 있는데, 이를 그룹화하는 방법으로는
MultiGroup모듈과 FieldGroup모듈, 그리고 직접 코딩에 의한 제3의 방법이 있다.

결론부터 말하자면,
MultiGroup모듈이 가장 편하다. 하지만 커스터마이징이 많이 발생할 가능성이 있는 프로젝트라면 직접 코딩이 제격.

Content모듈의 하위 모듈인,
MultiGroup모듈과 FieldGroup모듈의 가장 중요한 차이점은
"그룹화된 필드들"의 복수개 지정 여부와 병렬 표시 가능성이다.

전자는 이것이 아주 잘 돼 있고, 후자는 병렬 표시가 어려워 그룹화 필드의 의미가 무색하다.

===

커스터마이징이 많이 발생할 가능성이 있는 프로젝트라면 직접 코딩이 좋은데,
이에 관련된 좋은 문서(아쉽게도 영어)가 있어 소개한다.

Creating a Compound Field Module for CCK in Drupal 6.x
http://poplarware.com/articles/cck_field_module

컨텐츠 타입 정보(혹은 CCK 설정)를 Export / Import 할 때, illegal choice detected on import 에러가 난다면.

컨텐츠 타입 정보(혹은 CCK 설정)를 Export / Import 할 때, illegal choice detected on import 에러가 난다면...

컨텐츠 타입 정보를 Export한 텍스트 파일 중에,

input_formats => '' 또는
input_formats => '0' 또는
weight => '' 부분을

다음과 같이 바꾸어서 Import 해 보라.

input_formats => '1' 또는
input_formats => '1' 또는
weight => '0' 과 같이 수정해서 Import.

* Import 에러 메시지가 제목의 에러 메시지와 "관리자에게 연락해 보세요"라고 너무 간단하게 나오는데, 이를 더 자세히 현상 확인하려면, Recent Logs 최근 로그에서 상세 에러 내용을 확인할 수 있다. 참고로 input_formats 관련된 임포터 에러는 feed_api 모듈의 CCK에서 자주 발생한다.

* 참고 :
http://drupal.org/search/apachesolr_search/illegal%20choice%20content%20...

드루팔 성능/속도 올리기 제5탄 - CCK 컨텐츠 타입의 필드 설정시 문자열 길이는 반드시 제한을 두라!

드루팔 성능/속도 올리기 제5탄 - CCK 컨텐츠 타입의 필드 설정시 문자열 길이는 반드시 제한을 두라!

아주 중요한 팁이다.
드루팔의 컨텐츠 타입 지정시, 필드를 문자열로 한 경우
설정 화면에서

Size of textfield: 부분에만 문자열 길이를 지정하면 끝인 줄 알면 큰 오산이다!

보통 기본값이 60으로 돼 있는데 이를 그대로 저장하면,
MySQL의 경우 VARCHAR 타입이 아닌 LONGTEXT로 필드를 생성한다.
그냥 TEXT도 아니고 LONGTEXT이다!!!
http://dev.mysql.com/doc/refman/5.1/en/string-type-overview.html

이 필드들을 드루팔 View를 이용해서 정렬이나 검색을 한다고 생각하면,
끔직하다! 참으로 끔직하다! 게다가 인덱싱도 설정돼 있지 않은 상태이다.

고로 반드시 다음과 같이 CCK 컨텐츠 타입을 설정하다. *(필독! 필히 준수!)

컨텐츠 타입의 필드 설정에서 문자열인 경우에는,
Size of textfield: 부분 뿐만 아니라 설정화면 제일 아래에 있는
"최대 문자수" 부분을 확실하게 지정해야 한다.

예를 들어 "최대 문자수" 부분에 200을 지정/저장하면,
MySQL에는 LONGTEXT가 아닌 VARCHAR 200으로 정확히 지정된다.

이렇게 하지 않으면 해당 컨텐츠 타입 목록의 출력시 많이 느려질 것이다.

* 일단 LONGTEXT로 생성된 컨텐츠 타입 필드는 나중에 "최대 문자수"를 강제 지정해도 VARCHAR로 변하지 않는다.

Adding a CCK Field: Learning CCK for Drupal

영어 동영상입니다. 차근차근 화면을 보면서 따라하면 영어도 별 필요없습니다.
원본 주소는
http://www.youtube.com/watch?v=By22kk1hrug
입니다.

Lullabot은 드루팔 교육 관련 유명한 회사입니다.
좋은 자료를 많이 보유하고 있습니다.
http://www.youtube.com/user/Lullabot

Computed Fields를 이용해서 프로그래밍이 가능한 동적 CCK 구현하기

Computed Fields를 이용해서 프로그래밍이 가능한 동적 CCK 구현하기

이 모듈은 쓸모가 많고 중요하다. http://drupal.org/project/computed_field

- PHP와 드루팔의 컨텐츠 필드개념을 잘 모른다면 사용하기 까다로울 수 있다.
- 드루팔 6.x 뿐만 아니라 7.x대로 지원하는 모듈이다. 각각의 사용법이 조금씩 다르다.

------ 7.x 기준의 설명 ------

예를 들어, 한 컨텐츠 타입의 attch2nd라는 필드가 있는데 aliasofattach라는 필드에서는 이를 변형해서 출력하는 예제를 준비해 보았다. (주의 : attach2nd였는데 미스 스펠로 인해 a가 빠짐)

컨텐츠 타입의 aliasofattach 필드 설정에서,
Computed Code (PHP)에는

// debuggging // $entity_field[0]['value'] = $entity->field_attch2nd;
$arrfield_for_another = array_pop( array_pop( $entity->field_attch2nd ) );
$entity_field[0]['value'] = $arrfield_for_another['origname'];

Display Code (PHP)에는

// 랜덤 확인용 // $display_output = 'dis'.rand(100000, 999999);

Syndicate content