PDF보기를 위해 Drupal 7 모듈을 선택하는 방법

모듈 선택 기술에 대한 사례 연구

최근에 고객이 회사의 Drupal 사이트에 새로운 기능을 추가하라고 요청했습니다. 브라우저에 PDF 파일을 표시합니다. drupal.org의 옵션을 탐색하면서 새로운 모듈을 선택하면서 이것이 내 의사 결정 프로세스를 문서화 할 수있는 완벽한 기회임을 깨달았습니다. 나는 모듈을 현명하게 선택 한다고 항상 말하고 있지만, 이제는 이것이 실제 생활에서 어떻게 작동 하는지를 볼 수 있습니다.

원하는 것을 정의하십시오.

첫 번째 단계는 원하는 것을 정의하는 것입니다. 내 경우에는, 나는 원했다.

Drupal.org에서 검색

이러한 목표를 염두에두고 다음 단계는 Drupal.org에서 간단한 검색이었습니다. 시간을 모듈 공의 구덩이에 뛰어들.

& # 34; 비교 & # 34; PDF 모듈 용 페이지

내 첫 번째 중지 (또는 했어야했다),이 페이지 : PDF 뷰어 모듈의 비교. Drupal.org는 동일한 공간에서 다양한 모듈의 장점과 단점을 설명하는 문서 페이지의 훌륭한 전통을 가지고 있습니다. 비교 페이지의 목록이 중앙에 있지만 사이트 전체에 뿌려져 있습니다.

PDF 비교 페이지에는 4 개의 PDF 뷰어 모듈이 포함되어 있습니다. 나는 그들을 여기에서 다룰 것이고, 내가 찾은 것으로서 발견 한 몇 사람을 포함시킬 것이다. 제가 건너 뛰기로 결정한 후보자들부터 시작하겠습니다.

이제이 모듈이이 프로젝트에서 왜 작동했는지 (또는 대부분 그렇지 않은) 구체적인 내용을 살펴 보겠습니다.

파일 뷰어

파일 뷰어는 Internet Archive BookReader를 사용하는데, 나는 인터넷 아카이브 중독자이기 때문에 저를 흥미롭게했습니다. 내가 갈 때마다, 나는 두려움의 간질을 느끼고 에테르에서 뽑아 낼 수있는 책의 산을 압도한다.

즉, 데모 사이트는 나에게보기 흉한 듯 보였습니다. 나는 그걸로 살아갈지도 모르지만 pdf.js가 훨씬 세련된 것처럼 보일 때 내 고객이 의심했다.

또한 프로젝트 페이지를 두 번째로 보았을 때 맨 위에 큰 대담한 발표를 보았습니다. 이 모듈은 공식적으로 PDF 모듈로 옮겨졌습니다 . 공정하다. 400 개 이하의 설치로 더 인기있는 PDF 모듈 (잠시 후에 다룰 예정)과 병합하는 것이 좋은 방법입니다. 병합 / 이동 / 취소 된 모듈을 다운로드하지 마십시오.

Google 뷰어 파일 포맷터

Google Viewer File Formatter는 Google 문서 도구를 사용하여 웹 페이지에 파일 표시를 삽입하는 방법입니다. Google 문서 도구의 다양성을 좋아했지만 제 목표 중 하나는 제 3 자 서비스와 독립적으로 유지하는 것이 었습니다.

또한이 모듈의 설치 횟수는 100 개 미만입니다.

Ajax 문서 뷰어

"AJAX"는 일반적인 자바 용어이지만 Ajax 문서 뷰어는 특정 타사 서비스에 의존하는 것으로 나타났습니다. 약 100 개의 설치 만. 계속 전진 ...

Scald PDF

Scald PDF에는 40 개의 설치 만 있었지만 분명히 Scald라고 불리는 더 큰 프로젝트의 일부 였기 때문에 살펴보아야했습니다. Scald 프로젝트 페이지에서 " Scald는 Drupal에서 Media Atoms 를 다루는 혁신적인 방법입니다."

그 문장은 "혁신적인 테이크"와 "미디어"라는 단어가 "아톰"과 짝을 이루는 두 개의 거대한 붉은 깃발을 일으켰습니다. "Atom"은 분명히 "물건"에 대한 용도 변경된 단어였습니다. 드루팔 (Drupal은 노드 , 엔티티 , 피쳐) 라는 빈 상자 유형의 단어에 더 많은 관심을 가지고 있습니다. 더 일반적인 단어 일수록 변경 사항이 광범위 할 수 있습니다.

내가 아래로 스크롤 할 때, 나의 의혹이 확인되었다. Scald가 어떻게 내 사이트에서 Media를 어떻게 처리했는지에 대한 흥미로운 주장을 읽습니다.

이제 진실은 드루팔 (Drupal)의 미디어 처리가 재발 명을 사용할 수 있다는 것입니다. Scald는이 분야에서 야심 찬 프로젝트는 아닙니다. 그러나 지금까지 설치가 1000 개 미만 이었지만 1 층에 들기를 원하지 않았습니다.

물론, 내년에이 시간까지, Scald가 다음 Views 일지도 모릅니다. 그렇게 될 것입니다. 그러나 깨지기 쉬운 사이트의 작은 흔적을 남기고 포기할 수도 있습니다.

지금 당장은 덜 야심 차고 위험한 해결책을 고수하고 싶었습니다. PDF 만 표시하십시오. 그게 내가 묻는 전부 야.

그림자 상자

Shadowbox는 저를 놀라게했습니다. PDF에서 이미지, 비디오까지 모든 종류의 미디어를 표시하는 단일 솔루션이라고 주장했습니다. Scald만큼이나 휩쓸 리지 않았습니다. 왜냐하면 "Media Atoms"와 같은 완전히 새로운 개념을 도입하지 않고 미디어를 표시하는 데에만 집중할 것이기 때문입니다. 하지만 이미 언급 한 것처럼 Colorbox를 좋아합니다. 나는 그 결정을 다시 생각할 필요가 없다.

그러나, 16,000 가지가 넘는 설치로 Shadowbox가 같은 공간에서 더 강력한 대안이 될 수 있다는 사실을 알았습니다. 나는 한 번 봐야했다.

Shadowbox Drupal 모듈은 기본적으로 Javascript 라이브러리 Shadowbox.js에 대한 다리이므로 라이브러리 웹 사이트를 체크 아웃했습니다. 거기에서 나는 계속 나아갈 두 가지 이유를 발견했다 :

2 명의 경쟁자 : & # 34; PDF & # 34; & # 34; PDF 리더 & # 34;

나머지를 없애고 필자는 두 가지 명백한 경쟁자 인 PDF 및 PDF Reader

이 두 프로젝트는 주요 유사점을 가지고있었습니다 :

차이점은 무엇입니까?

PDF 리더 에는 Google 문서 도구 통합 옵션도있었습니다. 이 특별한 경우에는 내 고객이 좋아할 것이라고 생각했기 때문에 옵션을 선호했습니다.

한편 PDF 는 공동 관리자를 찾는 것으로 표시되었습니다. 이는 개발자가 곧 프로젝트를 포기할 것이라는 신호 일 수 있지만, 다른 한편으로는 가장 최근의 커밋은 일주일 전 이었으므로 적어도 개발자는 여전히 활동적이었습니다.

한편, PDF Reader 는 적극적으로 유지 관리 된 것으로 표시되었지만 가장 최근 커밋은 1 년 전이었습니다.

분명한 승자가 없으면 두 가지를 모두 테스트하기로 결정했습니다.

경쟁자 테스트

나는 살아있는 사이트의 복사본에 두 모듈을 모두 테스트했다. (모듈이 얼마나 탄탄하고 무해한 지간에 라이브 사이트에서 처음 시도하지 마십시오. 전체 사이트가 손상 될 수 있습니다.)

나는 PDF 보다 더 많은 옵션 (예 : Google 문서 도구)을 갖고있는 것처럼 보였으므로 PDF Reader 에 편향되었습니다. 그래서 PDF를 먼저 사용하기로 결정했습니다.

PDF 실패 : 편집 필요?

그러나 PDF를 설치하고 README.txt를 읽을 때 프로젝트 페이지에서 본 적이 있지만 무시 된 문제점을 발견했습니다. 어떤 이유로이 모듈은 pdf.js를 수동으로 컴파일해야 할 필요가있는 것처럼 보입니다. 프로젝트 페이지에서 이것이 반드시 필요한 것은 아니지만 README.txt가 제안했습니다.

PDF Reader 는이 단계를 거치지 않고도 똑같은 라이브러리를 사용할 것이기 때문에 먼저 시도해보기로 결정했습니다. 작동하지 않으면 PDF 로 돌아가서 pdf.js를 수동으로 컴파일 할 수 있습니다.

PDF 리더 : 성공! 일종의.

그래서, 마침내 필자는 PDF Reader를 사용해 보았습니다. 이 모듈은 File 필드를 표시하기위한 새로운 위젯을 제공합니다. 원하는 내용 유형에 파일 필드를 추가하고 위젯 유형을 PDF Reader로 설정합니다. 그런 다음이 유형의 노드를 만들고 PDF를 업로드합니다. PDF가 페이지의 "상자"에 포함 된 것처럼 보입니다.

콘텐츠 형식을 다시 편집하고 필드의 표시 설정을 변경하여 다른 표시 옵션을 시도해 볼 수 있습니다.

각 디스플레이 옵션마다 장단점이 있음을 발견했습니다.

결국, 필자의 해결책은 Embed display 옵션을 사용하여 PDF Reader 를 사용하는 것이 었습니다. 이 옵션을 사용하면 Drupal 노드에 PDF를 첨부하고 Drupal 웹 페이지에이를 안정적으로 표시 할 수 있습니다.

불행히도, 때로는 "신뢰할 수있는"충분하지 않습니다. 이 모든 검색을 마친 후에는 결국 제 3 자 서비스를 고려해야했습니다.