CCK

FileField 모듈로 인해, Referencing to the file used in the field is not allowed. 문제가 발생한다면

드루팔에서 꽤나 유용하고 많이 사용되는
FileField 모듈을 6.x-3.13으로 업그레이드하고 나면
(항상 발생하는 문제는 아니라고 하는데) 특정 서버에서는

Referencing to the file used in the field is not allowed.

라는 에러가 발생하면서 컨텐츠의 수정이 거의 불가능해지는 경우가 있습니다.

이런 경우에는

FileField/filefield_widget.inc 을 백업한 후,
아래의 주소에서 받은 패치파일을 적용하면 해결 됩니다.
https://www.drupal.org/files/issues/referencing_to_the-2305969-29.patch

보안 관련해서 드루팔 본체의 마이너 업그레이드로 인해 발생하는 문제라고 합니다.
자세한 내용은 아래 주소를 참고하세요. (영문)

https://www.drupal.org/node/2305969

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

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);
 자세히 보기 »

내용묶음