最近、クライアントからDrupalのサイトに新しい機能を追加するよう依頼されました。ブラウザにPDFファイルを表示します。 drupal.orgのオプションを閲覧したとき、私は新しいモジュールを選んだので、これが私の実際の意思決定プロセスを文書化する絶好の機会であることに気付きました。私はいつもモジュールを賢明に選ぶと言っていますが、今ではこれが実生活でどのように機能しているかを見ることができます。
あなたが望むものを定義する
最初のステップは、あなたが望むものを定義することです。私の場合、私は望んでいた:
- この例のように、WebブラウザでPDFファイルを表示する機能。クライアントは会社のニュースレターのPDFをアップロードし、訪問者はそれらを簡単に読むことができます。
- このサイトはDrupal 7なので、モジュールはそのメジャーバージョンと一致する必要があります。 (Drupal 7はいまだ外に出ているので、モジュール開発者がDrupal 7のバージョンをまだ公開していない場合は、おそらくそうではありません。)
- クライアントはこれを指定していませんでしたが、サードパーティのサービスに頼ることも避けたかったのです。ビデオの場合、私はYouTubeやVimeoにコンテンツを投稿してからDrupalサイトに埋め込むことができますが、PDFの場合、可能性のある面倒が潜在的な面倒さ、破損、費用を上回るとは考えていませんでした。しかし、それが唯一の選択肢だった場合、私はサードパーティサービスにオープンしていました。
- サードパーティのサービスを避けたいと思っていたにもかかわらず、おそらくサードパーティのJavascript としょうかん 。これにより、将来のアップグレードに追加のステップが追加されますが、サードパーティのサービスに頼るのではなく、自分のライブラリのコピーを実行することが一般的には良いと感じています。
- 私はモジュールをできるだけ軽量で具体的なものにしたいと思っていました。私は、メディアファイルを扱う、または整理する根本的な新しい方法に関わりたくはありませんでした。画像を拡大して表示するためのColorboxのようなものが欲しかったですが、画像ファイルをどのように管理するかはまったく関係ありません。私は、このライブラリがpdf.jsであることには感心しましたが、私は他の可能性にもオープンでした。
- いつものように、私はDrupalモジュールを選択するための一般的なガイドラインに従いたいと思っていました。基本的には、できるだけ数千人が(すでに使用している)すでに使用されているモジュールを、依存性を最小限に抑えて選択してください。これは、将来プロジェクトをサポートし続ける予定のアクティブな開発者によって維持されているようです。ライセンス料が必要です。
Drupal.orgで検索
これらの目標を念頭に置いて、次のステップはDrupal.orgでの簡単な検索でした。モジュール良さのボールピットに飛び込む時間。
PDFモジュールの「比較」ページ
私の最初の休止は、このページ:PDFビューアモジュールの比較です。 Drupal.orgは、同じスペース内のさまざまなモジュールの長所と短所を概説する優れたドキュメンテーションページの伝統を持っています。比較ページのリストが中央にありますが、サイト全体に散在しています。
PDF比較ページには、4つのPDFビューアモジュールが含まれていました。私はここでそれらをカバーし、検索して見つけた他のいくつかのものをカバーします。私はスキップすることを決めた候補者から始めます。
さて、これらのモジュールがなぜこのプロジェクトでうまくいったのか(あるいはほとんどなかったのか)の詳細を掘り下げてみましょう。
ファイルビューア
ファイルビューアはInternet Archive BookReaderを使用しています。私はInternet Archiveの中毒者ですから興味をそそられました。私がそこに行くたびに、私は恐怖のくすぐりを感じ、私がエーテルから摘み取ることができる本の山に圧倒される。
それは、デモンストレーションサイトが私には少し醜いと思われると言われています。私はそれと一緒に暮らすかもしれないが、私はクライアントがpdf.js
はるかにスタイリッシュに見える。
また、プロジェクトページの2回目の展覧会では、大胆な発表がトップにありました。このモジュールは正式にPDFモジュールに移行しました。けっこうだ。 400個以下のインストールで、より一般的なPDFモジュール(これから説明します)との統合は良い動きのようです。マージ/移動/放棄されたモジュールは絶対にダウンロードしないでください。
Googleビューアファイルフォーマッタ
Google Viewer File Formatterは、Googleドキュメントを使用してウェブページにファイルの表示を埋め込む方法です。私はGoogle Docsの多機能性が気に入っていましたが、私の目標の1つは、サードパーティのサービスとは独立していることでした。
また、このモジュールのインストール数は100未満でした。
Ajaxドキュメントビューア
「AJAX」は一般的なJavaScript用語ですが、Ajax Document Viewerは特定のサードパーティサービスに依存していることが判明しました。約100回のインストールのみ。上に移動…
Scald PDF
Scald PDFには40個のインストールしかありませんでしたが、明らかにScald(はい)という大きなプロジェクトの一部だったので、一見しなければなりませんでした。 Scaldプロジェクトのページで説明されているように: Scaldは革新的な取り扱い方法ですメディアアトム Drupalで。
その文章は、「革新的な取り組み」と「アトム」とペアになった「メディア」という2つの巨大な赤旗を生み出しました。 "Atom"は明らかに "物"のための再利用された言葉でした。それはそれをすべて赤旗にしました。 Drupalには、空のボックスのような言葉に強い傾向があります。 ノード , エンティティ , 特徴 …より一般的な言葉、より多くの掃引の変更があります。
私がスクロールダウンしたとき、私の疑惑が確認された。 Scaldがどのようにして自分のサイトでMediaをどのように扱ったかについて、私が興奮した主張を読んでいます。
今、真実は、Drupalのメディア処理がいくつかの再発明を使用できるということです。 Scaldはこの分野で唯一野心的なプロジェクトではない。しかし、これまでのインストール数が1000未満であったため、1階に入ることは望ましくありませんでした。
確かに、来年、Scaldが次のViewsになるかもしれない。それは揺れ動くだろう。しかし、それは捨て去られたサイトの(小さな)跡が残っているので、捨て去ることもできます。
今のところ、私ははるかに野心的で危険な解決策に固執したいと思っていました。 PDFを表示してください。それが私が求めていたものです。
シャドーボックス
Shadowboxは私を驚かせました:PDFから画像、ビデオまで、あらゆる種類のメディアを表示する単一のソリューションだと主張しました。これはScaldほど掃除が行き届いていませんでした。 表示する メディアアトムのような全く新しい概念を導入することなく、しかし、私が言及したように、私は既にColorboxが好きです。私はその決定を再考する必要はありませんでした。
しかし、私は(内側の叫び声を)16,000 Shadowboxは、同じ場所でより強力な代替手段となる可能性があります。私 持っていました 見てみましょう。
Shadowbox Drupalモジュールは、基本的にJavascriptライブラリShadowbox.jsの橋渡しであるため、私は図書館のウェブサイトをチェックアウトしました。そこで、私は次の2つの理由を発見しました。
- 図書館では、商業利用にはライセンス料が必要です。手数料は十分に妥当でしたが、私は無料ではないオープンソースソフトウェアを避けようとしています。
- FAQを慎重に検索すると、Drupalモジュールページの説明とは対照的に、PDFは ない 100%はShadowboxライブラリでサポートされています。おっとっと。私はチェックして良かった。
2つの候補者:「PDF」と「PDFリーダー」
残りの部分を取り除き、今私は2つの明らかな候補者になった:PDFとPDFリーダー
この2つのプロジェクトには、
- 両方とも、ほぼ3,000回のインストールがあり、これは代替案(Shadowboxを除く)よりもはるかに優れています。
- どちらも同じ外部Javascriptライブラリを使用していましたが、
pdf.js
.
違いは?
PDFリーダー Google Docsの統合オプションもありました。この特定のケースでは、私のクライアントがそれを好きかもしれないと思ったので、私はその選択肢が好きだった。
また、 PDF としてマークされた共同管理者を求めて
。これは、開発者が間もなくプロジェクトを放棄するという兆候かもしれませんが、一方で、最も最近のコミットは1週間前であったため、少なくとも開発者は依然として活発でした。
一方、 PDFリーダー としてマークされた積極的に維持
しかし、最近のコミットは1年前です。
明確な勝者がなければ、私はそれらを両方ともテストすることにしました。
競合相手のテスト
私は両方のモジュールを私のライブサイトのコピーでテストしました。 (モジュールがどんなに強固で無害であっても、ライブサイトで最初に試してはいけません。サイト全体を破壊する可能性があります)。
私は偏っていた PDFリーダー なぜなら、より多くのオプション(Google Docsなど)を持つように思えたからです PDF 。だから私は PDF 最初に、途中でそれを取り除く。
PDF失敗:コンパイルが必要ですか?
しかし、私がインストールしたとき PDF 読んでREADME.txt
、私はプロジェクトのページで見たことがあるが無視した問題を発見した。なんらかの理由で、このモジュールはコンパイルする必要があるようですpdf.js
手動でプロジェクトのページでは、これは必ずしも必要ではないことが示唆されていましたがREADME.txt
それが示唆された。
以来 PDFリーダー このステップを必要とせずにまったく同じライブラリを使用すると、結局私はそれを最初に試してみることにしました。それがうまくいかなかったら、私はいつもに戻ることができた PDF 手動でコンパイルしようとするpdf.js
.
PDFリーダー:成功!並べ替え
だから、まもなく、私は試しました PDFリーダー 。このモジュールは、新しいウィジェットを提供します。ファイル
フィールド。必要なコンテンツタイプにファイルフィールドを追加し、ウィジェットタイプを次のように設定します。PDFリーダー
。次に、このタイプのノードを作成してPDFをアップロードします。 PDFは、ページの「ボックス」に埋め込まれて表示されます。
コンテンツタイプを再度編集し、フィールドの表示設定を変更することで、さまざまな表示オプションを試すことができます。
私は、各表示オプションに長所と短所があることを発見しました。
- ザGoogleドキュメント 読者は埋め込みとしてうまくいきましたが、フルスクリーンにするためにクリックしたとき、私のレート制限を超過していたことを謝罪したGoogle Docsページに巻き込まれました。おっとっと。おそらく、このモジュールを有料のGoogle Appsアカウントに接続した方が信頼性は高いですが、私のクライアントがディスプレイを気に入らないと確信していたので、気にしませんでした。
- ザpdf.js FirefoxとChromeで素晴らしい選択ができました…しかし、私がInternet Explorerを起動したとき、ボックスは空に見えました。明らかに、これは
pdf.js
それ自体ではなく、 PDFリーダー モジュール。私はこれを期待していたはずだと思います。pdf.js
Mozillaによって開発され、Internet Explorerは…それ自体です。それでも、私はそれを確認することを考えていなかったことに失望したpdf.js
最初の場所ですべてのブラウザで確実に動作しました。 - ザ埋め込み オプションが最も信頼できるものでした。これは、実際にはWebページのボックスにAdobe Readerを表示していました。私のFirefoxは依然として実行したい
pdf.js
しかし、私はこれがブラウザの設定だと思う。いずれにせよ、訪問者がFirefoxまたはAdobe ReaderのようなPDFビューアを持っていれば、PDFが表示されます。
したがって、最終的には、私の解決策は、 PDFリーダー とともに埋め込み 表示オプション。このオプションを使用すると、PDFをDrupalノードに添付してDrupal Webページに確実に表示できます。
残念なことに、時には「信頼できる」だけでは不十分です。この検索のすべての後、私は結局サードパーティサービスを検討しなければならなかった。