7.x 버전대

컨텐츠 종류에 따라 노드 정보(글의 작성자, 등록일시)의 출력형태를 커스터마이징해 보자.

팔팔.오알지는 오래된 글들이 많다.
제일 오래된 것들은 2007년 9월의 글이다.

그럼에도 불구하고 이들 글들은 대부분은 아직도 유효하다.
대부분의 글들이 드루팔 메이저 버전5와 6에서 작성됐으며
버전 6의 경우에는 아직도 현역이기 때문이다.
(드루지기들은 대부분의 실무 프로젝트를 이 버전으로 합니다)

최근에는 버전 7이 주력으로 돼 가고 있으나, 버전 6에서의
모듈들이나 기능들은 7에서도 거의 비슷한 형태이다.
(요약하자면 드루팔 6을 잘 다룰 줄 알면 7도 그렇게 어렵지 않다는 말입니다)

그래서인지 예전 글들임에도 불구하고 종종 다시 보게 되고,
틈틈히 글 내용을 수정하면서, 옛 글도 새 글 못지 않게 생명력을 가지게 되었다.

하지만, 보통의 드루팔 테마들은, 노드 정보(글 정보. submitted by....와 날짜 부분)가 안습이다.

아래 옛 테마의 노드 정보 형태를 보라. 한영 섞인 것도 아쉬운데다가 날짜는 왜 최초 작성일 뿐인가. 다시 수정한 글은 새 글 못지 않은데, 수정한 날짜가 보이질 않는다.

작성자 이름 Posted at 12:48 on 토, 05/25/2008

혹은

Submitted by palpal on 일, 2008-05-25 12:48

차라리 보이지 않았으면 해서, 관련글 [컨텐츠 종류에 따라 글의 작성자, 등록일시를 화면에서 보이지 않고 싶은 경우] 같은 시도도 있었다.

하지만 뒤늦게 아래와 같이 노드 정보를 커스트마이징 가능한 모듈을 찾았다.

 자세히 보기 »

저장될 파일의 패스를 자동으로 설정할 수 있는 File (Fields) Paths 모듈

하나의 컨텐츠 타입을 작성하고 그 타입의 필드 중에
파일 요소를 몇 개 추가하는 경우가 있다.

이 때 지정한 파일들은 컨텐츠 작성시 하나의 폴더에 저장되는 것이 일반적이다.
문제는, 세월이 흘러 해당 폴더에 파일들이 너무 많아지면,
서버의 퍼포먼스에 문제가 발생할 수 있다.

이런 경우에 파일을 분산저장 가능한 아래 모듈을 이용하면
문제를 사전에 예방할 수 있다.

http://drupal.org/project/filefield_paths

모듈을 설치/활성화하고, 설정화면의 Paths항목에
여러 가지 Replace Patterns 중 하나를 활용하면
컨텐츠 생성하고 파일 업로드할 때 저절로
해당 폴더 안으로 파일들이 분산 저장된다.

예를 들어, 노드 번호별로 된 폴더를 지정할 수 있고,
랜덤한 문자열로 된 폴더를 지정할 수도 있다.

또한 이 모듈과 File Aliases 모듈을 혼용하면,
다운로드할 파일 링크나 파일명을 자유롭게 조절, 변형 가능하다.
업로드된 원래의 파일 패스를 숨기고 싶을 때 유용하다.

Drupal 개발자용 예제 코드 모음

Drupal 개발자용 예제 코드 모음

코어와 관련된 것들은 아래 주소에 있다.
http://drupal.org/project/examples

드루팔 버전에 따라 작동하지 않는 예제도 있을 수 있다.


action_example Creating Actions
ahah_example Using AHAH forms
ajax_example Using AJAX forms
batch_example Using the batch API
block_example Defining blocks
cache_example Using cache APIs in Drupal
cron_example hook_cron() and family demonstration
dbtng_example Database examples (DBTNG)
email_example Sending e-mail
entity_example Custom entities in Drupal
field_example Defining fields in the Field API
file_example Handle files
filter_example Defining an input filter
form_example Fom API: multistep, states, elements
image_example Image example (styles and effects)
js_example Javascript example
 자세히 보기 »

Drupal Search Result 화면을 커스터마이징 하려는 경우, 관련 링크들

제목 그대로, 검색 결과 화면을 수정하고 싶은 경우의 자료 모음입니다.
꼭 찍어서 이게 최고로 좋은 방법이다라는 지정은 없고, 메모 수준입니다.
모두 영문 기사라서 조금 아쉽네요.

Drupal Search Result에 관해 전체 윤곽이 잡히는 글. 추천!
http://adaptivethemes.com/theme-your-search-results

Drupal Search Result에 관해 뷰 연동이 가능한 예. (결과를 뷰에 넣으면 블럭이든 뭐든지 가능)
http://bxcollective.com/drupal-6-obtain-nids-to-theme-search-results-page/

관련된 표준 API
http://api.drupal.org/api/drupal/modules!search!search-result.tpl.php/6
http://api.drupal.org/api/drupal/modules!search!search.pages.inc/function/template_preprocess_search_result/6

기타 등등

how to theme search results in Drupal 6
http://drupal.org/node/256400

플로팅바 형태로 검색폼을 출력. (검색결과가 아니라서 아쉬움)
http://www.rundrupal.com/tutorials/adding-search-floater-bar-your-theme

Customizing the search results 자세히 보기 »

드루팔의 노드 검색 결과에 특정 컨텐츠 필드(예:이미지)를 추가하는 법

드루팔 사이트의 검색은 CSE모듈을 이용해서 구글에 맡기는 것이 좋은데,
비공개성이 강하거나 회원제 사이트라면 드루팔의 표준 검색 모듈 Search만을 이용한다.

어떤 개인 프로젝트에서 검색 결과 화면을 수정해 이미지를 출력하는 요건이 있었다.
쉬울 거라 예상했는데, 드루팔의 기본 검색 결과 화면을 커스터마이징하는 건 어려웠다.

* 조건 : 소스 코딩을 하지 말 것.
(소스나 테마를 수정하면 뭐든지 되지만, 시간이 많이 걸리고 나중에 버전 관리가 어렵다)

- 우선 drupal.org에서 Custom Search Results로 찾아보았다.
검색 결과를 수정가능한 모듈이 있는지 살펴봤는데 몇몇 후보 모듈들의 기능이 엉뚱했다.

 Saved Search... 모듈 : 기존 검색결과를 임시 저장한다?!
View Search 모듈 : 이 또한 기존의 검색결과를 이용해 뷰를 만들 수 있다고.

- 그래서 검색 결과를 수정가능한 테마가 있는지 살펴보기로 했다.

Smokes... 등 몇몇의 검색결과 옵션을 보유한 테마가 있었지만
단순히 작성자나 날짜 등의 온/오프 설정 뿐이어서 세밀한 커스터마이징이 불가능했다.
더 세밀히 검색결과를 조작하려면 search-results.tpl을 수정해야 했다.
코딩이 발생하므로 귀찮아서 스킵.

- "search results"로 모듈을 다시 검색하다가 Display Suite가 있음을 발견했다.
이미 유용한 모듈로 알고는 있었지만, 검색 결과마저 수정해 주는 줄은 몰랐다. 자세히 보기 »

상세 검색시 특정 카테고리를 복수 선택하는 편한 방법 - Custom Search 모듈

상세 검색시 특정 카테고리를 복수 선택하는 편한 방법 - Custom Search 모듈

드루팔의 기본 Search 모듈은 무난한 편이지만, 몇몇 아쉬운 점이 있다.

그 중 한 문제가, 카테고리(Taxonomy)가 아주 많이 분화된 드루팔 사이트의 경우,
상세 검색 Advanced Search를 눌렀을 때, 카테고리를 선택하는 창이 굉장히 불편하다.
특히 선택창에서 특정 텀즈를 복수개 선택해야 하는 경우에는 컨트롤키를 누르면서 조작하는데,
텀즈 갯수가 많은 경우에는 스크롤하면서 컨트롤키를 누르는게 여간 번거로운게 아니다.

그래서 찾아보았다. "상세 검색창의 카테고리들을 체크박스 형태로 바꿔 주는 모듈이 있는지"를.

아래 후보들 중에, 본 문제해결에 제일 알맞은 것은 3번 Custom Search 모듈이었다.

1. Search Config 모듈 : http://drupal.org/project/search_config

팔팔.오알지의 다른 글(http://palpal.org/node/402)에서도 아주 짧게 소개됐었다.

Search Config 은 생각보다 강력하지 않은 것 같다. 매뉴얼에는 상세 검색의 카테고리를 체크박스 형태로 보여준다고 돼 있는데... 그런 기능이 없는 것 같다.
관리자 로그인후, admin/settings/search에 추가된 Search Config 관련 설정 화면을 보면, 상세 검색에서 디폴트로 조정가능한 항목이 보이는데 안타깝게도 카테고리를 체크박스로 보여주는 설정은 없다. 자세히 보기 »

아직 저장하지 않았는데 쓰던 글 날려버렸어.... 드루팔 Autosave 모듈로 예방하자

웹 화면에서 바로 글을 작성하는 것은 편한 점, 나쁜 점이 있다.

나쁜 점 중 하나는, 폼에 많은 글을 작성하던 도중에 날려먹는 문제다.

문제의 패턴에 빈번한 예가 아래 세 가지로,
1. 쓰는 도중에 브라우저가 확 죽어버리거나 멈추는 현상. (특정 스크립트 등에 의해)
2. 쓰는 도중에 백 버튼이나 여타 링크를 눌러버림, 돌아와 보니 쓰던 글 사라짐.
3. 다 쓰고 저장 버튼을 눌렀는데, 로그인 풀림이나 인증 문제 등으로 이상 발생.

얼마나 애를 많이 먹었는지, 예전에 우리나라의 모-보드는 이런 문제를 원본소스 수정한 팁으로, 글 쓰는 중간중간 혹은 저장버튼 누를 때 클립보드에 자동(Ctrl+C)으로 저장되도록 하는 방법을 사용했었다.

위 문제들의 근본적으로 피하려면, 가능한 로컬 상 (잘 죽지 않는) 메모장 등에서 글을 작성하고 수시로 저장하며, 다 쓰고 나서 복사/붙여넣기로 웹 화면에 글을 투고하는 방법이 있지만, 으--- 귀찮다.

드루팔을 주력으로 사용하는 드루지기들도 위 문제를 몇 번 당하다가, 짬을 내서 해결책을 찾아보았다.

결론부터 말하자면, 다소 많은 방법들이 있는 것 같았지만 복잡해 보였고, 딱 원하는 기능은 없어보였다. 그 중에서도 Autosave 모듈이 제일 무난한 것 같아 소개한다.

http://drupal.org/project/autosave

설치/사용법 (아래는 전부 관리자로 로그인한 상태에서 실행)


1. 모듈을 다운로드해 설치, 관리자에서 활성화한다.
 자세히 보기 »

노드들을 특정 순서로 배열하고 싶은 경우 (특히, Drag and Drop 방식으로)

노드들을 특정 순서로 배열하고 싶은 경우 (특히, Drag and Drop 방식으로)

한 프로젝트에서 "복수의 노드들을 이용해서 순서를 가진 시리즈물(책 형태?)"을 만들 일이 생겼다.

본디 드루지기들은 드루팔의 북(이하 책) 기능을 싫어해서 어지간해서 사용하지 않았는데,
요즘은 어떤가 싶어 새로이 살펴보니, 예전에 그 불편했던 책 컨텐츠 설정 방식이 아니었다. 아직도 아주 편한 상황은 아니지만 이제는 도입해 볼 만큼 자유도도 높고 여타 기능과의 호환성이 좋아진 것 같다.

아래 영문 자료를 보고, 괜찮은 노드 배열 모듈들을 조사해 보았다.
하지만 (게으른 탓에) 쓰기 편한 2가지만을 골라 기록해 둔다.

Comparison of Node Ordering Modules (아주 좋은 자료)
http://drupal.org/node/398508

우선 아래 드래그블뷰 모듈!

http://drupal.org/project/draggableviews
첫 설정이 약간 까다롭지만 튼실해 보인다.
인스톨 및 설정은 README.txt 파일을 참고하면 된다.

기억나는 대로 기록해 두자면,


1. 드래그블뷰 모듈 설치/활성화
2. 뷰 하나를 준비. (이하 해당뷰)
3. 해당뷰의 필드에 DraggableViews: 나열순 항목을 추가한다.
4. 해당뷰의 Sort criteria에 DraggableViews: 나열순 항목을 추가한다.
5. 해당뷰의 Style을 드래그블 테이블로 바꾼다.
 자세히 보기 »

각종 폼의 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 모듈 자세히 보기 »

ImageCache 모듈의 "Failed generating an image from 이미지파일명 using imagecache preset 이미지캐쉬_프리셋명" 에러 대응책

ImageCache 모듈의 "Failed generating an image from 이미지파일명 using imagecache preset 이미지캐쉬_프리셋명" 에러 대응책

이미지캐쉬 모듈은 아주 유용하면서도 필수적인 모듈(이미지의 캐쉬 기능이 이상이다)이며,
또한 고장이 잘 나지않는, 드루지기의 추천 모듈 탑10에 들어가는 모듈이다. (이미지의 확대/축소/자르기/워터마크 등이 가능)

그런데 아래와 같은 에러가 나면서 어지간해서 고쳐지지 않고 캐쉬 이미지가 깨지는 현상이 발생했다.

드루팔 시스템 로그를 관리화면에서 보면

action(id:8): imagecache_effects_watermark failed for sites/드루팔.사이트명/files/imagecache_sample.png

Failed generating an image from 이미지파일명 using imagecache preset 이미지캐쉬_프리셋명

에러가 줄지어서 발생하고, 사용자 화면에서는 축소표시할 썸브네일 이미지가 전혀 나타나지 않았다.

______________________

결론적으로 아래와 같은 원인과 파일접근 권한부여 조치로 문제를 해결했으나,
여러 문제 케이스가 있을 수 있으므로 가능한 모든 체크 항목을 메모해 둔다.

원인 : 해당 이미지캐쉬_프리셋명의 특정 액션에서 사용할 이미지가 아파치 서버에서 접근 불가능한 권한설정이었다.

______________________

이미지캐쉬 모듈의 고장시 체크 항목 (범위가 넓다)

1. 드루팔 시스템 로그 자세히 보기 »

내용묶음