7.x 버전대

드루팔 개발 : 목적에 따른 개발 Topic 목록

대단한 정보는 아니구요. 제목 그대로,

Drupal 개발시에 목적 별로 정리해 둔 Topic 목록 링크를 안내합니다.

https://api.drupal.org/api/drupal/groups

아래 내용은 그냥 텍스트들이니, 위 링크에서 상세항목으로 가시기 바랍니다.

Actions Functions that perform an action on a certain system object.
Ajax framework Functions for Drupal's Ajax framework.
Ajax framework commands Functions to create various Ajax commands.
Authorized operations Functions to run operations with elevated privileges via authorize.php.
Automatic interface translation import Functions to create batches for importing translations.
Batch operations Creates and processes batch operations.
Block Caching Constants that define each block's caching state.
Callbacks Callback function signatures.
Code registry The code registry engine. 자세히 보기 »

기능성이 가장 좋지만 까다로운 Better Formats 모듈의 사용법

드루팔에서의 Input Filter라 함은, 입력문에 대한 포맷지정을
동적으로 가능하게 하는 기능입니다. (예:HTML 태그 필터링, 특정 변환 등)

이 인풋필터 관련한 모듈들이 여럿 있지만, 그 중에 가장 강력한 것은
Better Formats 모듈입니다.

그런데 Better Formats 모듈의 사용법이 조금 까다롭네요. 그래서 메모합니다.
(참고로 본 글은 palpal.org/node/37 의 댓글에 있던 내용을 업그레이드 한 것입니다)

[Better Formats 모듈의 사용법]

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

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

본 글의 아래 관련글에도 "Input Filter" 관련 항목이 있으니 참고 바랍니다.

화면은 하얗고 아무 것도 나타나지 않는 공백화면 문제 발생시 대처법

위 제목에 대한 대답의 결론은,

에러를 나타나게 해야 입니다.

대부분의 드루팔 공백 표시 에러 현상은,
경고나 에러를 화면상에 표시하지 않기 때문에 나타나는 것입니다.

특정 화면이나 기능에서, 흰색 공백 화면이 계속 보이고
원하는 결과가 보이지 않는다면, 1차적으로는
드루팔 관리화면 >> Reports >> 최신 로그를 보지요.

하지만 공백 화면 현상은 위 최신 로그로도
드러나지 않는 PHP에러가 근본적인 원인일 가능성이 큽니다.

아래 페이지에서는 이러한 현상에 대한 보다 근본적인 조사방법을 제시합니다.

Blank pages or "white screen of death" (WSOD)
https://drupal.org/node/158043

영어라서 아쉽긴 한데, 간단한 예를 적용해 보시면 금방 이해가 됩니다.

1. 흰색 공백화면 현상이 발생하는 드루팔 사이트가 있는 경우.

2. 해당 드루팔 사이트의 settings.php에 다음의 3라인을 추가.

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

3. 그리고 해당 드루팔 사이트의 문제있는 화면이나 기능을 다시 확인.

4. 구체적인 PHP에러 메시지가 보일 겁니다. 이를 해결하면 공백화면 사라짐.

5. 이후에 2번 과정의 적용을 다시 원래대로 복원해 두면 좋겠죠.

드루팔 성능/속도 올리기 끝판 - 드루팔 성능 향상에 대한 모듈 비교 문서

왜 진작 못찾았을까요. (모른 것은 게으른 탓...)

Caching: Modules that make Drupal scale
https://groups.drupal.org/node/21897

드루팔 성능 향상의 여러 방법 중,
모듈로만 승부를 보시겠다는 분은
위 주소의 글을 꼼꼼히 확인해 보시고
Performance Gain항목이 Very High 또는 High
인 모듈을 적용해 보시길 바랍니다.

개인적으로는 서버와 회선 등 인프라적인 면도
같이 개선되면 최고의 결과를 얻을 듯 합니다.

Pathauto 모듈의 사용법을 뒤집어 보다.

패스오토 모듈은, 드루팔에서 각각의
컨텐츠 노드의 주소를 조금 더 가독성 높고 SEO 친화적인
형태로 URL Alias를 조정해 주는 역할을 한다.

Taxonomy의 용어 페이지에도 이 모듈을 이용해
"category/해당용어" 형태로 바꿀 수 있는데,
드루팔 관리자 인터페이스에서 찾기 어렵다는 질문이 종종 있다.

path auth 의 설정 화면은,
/admin/build/path/pathauto
에 있다. 화면상으로는
URL Alias 설정의 "Automated alias settings" 메뉴를 선택하면 나온다.

이 곳에서 Taxonomy term paths 항목을 선택하고,
Bulk generate aliases for terms that are not aliased 를 체크한 후,
설정을 저장하면 지금까지 있던 카테고리별 용어설정 주소가,
"category/해당용어" 형태로 전환된다.

* 이 때 주의할 점은, Taxonomy term paths 의 전환이 50개씩 진행되므로,
  Bulk generation of terms completed, 50 aliases generated.
  메시지가 ... 0 또는 50이하 aliases ...로 바뀔 때까지 반복해야 한다.

Block이나 View를 노드 본문에 삽입하는 방법들

Block이나 View를 노드 본문에 삽입하는 방법들은 참으로 다양하다.

열거하자면,


1. Panels나 Display Suite 모듈을 이용하는 경우.
기능이 풍부하고 드래그 드랍을 지원하는 등 조작성이 풍부하나,
그만큼 모듈이 고장나기 쉽다. (패널즈는 버전업 때 항상 애를 먹었다)

2. Contents Template를 이용하는 경우.
손수 코딩을 하는 셈이니, 가변성은 제일 좋지만
그만큼 최초의 템플릿 수정이 귀찮고,
또한 노드 타입 전체에 적용돼 한 노드 적용에는 부적합.

3. Insert View 모듈을 이용하는 경우.
https://drupal.org/project/insert_view
모듈 설치/활성화후, 입력 필터에서 인설트뷰를 체크하면,
그 다음에 해당 입력 필터로 작성되는 어떠한 노드에서도 가볍게 뷰(블럭)를 지정가능함.
The tag syntax is [view:name=display=args] 예) [view:feeds=block_2=]

4. node-nodetype.tpl.php 등 템플릿 레벨을 수정하여 이용하는 경우.
이 또한 가변성은 아주 좋지만, 최초 수정이 귀찮고,
또한 노드 타입 전체에 적용돼 한 노드 적용에는 부적합.

5. CCK Blocks이나 Block Reference 모듈을 이용하는 경우.
https://drupal.org/project/cck_blocks 자세히 보기 »

드루팔 체험(공부)하는 순서 추천

드루팔을 설치하고 나서, 아래와 같은 순서로 기능을 접하면 좋다.


1. 컨텐츠 한 건 작성 : CMS의 가장 기본 기능이니까.
이 때 컨텐츠 타입을 선택하게 되는 데 이걸 잘 기억해 두자.
(컨텐츠 타입이 드루팔의 핵심을 이해하는 키)

2. 블럭 기능 : 관리화면의 블럭 설정에서 이것저것 조작해 보자.
홈페이지의 구조가 손쉽게, 그리고 조금씩 바뀌는 게 재밌다.

3. 컨텐츠 타입의 작성 기능 : 관리화면에서 컨텐츠 타입을 하나 만들어 보자.
기본적으로는 타이틀과 본문이 있는데, 여기에 원하는 정보 항목을 추가해 보자.
(예를 들어, 음식이라는 컨텐츠 타입을 만들고, 추가항목으로 칼로리를 수치형태로)

4. 모듈 추가하기 : 아래 모듈이 없다면 반드시 설치해 보자.
Views 모듈 : https://drupal.org/project/views
이 모듈은 너무 중요해서 드루팔 버전 8부터는 코어 모듈(기본 장착)이 된다.

설치하는 법 : 모듈을 다운로드 받은 후,
드루팔_폴더/modules 혹은 sites/all/modules 폴더(이 쪽을 더 추천)에 넣고
관리화면의 모듈 항목을 살펴보면 Views 모듈이 보인다. (드루팔 7 이하의 경우)
이 모듈을 체크하고 저장하면 뷰 모듈이 활성화된다.

이후에 뷰 관련된 설정법/사용법은 아래 동영상을 참고하면 된다.
https://drupal.org/node/1351076 (영문)  자세히 보기 »

드루팔 시스템 update시의 에러 해결 메모 : emfield, youtube 모듈 관련

드루팔 시스템을 업데이트하는 방법은 단순하다.

관리자로 로그인한 후, /update.php를 기동하면 된다.

그런데 어느 날, 통상적인 보안패치로 업데이트를 기동하니 다음과 같은 에러가 뜬다.

The update process was aborted prematurely while running update #6012 in media_youtube.module. All errors have been logged.

아무래도 최근에 소스 업데이트한 media_youtube 모듈이 문제인 듯 하다.

업데이트할 때마다 에러가 계속 나서 여타 모듈의 갱신도 전부 멈추고.

유튜브 모듈 소스를 예전으로 돌릴까 아니면 소스를 살펴볼까 어떻게 할까 고민하다가,

혹시나 해서, admin/build/modules 에서 emfield (Embeded Field Module)과 media_youtube 모듈을 활성화했다.

그리고 나서 다시 업데이트를 해 보니, 문제없이 진행이 됐다.

참고) 예전에 심각한 버그로 emfield 모듈을 정지시킨 후였다. 아래 쪽의 관련 글 참고.

해결된 이유를 조사하는 것은 귀찮아서 넘어가고, 비슷한 상황을 겪을까 메모해 둔다.

게시물에 코멘트(댓글)가 달리면, 본문 등록자에게 자동으로 메일이 가도록 하는 방법.

Subscriptions 모듈로,
게시물에 코멘트가 달리면, 본문 등록자에게 메일이 자동으로 가도록 하는 방법을 메모해 둔다.

설정이 단순하지는 않다. 메일 송신에 문제가 있는 경우의 확인을 위해
tail -f로 smtp, postfix 등의 maillog를 살펴보는 것도 필요하다.


1. 우선 Subscriptions 모듈을 설치/활성화한다.
http://drupal.org/project/subscriptions
활성화할 때, 아래 하위모듈들도 체크해 준다.

Content Subscriptions
Subscriptions Mail
Subscriptions UI
Taxonomy Subscriptions

2. 아울러 메일 템플릿 작성/편집을 위해 아래 모듈도 설치/활성화하자.
http://drupal.org/project/mail_edit

3. 아래 주소로 가서, "subscribe to content" 에만 체크를 하자. (해당 Role들에게만)
http://palpal.org/admin/user/permissions#module-subscriptions

* 다른 항목에도 체크할 경우가 있으나, 조건에 따라 대량의 메일송신이 발생하니 주의.

4. /admin/settings/subscriptions 에 가서 Mail settings 항목을 채워준다.

* 해당 사이트의 서버 부하에 걸맞는 설정이 아래 세부항목에 필요하다.
Maximum number of notifications to send per cron run: 자세히 보기 »

외국발 스팸을 막기 위한 극단적 조치와 과거 이야기들

우선 사과 말씀 하나.
최근에 본 사이트에 로봇으로 등록된 계정들이
상업성 광고글과 댓글을 왕창 달았습니다.

해당 글과 댓글들은 모두 삭제했습니다만,
반성하고 개선해야하기에 기록을 남깁니다.

예전부터 본 사이트는 개방형 등록사이트로,
이메일만 중복되지 않는다면 누구나 쉽게 가입, 글을 쓸 수 있었습니다.

그러다 보니 외국발 스팸들이 어느 순간부터 설치기 시작,
한번씩 대량의 광고글들이 들이닫쳐 사이트의 신뢰성을 갉아먹더군요.

여지껏 이를 해소하기 위한 방법도 여러 번 있었습니다.

- 캡챠를 이용해서 자동로봇 등록을 막는 방법.

>> 지금도 사용하고 있습니다만, 완벽하게 막지는 못합니다.
>> 캡챠 확인글로 한글을 입력하게 하는 방법도 있긴 합니다. (외국발 스팸 방지용)

- 스팸 방지 모듈들을 사용하는 방법. (spam, http:BL, spambot 등 모듈)

>> 설정이 까다롭거나 작동이 완벽하지 않을 수 있습니다.

- 드루팔 모듈의 보안패치를 부지런하게 수행한다.

>> 말 그대로 부지런해야 합니다. 뭐, 다른 CMS보다야 과정이 나은 듯 합니다만.

이런 저런 기술적 방법들이 있는 것 같습니다만,
날고 기는 스팸머들에게는 방어벽을 업그레이드할 여유가 늘 부족한 듯 합니다.

그. 래. 서.

실제로 등록하실 분들에게 심히 죄송스럽게도 (많이 번거롭겠지만)
등록 승인제로 바꾸기로 했습니다. 게다가 로봇 등록을 막기 위해
등록시 확인정보(인간만이 입력할 만한 정감있는 내용?!)도 묻습니다. 자세히 보기 »

내용묶음