『Drupal 8 スタートブック 作りながら学ぶWebサイト構築』を読みました
日本語の本ではこれくらいしか Drupal 8 についての書籍が見当たらず選択の余地はなかったのですが、読んでみたらとても分かりやすかったです。
この本に紹介されている PANTHEON ではなく、ローカルに Acquia Dev Desktop でテスト環境を作りました。 「Acquia Dev Desktopで、Drupal 8のローカル開発環境を構築しよう」
Drupal 8 の最新バージョンでは管理画面からテーマの追加が行えず、SSHの設定がPANTHEONでは(私には)ちょっと難しかったからです。
また、この本で使用されている Paxton というテーマは、jQuery 3.x に対応していないため、Drupal の最新バージョンではJSにエラーが出ます。そのため、スライダーやページャーなどのスクリプト関連の機能がこのままでは検証できません。
プロジェクト内のファイル(themes/paxton ディレクトリだけではなく)の
$(window).load(
を
$(window).on('load',
に全置換するとエラーは出なくなります。
以下、内容につき自分用も兼ねてメモ。
第1章 Drupal8の基礎知識とインストール
- Drupal はカスタマイズされたオリジナルCMSを作るためのフレームワーク(Ruby on Rails やLaravel、DjangoのようなWebアプリケーションフレームワークと同等の開発能力)
- サードパーティ・モジュールのインストールと設定を行い、必要に応じて多少の開発を行うのみでも、フルスクラッチで作るようなオリジナルの仕様を満たすことが可能になる
- 詳細な権限設定や多言語機能、柔軟な拡張機能のため多くのサイトで採用されている
第2章 コンテンツの定義とカテゴリーの作成
- 「コンテンツタイプ」は WordPress のカスタム投稿タイプと似ているがより柔軟である
第3章 コンテンツ一覧ページの作成
- Views はバージョン8からコアに統合された
- Views ページはURLをもった独自のページ
- Views ブロックはひとつの部品、ブロックをリージョンに配置することで任意のページに表示できる
- Views は管理画面の設定から自動で SQL やテンプレートを生成している
- ブロックの配置はテーマ毎に設定する
- 同じ Views でも表示(Display)を別々に持たせることができる。「対象」セクションを適切に選択してから適用するのを忘れずに。
- ひとつのコンテンツをさまざまな形で表示することができ、それぞれの表示形式を「ビューモード」と呼ぶ
- Viewsを使うとコードを書かずにかなりのことができる
- ページャーは 管理画面からAjax にもできる
- フィルター条件の「このフィルターを訪問者へ表示し、変更できるようにする」がすごい
- 検索フォームをブロックとして外部に設置することもできる
第4章
- 「Contactstrage」モジュールを使うと、コアのContactモジュールの機能が拡張され、問い合わせフォームの回答をentityとして保存でき回答データをDrupal上で再利用できるようになる
- 高度な問い合わせフォームを作りたい場合は「YAML Form」モジュールが選択肢の筆頭
- 「ブロック」は「ブロックリージョン」と呼ばれる領域に配置できる
- 「ブロックリージョン」のレイアウトは「テーマ」によって異なる
- 「サイト構築 > ブロックレイアウト」の「ブロックリージョンを仮表示する」でテーマのブロックリージョンを確認できる
第5章
- 「ConfigurationTranslation」と「ContentTranslation」モジュールを有効化すると多言語機能を利用できる
- Drupal 8 では標準で94の言語に対応している
- 「コンテクスチュアルリンク」を使って表示画面に編集リンクを表示させ、直感的に翻訳を行える
- コンテンツを翻訳するときには「「AUTHORINGINFORMATION」で翻訳元(日本語)と同じ日時を入力する必要がある
- 翻訳したコンテンツを、選択されている言語別に表示するには、Viewsの「フィルターの条件」セクションに「コンテンツ:翻訳言語(=ぺージに選択された言語インタフェーステキスト)」という条件を追加し、「言語」セクションの「レンダリング言語」に「ビューの行のコンテンツ言語」を追加する
第6章
- 拡張モジュールは WordPress のプラグインに相当するもの
- 無料でダウンロードでき再配布・カスタマイズ可能な GPL2ライセンス
- 個々の拡張モジュール自体は比較的小さな機能を提供するのが Drupal の拡張モジュールの特徴
- 個々の拡張モジュールが提供する機能を組み合わせて目的の機能を実装していくのがDrupalのスタイル
- コアモジュールとコントリビュートモジュールがある
- コアモジュールの脆弱性は全ての Drupal サイトに共通するリスクなので標的になりやすく、コアモジュールに脆弱性が見つかった場合には早急なアップデートが必要となる
- インストール数が多く、開発が頻繁で新しく、シールドアイコンのあるモジュールを選ぶ
- Drupal は優れた権限設定機能を標準で実装している
- ユーザーにロールをあたえ、そのロールに権限を付与する。一人のユーザーが複数のロールを持つことができる。
- 閲覧権限はコアのみでは設定できないので拡張モジュールを利用するかコードによるカスタマイズを行う。
- コアだけできめ細かい設定ができるが、 Workbench やWorkflow モジュールでより使いやすいワークフローUIを提供することもできる
付録
- 特定の命名規則に従うテンプレートをテーマフォルダに追加することでDrupalのコアテンプレートを上書きできる
- Twigデバッグツールを使用するとページのどの部分にどのテンプレートが使用されているかを知ることができる