これは Craft CMS Advent Calendar 2016 21日目の記事です。
今回は、プラグイン開発についてまとめてみます。
ありがちですが「Hello World」の文字列を出力するプラグインを実際に作ってみましょう。
プラグイン開発にあたって
リファレンス
プラグイン開発に関わる公式リファレンスが用意されていますので、一度目を通してみてください。
Dash for macOS をお使いであれば、Main Docsets にある Craft
のインストールもおすすめです。
Introduction | Plugin Development | Craft CMS:
https://craftcms.com/docs/plugins/introduction
Dash for macOS - API Documentation Browser, Snippet Manager - Kapeli:
https://kapeli.com/dash
なお、2017年の第一四半期でβ版のリリースが予定されている Craft 3 では、プラグインの作成方法が若干変わりますので頭に入れておきましょう。
Writing Plugins for Craft 3 | Documentation | Craft CMS:
https://craftcms.com/3/docs/writing-plugins-for-craft-3
ひな形の作成
新しくプラグインを作る場合、開発元である Pixel & Tonic 社が公開している CodingStandards に則ったひな形を作成できる Web サービスを利用すると効率的です。
Build to Order Craft CMS plugins | pluginfactory.io:
https://pluginfactory.io/
Terminal.app からの操作がお好みであれば、 Yeoman ジェネレータの generator-craftplugin がおすすめです。
generator-craftplugin is a Yeoman generator for Craft CMS plugins:
https://github.com/nystudio107/generator-craftplugin
NodeJS、npm、yeoman をあらかじめインストールした状態で、 generator-craftplugin パッケージをグローバルにインストールしましょう。
$ npm -g install generator-craftplugin
プラグインの保存先となる任意のディレクトリに移動してから下記コマンドを実行し、画面に表示される質問に答えていくと Web サービスからダウンロードする場合と同じひな形が生成されます。
$ yo craftplugin
プラグインを作ってみる
では、実際にプラグインを作成してみましょう。
ひな形を作成
pluginfactory.io にアクセスします。
それぞれ下記の内容を入力後、BUILD MY PLUGIN
ボタンをクリックしてひな形をダウンロードします。
ラベル | 値 |
---|---|
API Version | Craft CMS version 2.5.x |
Plugin Name | MyFirstPlugin |
Description | This is my first Craft CMS plug-in. |
Initial Version | 1.0.0 |
Plugin Author | (任意の作者名) |
Author URL | (任意の URL) |
GitHub Name | (GitHub のアカウント名) |
Tweet it out | OFF ※ON の場合、 BUILD MY PLUGIN をクリックした際に pluginfactory アカウントがプラグイン名をツイートします。 |
Code Comments | ON ※ON の場合、生成されるコードに解説コメントが追加されます。 |
Plugin Components | Variables のみ ON |
今回は「Hello World」の文字列を出力するだけのシンプルなプラグインですので、 Plugin Components
はテンプレート変数だけ有効にしておきます。
その他の各コンポーネントについては、Plugin Development の COMPONENTS
にあるリンクも参考にしてください。
テンプレート変数の調整
ダウンロードした myfirstplugin.zip
を展開し、myfirstplugin/variables/MyFirstPluginVariable.php
を開きます。
myfirstplugin/resources
の下層にあるスクリーンショットやロゴなどは、お好みで変更しておきましょう。
<?php
namespace Craft;
class MyFirstPluginVariable
{
public function hello($optional = null)
{
return "Hello World";
}
}
サンプルコードはコメント文を省いているため少し判りづらいかもしれませんが、 function 名を exampleVariable
から hello
に、戻り値を "And away we go to the Twig template..."
から "Hello World"
に変更した状態です。
プラグインのインストール
作成したプラグインをインストールしてみましょう。myfirstplugin
を /Applications/MAMP/htdocs/craft/plugins
にコピーします。
設定 > プラグイン
に移動し、 MyFirstPlugin
の インストール
ボタンをクリックします。
テンプレートの修正
blog/index.twig
を開き、 mainContent
ブロック内に出力用のタグを追加します。
{# このテンプレートの mainContent の内容をセット #}
{% block mainContent %}
(中略)
{{ craft.myFirstPlugin.hello }}
{% endblock %}
ブラウザで http://localhost/blog/index
にアクセスし、Hello World
の文字列が出力されていることを確認しましょう。
まとめ
ここでは、プラグインを作るにあたっての取っ掛かりについてまとめてみました。
Craft CMS のプラグイン開発は、はじめにジェネレータを利用してひな形を生成しておき、追加したい機能の作り込みに集中できる点が便利ですよね。
IntelliJ IDEA などを利用している方は、Craft CMS 本体をプロジェクトに追加しておくことでキーボードショートカットからクラスやメソッドの定義元を参照できるため、さらに効率化を図れると思います。
さて、次回は Craft CMS Advent Calendar 2016 の最終日です。
ひとまずの区切りとして、次期バージョンである Craft 3 に関する話題にしようと思います。