ウェブのましじめ

a-blog cms 拡張アプリのForm2Entryの使用例

a-blog cms
田村 章吾(タムショー)

こんにちは田村です。

今回はa-blog cmsの拡張アプリ「Form2Entry」を使用した構築の例をご紹介します。
カスタマイズの要望に対してどのような経緯で「Form2Entry」を選択することになったかを解説します。
この記事では細かな実装の話は省きますが、こういった使い方ができるんだなというのをご紹介できればと思います。

「Form2Entry」とは何か?という方はこちらをご覧ください。

a-blog cms 拡張アプリのForm2Entryをインストールする

1.カスタマイズの要望

では早速、次のような要望があったとします。

  1. 無料ユーザー登録機能がほしい
  2. 記事に対して個別にダウンロードファイルを設定したい
  3. ダウンロードファイルはログイン中のユーザーに表示したい
  4. 管理者はユーザーのダウンロード履歴をダウンロードしたい



これをa-blog cmsで実装する場合どのようにすると良いでしょうか。
次のように考えることが出来そうです。

1-1.無料ユーザー登録機能がほしい

読者ユーザーを発行すると良さそうですね。
標準の機能で大丈夫そうです。


1-2.記事に対して個別にダウンロードファイルを設定したい

エントリーのカスタムフィールドを使用するとよいですね。
これも標準の機能で大丈夫でしょう。


1-3.ダウンロードファイルはログイン中のユーザーに表示したい

読者ユーザーのみ表示したい場合はタッチモジュールを使用すると実現できそうです。
これも標準の機能で大丈夫です。

ここまでは標準機能で実装できそうだなと予想できます。
きになるのは次です。


1-4.管理者はユーザーのダウンロード履歴をダウンロードしたい

パッとみたところ標準機能では難しそうに見えます。
ダウンロードした情報を計測はどのようにするか考えてみましょう。

カスタマイズ案1:Googleアナリティクスを利用する

  • ダウンロードファイルのリンクにGoogleアナリティクスのイベントとして計測する。
  • ログはどうしようかな。。


計測するのであればシンプルに出来そうです。
しかし、「履歴をダウンロードしたい」という箇所がカバーできていませんね。
Googleアナリティクスの使い方が詳しくないため、もしかしたら計測した特定のイベントをダウンロードできる方法があるのかもしれません。計測データを個別にダウンロードできるならこの方法も良さそうです。


カスタマイズ案2:フォームを利用する

  • フォームを利用してチェックボックスなどでダウンロードする資料を選んで送信する。
  • 返信メールまたはthanksページにダウンロードのリンクを記載しておく。
  • ログはGooglesプレットシートになどに書き込みダウンロードできるようにする。


ダウンロードする部分はフォームを利用することが出来そうです。
「履歴をダウンロードしたい」という箇所は、a-blog cms公式のGooglesプレットシートに書き込んでくれる「拡張アプリ」があるのでこの辺りを組み合わせると良さそうです。
拡張アプリは他にもslack、ChatWork、Zohoにも飛ばせることができるのでフォームで送信した後、Zohoで管理というのも可能だと思います。

このようになa-blog cmsで実現するには基本的にはフォームを使うのが良さそうです。

カスタマイズ案3:拡張アプリ「Form2Entry」を利用する

  • フォームを利用してチェックボックスなどでダウンロードする資料を選んで送信する。
  • 返信メールまたはthanksページにダウンロードのリンクを記載しておく。
  • フォームから送信された内容をエントリーに登録する。
  • 管理画面からForm2Entryで作成されたエントリーの一覧を表示・ダウンロードできるようにする。


上記フォームで送信まで同じですが、送信すると「Form2Entry」で操作したユーザーの情報でエントリーを作成するようにします。

例えばシークレットブログを作成してそこに作成していくことで管理者はシークレットブログ確認すると履歴がわかるという仕組みです。
エントリーとして登録するので絞り込みや出力するテンプレート形式など自由に作成することが出来ます。
あとからの要望など変更にも強そうですね。また、a-blog cmsのみで完結する形が作れそうです。




2.カスタマイズの例

こちらの記事同様にbeginner2020をインストールし、Form2Entryもインストールしているとします。
a-blog cms 拡張アプリのForm2Entryをインストールする

なお、コードなど細かい説明は省いています。

2-1.無料ユーザー登録機能がほしい

読者ユーザーの作成です。

読者ユーザーを使えるように設定

ユーザー作成時のメールなど

新規登録画面

この辺りを参考にしてもらうと良さそうです。
読者登録の項目を増やす、認証を行わないようにする
https://developer.a-blogcms.jp/document/customfield/subscribe_customize.html

管理画面パス

コンフィグ管理/ログイン設定
/bid/1/admin/config_login/

コンフィグ管理/メール設定
/bid/1/admin/config_mail/




2-2.記事に対して個別にダウンロードファイルを設定したい

エントリーのカスタムフィールドを使用するとよいでしょう。
ここではファイルのフィールドを利用しました。
カスタムフィールド メーカーで作るのがオススメです。

エントリーのカスタムフィールド管理側

カスタムフィールド表示側


注意点としては「アップロード許可ファイル拡張子を確認 しておきましょう。



カスタムフィールド 
https://developer.a-blogcms.jp/document/customfield/
カスタムフィールド メーカー
https://developer.a-blogcms.jp/tools/

管理画面パス

コンフィグ管理/編集設定
/bid/1/admin/config_edit/




2-3.ダウンロードファイルはログイン中のユーザーに表示したい

先ほど資料ダウンロードの箇所をタッチモジュールもしくはIFブロックで分岐します。

ログイン前

ログイン後




タッチモジュール
https://developer.a-blogcms.jp/document/reference/touch.html


2-4.管理者はユーザーのダウンロード履歴をダウンロードしたい

ここで「Form2Entry」を使います。

フォームを送信するとエントリーが作成できるようする

まずはフォームを送信するとエントリーが作成できるようにします。
「拡張アプリのインストール」と「フックをon」「ダウンロードのフォームID」の作成など作業を進めます。

エントリーを作成までの手順はこちらで説明していますのでご覧ください。
a-blog cms 拡張アプリのForm2Entryをインストールする

フォームの場所は先ほどログイン時のみ表示できるようになった「資料ダウンロード」の項目でフォームを作成します。
このときファイル以外でもエントリー登録しておきたいユーザーの情報などあればhiddenで隠し一緒に送信するとよいでしょう。


ダウンロード前

ダウンロード後


ある程度ダウンロードしたら管理画面一覧画面をみてみましょう。
Form2Entryから作成されているのがわかります。


記事が作成されている

履歴をダウンロードできるようにする

次に履歴をダウンロードできるようにします。

管理画面にダウンロード一覧を参考にカスタマイズしました。
エントリーの絞り込みにダウンロードボタンをつけるカスタマイズをします。
すると添付画像のように選択、ダウンロードが可能になりました。


ダウンロードログ一覧

絞り込み検索

ダウンロード機能

ダウンロードされたファイル

これで「ダウンロードのログを絞り込みダウンロード」することができました。

まとめ

Form2Entryの使用例はここまでになります。
紹介した例は以外にもさまざまな使い方ができると思います。

Form2Entryを使うとa-blog cmsでのサイト制作、または制作の提案の幅がぐっと広がりそうですね。

Form2Entryの使い所の参考になれば幸いです。

田村 章吾(タムショー)
ましじめ株式会社代表 北九州市在住。 『現場のプロから学ぶ CSSコーディングバイブル』の著者。 CMSを中心としたWeb制作をしています。

ましじめのスキルが必要ですか?

ウェブののましじめ