logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
26/09/2019, by mikhail
Plugins

このチュートリアルでは、Drupal 8 でカスタムモジュールを通じてプログラムでブロックを出力する方法を見ていきます。

コード例は github で見られます:
https://github.com/levmyshkin/drupalbook8

まず、PHP クラスを含むファイルを追加することから始めましょう。これが、カスタムモジュールを通じて Drupal でブロックが作成される方法です。ファイルを作成するプロセスは、ここで行ったページ用のクラスと同じです:

9.3. カスタム Drupal モジュールを作成する。プログラムでページを出力する。

ただし、プラグインを含むファイルを作成する必要があります:

modules/custom/drupalbook/src/Plugin/Block/FirstBlock.php

Plugins
25/09/2019, by mikhail
Route

ルートには URL 内のパラメーターを使えます。それらは Views のコンテキストフィルターとまったく同じように機能します。例えば、URL でさまざまなエンティティの ID、テキスト文字列、あるいはカンマやプラスで区切った連続 ID を渡せます。このレッスンでは、ノードの ID を渡し、そのノードのタイトルと本文をコンテンツに表示します。

コード例は github で見られます:
https://github.com/levmyshkin/drupalbook8

drupalbook.routing.yml モジュールファイルにルートを追加しましょう:

Route
25/09/2019, by mikhail
documentation

Drupal API を学ぶにつれ、https://api.drupal.org のメインドキュメントを参照することがよくあります。これは自動生成された Drupal のドキュメントです。各関数、クラス、メソッドについてのすべての情報、それらがどこで定義されているか、簡単な説明がどこで使われているかが含まれています。また、このサイトには API ヘルプもあります。各セクションに目を通すことをお勧めします:

API Drupal

Drupal でサイトを開発すると、そこに書かれている各セクションに出会います。

また、単にサンプルを見て同じことをする必要がある場合もあります。そのための examples モジュールがあります:

documentation
24/09/2019, by mikhail
account

このレッスンでは、私たちのモジュールの機能を拡張し、登録ユーザーまたは特定のロールを持つユーザーだけが利用できるコンテンツを作成します。

コード例は github で見られます:

https://github.com/levmyshkin/drupalbook8

まず、drupalbook.permissions.yml モジュールフォルダーに新しい YML ファイルを追加することから始めましょう:

access premium pages:
  title: 'Access Premium pages'
  description: 'A custom permission for your pages.'
  restrict access: TRUE

次に、アクセス権ページに移動し、必要なロールに Premium コンテンツへのアクセスを設定します。私は登録ユーザーに対してこれを行います:

/admin/people/permissions

account
24/09/2019, by mikhail
Drupal module

私たちのモジュールの作成を、少し整理することから始めましょう。引き続きカスタムモジュールと contrib モジュールを分けましょう。Drupal ではモジュールは /modules フォルダーにあります。今では /sites/all/modules に深く入れる必要はありません。readme にはそれで動作すると書かれていますが、やはり /modules フォルダーを使ってください。/modules フォルダーの中に、custom と contrib の 2 つのフォルダーを作成します。contrib フォルダーには drupal.org からの追加モジュールを保存し、私たちのカスタムモジュールは custom フォルダーに保存します。

英語字幕:

コード例は github で見られます:

Drupal module
23/09/2019, by mikhail
code

この記事は Drupal に慣れてもらうためのもので、カスタムモジュールを追加した後、さらにコード例を書いていきます。

Drupal は、すべてが完璧で何も変える必要のないモノリシックなシステムではありません。顧客からあれこれの機能をサイトに追加するよう頼まれることは非常によくあります。Drupal のコアコードを維持しつつ Drupal に機能を追加できるように、モジュールを使います。モジュールシステムを使うと、Drupal の機能を拡張できます。しかし、既成の contrib モジュールの機能を拡張する必要がある場合はどうでしょうか?もちろん、drupal.org でイシューを作成して必要な機能の改良をリクエストでき、おそらく 1 か月、2 か月…1、2 年後に、特定のモジュールで必要な機能を得られます。しかし、別の方法で行動し、必要なコードを自分で書くこともできます。Drupal の追加モジュールや Drupal 自体の機能を拡張するために、独自のモジュールでフックとプラグインを使います。

code
23/09/2019, by mikhail
Server

この記事では、コードを書くのではなく、コードを書く準備をします。そのために、Drush をインストールします。Drush はコンソールユーティリティで、Drupal で多くの定型的な操作を実行できます:モジュールの更新、構成のアップロード/ダウンロード、バックアップなど。

開発用の Web サーバーとして Open Server を使っている場合は、この手順が適しています:

1. サーバー自体をインストールします。作者のウェブサイト open-server.ru からダウンロードできます。インストールとドキュメントはそこにあります。

2. Open Server をインストールした後、あるいはすでに Open Server がインストールされている場合は、PATH に Windows 変数を登録する必要があります。

C:\Users\yourUserName\AppData\Roaming\Composer\vendor\bin;C:\OpenServer\modules\php\PHP-5.6;C:\OpenServer\modules\database\MySQL-5.5\bin

Server
23/09/2019, by mikhail
Drupal Module Development

これまで分解してきたものはすべて、Drupal の以前のバージョンと同じでした。しかし、開発ではすべてが異なります。見た目上、Drupal は Drupal 7 と同じに見えますが、内部では Drupal は Symfony コンポーネント、独自のコンポーネント、そして多くのライブラリで構成されています。したがって、新しいプラグインシステムを扱い、PHP の OOP を扱う必要があります。

まず、かなり馴染みのある Drupal フックから始め、次に Drupal がページ(ルート)をどう扱うかを理解し、新しいページを追加し、Drupal がリクエストをどう処理するかを検討します。

新しい記事や動画が追加されるにつれ、この導入記事を拡充していきます。

Drupal Module Development
20/09/2019, by mikhail
Catalog

Ubercart のストアでカテゴリーのカタログを持つには、catalog モジュールを有効にする必要があります:

ubercat

Catalog モジュールを組み込む前に、すぐに Product、Store、Country モジュールを組み込むほうが良いです。

インストール後、商品セクションの辞書 Catalog ができます:

/admin/structure/taxonomy

Catalog
19/09/2019, by mikhail
Ubercart

Ubercart は通常のモジュールとしてインストールされます:

ubercart

モジュールの最初のブロックはインストールに必須です:

Cart - カートモジュール。
Country - 特定の国用の設定モジュール。
Order - 注文のモジュール。
Product - 商品設定。
Store - ストアのメイン設定。

次は、有効にしてもしなくてもよいモジュールです:

Ubercart