読者です 読者をやめる 読者になる 読者になる

Marketing Hacks

MAとかマーケティングにまつわるツール色々

Mauticのテーマカスタマイズに挑戦する

どうも、miharaと言います。

この記事は Mautic Advent Calendar 2016 の20日の記事です。

www.adventar.org

テーマとは

ランディングページやメールなど、Mauticを通じてユーザーに配信する内容の見た目(など)を制御する部分です。

f:id:miharan:20161220225431p:plain

こちらはランディングページの作成画面です。

Mauticにはデフォルトでテーマがいくつか用意されていますが、よく使い回す内容は独自のテーマとしてまとめておくと、テーマというよりテンプレ的に使えて便利かな、とおもいました。そこで、テーマの作成に挑戦しようと思ったのがきっかけです。

今回確認に使った環境

  • bitnami版 Mautic 2.4.0 --テーマを変更した際の動作確認に使いました
  • mautic.net版

テーマフォルダについて

手元のmacにおいて、bitnami版mautic だと、次のような場所にテーマファイルが格納されています(OS違い。バージョン番号などは適宜読み替えてください)

/Applications/mautic-2.4.0-0/apps/mautic/htdocs/themes

ここに含まれている各フォルダがひとつづつテーマになっています。

一番シンプルそうなBlankフォルダをコピーして、フォルダ名だけ変更してみます。

f:id:miharan:20161220230301p:plain

Mauticの設定 -> テーマ と、テーマの設定画面を見に行くと、コピーしたフォルダが増えているのが確認できます。

f:id:miharan:20161220231016p:plain

この内容を変更するために、コピーしたフォルダ内の config.json を変更してみます。

{
  "name": "テーマファイル弄り",
  "author": "mihara",
  "authorUrl": "http://mihara.hatenadiary.jp/",
  "features": [
    "page"
  ]
}

f:id:miharan:20161220231343p:plain

結果としてこんな感じに。なお、日本語テーマ名も問題なく使えましたが、管理画面の言語設定が英語だとうまく表示されませんでした。

さらにこのフォルダの他の中身を見ていきたいと思います。

html というフォルダ内にテーマの実態となる各種PHPファイルが入っています。

また、thumbnail.png という画像を編集することで、テーマのアイキャッチ(新規作成時に使われる)を登録することができます。

cssフォルダはblankにはありませんが、慣習的にテーマ名と同じ名前のCSSファイルを登録するようです。imageフォルダが存在するテーマもあります。

テーマの実体について。

テーマの実体については次のような構成になっています。

base.html.php

このファイルはタグを含むランディングページのための基本的な構造レイアウトを含んでいて、必要に応じて任意のスタイルシートJavaScriptをインポートします。

email.html.php

このファイルにはメールのルック・アンド・フィールをコントロールする構造レイアウトとインラインスタイリングが含まれています。

form.html.php

このファイルはセマンティックなマークアップを含むテーマに関連付けられているフォームのレイアウトと外観をコントロールします。

message.html.php

このファイルは、フォーム送信のメッセージなど、メッセージの表示に使われます。

page.html.php

このファイルは、ランディングページのレイアウト、位置、そしてセマンティックなマークアップをコントロールします。

テーマの構成 | Mautic Documentation より

今回はとりあえずLPだけ作ってみようと思うので、base.html.twig と page.html.twig だけ残して他は削除しちゃいます。

ん、ドキュメントと拡張子が違う?

どうも、本日現在、全てのMauticのテーマファイルはTwigを利用したものになっています。素のphpが動作するのかは不明。Twigというのはテンプレートエンジンです。Smartyみたいなやつ。本稿ではTwigについては触れませんので、詳しく知りたければ「Twig PHP」とかで検索すればなんとなくそれっぽいのが出てきます。

ざっくり雑に説明すると{}でくくった中は特別な扱いになって、他のファイルを読み込んだり、Mauticが定義してる変数が展開されたりします。

<title>{pagetitle}</title>

ってやるとタイトル要素に、Mauticが持ってる変数「pagetitle」の中身が入ります。

Mautic 2.0からの追加機能

data-slotという属性をタグにくっつけることで、どこが編集可能か、Mauticのビルダーに明示することができます。

<div data-slot="text">
ここは編集できる領域
</div>

としておくと、ビルダーでは「ここは編集できる領域」の部分を自由に変更できるほか、画面を通じてpadding(余白)の調整もできるようになります。

これは、ビルダーの右側の「スロットタイプ」からドラッグ&ドロップしたのと同じものを、任意の位置に最初から用意できるということです。同じものなので、画像やボタンも用意できるはずなのですが、いまいちうまくできてないので、何かタグの調整余地があるのかもしれません。

なお、このdata-slotをドロップできる位置の指定として、data-containerというのもあります。その指定には次のようにします。

<div data-slot-container>
</div>

ある程度大きさを確保しておかないと、内容が空だとつぶれてしまって、ドロップできなくなる恐れがあります。 そのためか、blankのテンプレートではmin-heightが指定されていました。

完成したら

テーマファイルをひととおりZIPで固めることで、設定 -> テーマで画面からアップロードすることができます。ASP版のMauticを利用していてもこの方法なら手軽にテーマを作ってみることができます。

参考URL

https://mautic.org/docs/jp/themes/index.html

明日のAdvent Calenderは takahara さんの予定です。