Block

ウミメンバーが選ぶ個人的に好きなDrupalモジュール BEST3!

こんにちは、ウミの森山です。

実は先日、ウミで働いているメンバーたちに「個人的に好きなDrupalモジュール BEST3」についてアンケートをとってみました。日々Drupalに親しみDrupalと格闘している(?)ドゥルーパリストたちが選ぶモジュールは一体どんなものなのか興味が湧きませんか?(私だけだったらすみません..)本日はそのアンケート結果をご紹介してみたいと思います。

今回は、各モジュールの簡単なご説明の他、選出理由を書いたコメントも一緒にご紹介しています。「Drupal開発会社のおすすめモジュールを聞いてみたい」という方や「どんなモジュールがあるのかサラッと情報を仕入れておきたい」という方に、メンバーの生の声とともにお楽しみいただければ幸いです。

※今回の記事はあくまでウミメンバーの個人的な感想を紹介している記事となります。一般的に人気のあるモジュールについては、大野が以前にご紹介した「Drupal 8 定番モジュールランキング トップ20【2017年9月更新】」をご参照いただければと思います。

それでは早速いってみましょう!

第1位: Viewsモジュール

堂々の第1位は「Views」です! この結果は薄々予想されていた方も多いのではないでしょうか?

Viewsモジュールは、Webサイトでよく見かける「新着情報」や「ニュース」の表示にも欠かせないDrupalの定番モジュール。データベースからコンテンツを取り出して、リスト表示やテーブル表示、一覧ページやブロックの作成などなど、ここに書ききれないくらい様々なことを、なんとGUI操作だけで行なうことができてしまうスーパーモジュールです。そういえば私が入社して初めて覚えたモジュールもViewsでした。

Drupal7ではコントリビュートモジュールという位置づけでしたが、Drupal8からはコアモジュールに仲間入りを果たしたことからも、そのお役立ち度が伺えますね。

Viewsモジュールを選んだメンバーの声を以下にご紹介しておきます。

  • 「ありとあらゆるコンテンツを管理画面上から、好きなフォーマットで、ダイナミックに表示できるから。」 
  • 「設定のみで、ページや画面の埋め込むブロックを簡単に作成出来る」
  • 「お知らせやブログなど配信するコンテンツに非常に便利なよろず屋って感じです。」
  • 「こんなことまでできるのかといつも驚かされる万能選手。ビューズなしにDrupalは語れない超絶便利なモジュール。」

第2位: Develモジュール

そして注目の第2位は、「Devel」モジュールでした!私自身はあまり触れる機会の少ないモジュールですが、開発者用に様々なデバッグ用の機能を提供してくれるモジュールで、エンジニアの皆さんにとっては必要不可欠な存在のモジュールだそうです。

Develモジュールを選んだメンバーの声はこちら。

  • 「デバッグ用モジュール!これがないとやっていけないと思います。。」 
  • 「カスタムモジュール開発時にデバッグ機能を提供してくれるので、困った時にデバッグして効率的に開発をすすめられるので」 

どのコメントもエンジニアさんのコメントですが、一つめのコメントは特にその依存度が伺えますね!文末の「。。」にはどのような想いが込められているのでしょうか(笑)

第3位

第3位は得票数が割れる結果となりましたので、以下にモジュールについての簡単な説明と選んだメンバーのコメントとともに順にご紹介しておきます。

Webformモジュール

Webformモジュールは、Drupalでフォームとアンケートを作成するためのモジュールです。ユーザーがフォームに入力した結果を任意のメールアドレス宛に通知することができ、Excelまたは他のスプレッドシート等に結果をエクスポートすることも可能です。また、簡単な統計レビューを提供することもでき、機能を拡張するための広範なAPIも備えています。

  • 「完成度が高く、他のCMSでもこれほどの機能を持ったお問い合わせフォームは見たことがない」

Paragraphsモジュール

Paragraphsモジュールはコンテンツ作成のための新しいソリューションを提供するモジュールです。 パラグラフモジュールを利用することで、予め定義した独立した段落タイプを用意・選択いただけるようになるため、WYSIWYGのボディフィールドに画像や動画を含むすべてのコンテンツを突っ込むということはなくなり、更新担当者さんにとってより分かりやすく使いやすい管理画面を提供することができます。段落タイプは、単純なテキストブロックや画像から、複雑なスライドショーまで、様々な要素を扱うことができます。

  • 「フィールドとエンティティを紐付けることができてデータ構造の可能性が特段に高まったから。上手く利用すると、HTMLがわからなくても見栄えを保った素敵な管理画面を作れるから」

REST UIモジュール

REST UIモジュールは、GUIよりREST APIの設定を行うためのモジュールです。 弊社小林が「RESTful Web Services と REST UIで始めるDrupal8 REST API入門」というブログを書いていますので、こちらもよろしければご参照ください。

  • 「管理画面上からRESTの設定ができて便利です。」

Videoモジュール

ビデオモジュールは、任意の形式で動画をアップロードし再生することができるモジュールです。動画のサムネイルを自動作成したり、Amazon S3のようなクラウドファイルシステムからビデオをコピーして配信することもできます。

  • 「動画埋め込みを勝手にやってくれるので、、」

Metatagモジュール

メタタグモジュールは、SEO(検索エンジン最適化)に有効とされる「メタタグ」を管理画面から簡単に設定できるようにするためのモジュールです。ソーシャルネットワーク上で共有するときのコンテンツの表示方法を制御できるメタタグ(FacebookのOpen Graph Protocol、TwitterのTwitter Cards)もサポートしています。

  • 「簡単に各ページにmetaタグを設定でき、SEOを気にされているお客様に喜んでいただけるので」

Blockモジュール

ブロックとは、ウェブページの特定の領域にレンダリングされるコンテンツのボックスのことで、それらブロックを制御するためのモジュールです。Drupalサイトを構築する時には必要不可欠な存在ですのでコアモジュールとしてDrupal本体に組み込まれています。

  • 「配置したいコンテンツや表示先のページを自由に選択でき、非常に使い勝手が良い。」

Taxonomyモジュール

こちらもコアモジュールです。キーワードをカテゴリやタグ、あるいはメタデータとして使用し、コンテンツ同士を関連付けたり、分類することができます。Drupalでは、これらの用語(Terms)は「ボキャブラリー」内に集められており、Taxonomyモジュールでは、それらのボキャブラリーを作成、管理、適用することができます。

  • 「簡単にカテゴリやタグなどが設定できて、検索やお知らせなどの利用に非常に便利。お客様側で簡単に設定いただけるのも良い。」

Multiupload Filefield WidgetモジュールMultiupload Imagefield Widgetモジュール

Drupal7用のモジュールで、画像(またはファイル)をアップロードするときに複数画像を一度にまとめて選択できる複数選択機能を提供するためのモジュールです。ちなみにDrupal8ではこの機能がコアに取り込まれたので標準で複数のファイルがアップロードできるようになっています。

  • 「何気に便利でよく使ってました。地味だけど、Drupal7サイトを更新する際にこのモジュールが入ってないと、不便でがっかりしてしまう。」

Konami Codeモジュール

多くのコナミのゲームに登場するチートコード「コナミコマンド」をDrupalサイトに設定することのできるモジュールです!ユーザーがWebサイト上で特定のコードを入力すると、画面からDrupaliconが降ってきたり(!)Webサイトが崩れ始めたり(笑)などおもしろいアクションを呼び起こすことができる遊び心溢れるモジュールです。残念ながらDrupal8には対応していないようです。

  • 「おもしろい。実際のプロジェクトで使うことは多分一生ないだろうけど、こっそり使ってみたくなります(笑)。(お客様のサイトにこっそり仕込むようなことは決してございませんのでご安心ください。)」

最後に

以上です。コアモジュールもコントリビュートモジュールも含めた様々な回答が上がりましたがいかがでしたでしょうか?約26,000ものモジュールがあるといわれるDrupalだけに、私たちのような小さなチームでも非常にバラエティーに富んだ回答結果となりました。

今回はウミメンバーから見た人気モジュールをご紹介いたしましたが、今後も開発者目線とはまた違った角度からDrupalについてご紹介していければと思います。

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。

Drupal 7 開発者が Drupal 8 で便利になったなと感じた 7 つのこと

こんにちは、先日 CMS Night というイベントで登壇させていただいたのですが、写真と今の髪型が違いすぎて「写真はイメージです」と補足された大野です!

今ご覧になっている Umi->d のサイトを Drupal 8 にて構築したのですが、今回は Drupal 7 にどっぷり浸かっている私が Drupal 7 と比べて Drupal 8 で良くなったと感じた 7 つのポイントを紹介したいと思います。今回はバックエンドをほぼ作らずに構築することができたので、主にフロントエンドと管理面についての感想となります。

1. CKEditor 4 のインライン編集がすごい

Drupal 8 では CKEditor 4 と Quick Edit モジュールがコアに取り込まれてインライン編集機能がサポートされました。

インライン編集機能とはコンテンツの内容を見たままにページを遷移することなく編集することができる機能です。実際の動きをみていただいた方がどんなものか想像しやすいと思いますので、以下の動画を御覧ください。

実は Drupal 7 でも Quick Edit できるモジュールがあるのですが、私の環境では上手く動かすことができませんでした。

インライン編集の機能は CKEditor demo のページで実際にを触ってみることもできますので試してみてください。

2. 同じ内容のブロックを複数設置可能に

Drupal 7 まではブロックを複製することができなかったので、ブロックを使いまわしたい場合は Multi block モジュールや Panels モジュールを使うなどの方法しかありませんでしたが、 Drupal 8 ではブロックをインスタンス化(?)していくつも複製することがコアでできるようになっています。同じ内容のメニューを使いまわしたいときなどに便利ですね。

3. ブロックがエンティティ化されてフィールドを追加し放題に

かなり昔から議論されてきたことだと思いますが「ブロック」がとうとうエンティティ化されました。エンティティになったことで、ブロックに対してノードと同じように様々なカスタムフィールドを設定することができます。

例えば Drupal 7 でバナー用のブロックを設置した際に、ブロック自体に画像の添付ができないので管理がちょっと面倒でしたよね。そんなことがブロックに画像フィールドを追加するだけで対応することができます。その他にもブロックに対してコメントフォームを追加するなどエンティティならでは機能が使えるようになりますので汎用性が一段と増しています。

ブロックのフィールド管理画面

4. システムがメディア管理するようになった

Drupal がメディアの管理を一元管理してくれるようになりました。 Drupal 7 まではコンテンツ内で使用する画像などのメディアファイルは、別途作成したカスタムフィールで添付するなり、 IMCE などのメディア管理ソフトを組み合わせなければなりませんでしたが、 Drupal 8 ではコンテンツ内で使用する画像をシステムが自動的に管理してくれるようになりました。

少し例を見てみましょう。Drupal に内蔵された CKEditor を使って画像を添付し、コンテンツ内に埋め込んでみます。

CKEditor で画像を入れた時

コンテンツの管理画面にファイルと言うタブが増えているのでそれを見てみましょう。

ファイルの管理画面

利用場所の 1 place のリンクをクリックしてみると使用しているコンテンツが一目瞭然です。

ファイルの使用先が一覧で分かる

これはどういう仕組なのかと言うと付属の Wisywig エディタで画像を挿入した際に、 img タグの data 属性に UUID と呼ばれる一意の ID が自動的に付与され、 コンテンツの保存時に Drupal 8 はどこでその画像を使用しているかを記録するようになっているようです。

Wisywig エディタで挿入した画像の img タグは以下の様なフォーマットになります。

<img alt="Drupal 8 logo" data-entity-type="file" data-entity-uuid="d67126db-0982-4302-9700-b463c1efebb0" src="/sites/default/files/inline-images/drupal%208%20logo%20inline%20CMYK%2072.png" />

また、Drupal はこの UUID で使用しているメディアファイルが無くなると、自動的にファイルの状態を「永続的」から「一時的」に変更します。「一時的」と判断されたファイルはある一定の期間が過ぎると自動的に削除されるので、画像を使いまわす場合は UUID は削除せずに丸ごとコピーする必要があることに注意してください。

5. Views を筆頭に Drupal 7 でメジャーなモジュールがコアに取り込まれた

Drupal 8 の目玉の一つとして、コアに Views モジュールが統合されたことがあげられます。単純に統合されただけではなく、細かい機能追加がされていますのでそれらについてはまたの機会にご紹介したいと思います。

Views については弊社のブログのコンテンツの一覧ページをお手軽に作成できる Views モジュールをご覧ください。

その他にも Drupal 7 ではメジャーなモジュールが Drupal 8 のコアに取り込まれています。

6. HTML 5 でレスポンシブウェブデザインに標準対応

標準で HTML 5 のエレメントが使えるようになり HTML をより構造的に書くことができます。input エレメントのタイプ属性に datenumeric が使え、 Drupal の Form API でもそれらをサポートしていますので、ユーザーはより便利に情報を入力することができるようになりました。

また、管理用テーマの Seven が一新されました。 Drupal 7 時代の Seven ではドロップダウンメニューの矢印の一部が壊れていたりしたのですが、そんな不具合もすっかり治ってます。管理ページもレスポンシブウェブデザインにも対応していますので、タブレットやスマートフォンからも管理がしやすくなっています。

新管理テーマ

7. テンプレートエンジンに Twig を採用

テーマのレンダリングエンジンが Twig になりました。 phptemaplte エンジンに慣れていると一見とっつきにくいのですが、可読性が高いので覚えてしまえば開発効率が上がりそうです。Twig については弊社のDrupal Twig コーディングスタンダード 日本語訳でも紹介しているのでご覧ください。

Drupal 8 で実際に開発してみて思ったこと

Symfony と言う PHP フレームワークが利用されるようになり Drupal 8 からはオブジェクト指向のプログラミング形態になりました。正直に言って今まで Drupal 7 のような関数型プログラミングにしか慣れていない方(私もそうです)にとってはラーニングコストがとても高いと感じました。今まで気軽に使えていた API が周りくどい手続きをしなければ使えなかったり、廃止された関数も多数あります。そして英語での情報量もとても少ない状況で、今回の制作で私が受けた印象は「調べるのがすごい大変」です。また、メジャーなモジュールも殆どがまだ Drupal 8 には対応していない状況なので、実際に業務として使うのはあと2年以上は掛かるんじゃないかなと予測しています。

一方で Symfony が採用されたことで PHP のフレームワークやオブジェクト指向プログラミングになれたエンジニアには参入の敷居が低くなり、開発もしやすくなったんじゃないでしょうか。また、前述しましたが Drupal 8 では Views を筆頭に Drupal 7 で主要なモジュールの殆どが本体のコアに取り込まれたので、ますますインストール直後からすぐに開発ができるようになりました。一般的な機能であれば管理 UI から殆ど実装できてしまうのが Drupal の特徴の一つですが、それがさらに進んでフロントエンドだけ開発すればいいようになる時代もそんなに遠くない気がします。

おそらく来年には Drupal 8 の正式版がリリースされると思いますが今から待ち遠しいです!

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。