6.x 버전대

하나의 드루팔 코어로 모든 하위 사이트의 메타태그(MetaTag)를 한방에 추가하는 방법

관리하는 모든 하위 사이트의 메타태그(MetaTag)를 한방에 추가하는 방법은,
간단한 코딩으로 해결하는 것이, 각 사이트에 MetaTag 모듈을 설치하는 것보다 편합니다.

아래와 같이 드루팔_루트/includes/common.inc 에 있는
메소드에 메타태그를 추가하면 끝입니다.

function drupal_get_html_head() {
$output = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
$output .= "<meta name=\"추가할_메타태크_명칭\" content=\"추가할_메타태그_내용" />\n";
return $output . drupal_set_html_head();
}

주의1 : 위 문자열 추가시 특수문자가 중간에 있는 경우 백슬래시로 잘 처리해 줘야 원하는 대로 출력된다.
주의2 : 잘 추가했는데보 사이트에 반영안돼 보이는 경우에는 캐시 클린 후 다시 한번 더 리로드를 권한다.

* 위 주의점까지도 잘 대비했음에도 불구하고, 메타태그가 반영되지 않는다면,
해당 드루팔 사이트의 특정모듈/테마가 위 drupal_get_html_head() 메소드를 사용하지 않을 가능성이 있다.

모든 본문과 제목 등에서 특정 글자를 검색하고 치환하는 방법

어떤 상황이 발생해 모든 노드에 있는 AAA라는 단어를 BBB로 바꿀 필요가 생겼다.
해당 노드가 수백개 이상이라, 수작업 하면 그야말로 상노가다.

드루팔 본가에서 찾아 보니, 아래 모듈이 좋은 듯.

https://www.drupal.org/project/scanner

(원래는 아래의 Search and Replace였는데, 버전업하면서 모듈명을 스캐너로 바꾼 듯)
구 버전 : https://www.drupal.org/project/search_and_replace

----------

다국어 지원이 다소 염려됐으나 무사히 치환을 수행했다.
주의) 한글 검색/치환하려면 해당 모듈 설정에서 아래의 항목들을 체크 해제해 주어야 한다.

Default: Case Sensitive Search Mode
Default: Match Whole Word
Default: Regular Expression Search
Default: Search Published Nodes Only

극단적인 드루팔 메시지 숨김법

* 이 방법은 극단적인 메시지 숨김법입니다.
에러 메시지의 근본적인 문제를 해결하기를 바라며 본 방법은 급할 때 이외에 추천하지 않습니다.

드루팔 drupal_set_message는 온갖 에러/경고 메시지를 다 뿌려대다 보니
드루지기처럼 게으른 자들에게는 악몽과 같다 (왠만하면 표시하지 말고 몰래 알려줘!)

PHP의 버전변경이나 각종 모듈의 업그레이드로 예상못한 에러가 생기면
시스템의 패스마져 공개되는 경우가 있어 꽤나 신경쓰인다. (물론 잘 정비하면 문제 없지만)

그래서 관리자 권한자인 경우에만 메시지를 표시토록
includes/bootstrap.inc 를 아래와 같이 수정하면 당분간 편하다.
게으른 관리자를 위한 극단적인 수정이다.


function is_admin()
{
global $user;

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

기능성이 가장 좋지만 까다로운 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" 관련 항목이 있으니 참고 바랍니다.

팁이라고 하기엔 약소? warning: Creating default object from empty value in modules/taxonomy/taxonomy.pages.inc on line 33. 에러 대처법

드루팔 업그레이드 후에,
warning: Creating default object from empty value in ****/modules/taxonomy/taxonomy.pages.inc on line 33.

에러가 보인다면,

관리자로 로그인한 후에
/update.php를 통해 디비를 한번 갱신후 주면 해소된다.

* 가능하면 위 작업 전에 기존 디비를 백업해 주시길.

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

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

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

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

특정 화면이나 기능에서, 흰색 공백 화면이 계속 보이고
원하는 결과가 보이지 않는다면, 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

내용묶음