4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

concrete5(CMS)をウェブサービスのベースとして活用する

Last updated at Posted at 2016-12-05

この記事はconcrete5 Japan Advent Calendar 2016の5日の記事です。4日の記事はtao-sさんのVer.8 から使えるExpressオブジェクトとは?です。

本日の記事は、ウェブサービスをconcrete5ベースで作ったので、その経過を紹介する、というものです。

作ったウェブサービス

マイ見積を作りました。ホームページの訪問者が、フォームの項目を選ぶと、金額を自動計算して、見積書PDFを発行できるサービスです。問い合わせフォームの高機能版と考えてもらうと分かりやすいと思います。
通常は見積書を受注側が作るケースが多いですが、発注側が自分で項目を選んで見積作成する、ということでマイ見積という名前にしています。

my-mitsu-jp.png

マイ見積の前段階として、計算フォームというウェブサイトも公開しています。

concrete5を使うメリット

concrete5を使うメリットについては、以下のようなものがあります。

  • concrete5の標準機能で、アカウント管理機能など、ウェブサービスに必要な機能をかなりカバーしている
  • 公式サイトで、追加機能がパッケージとして公開されている
  • 自社で追加開発した機能をパッケージとして公開できる

実際、アカウントを登録する、アカウント毎に実行できる機能を制御する、など、ユーザー管理に関する部分の多くが、concrete5の標準機能として用意されています。また追加パッケージも、審査済みのものが公式サイトで公開されているので、安心して利用することができます。

パッケージ利用は主に以下の2つです。

  • concrete5の標準機能では課金機能が用意されていないのですが、Membership Subscriptionsというアドオンがあるので、こちらをベースにしています。日本円を選択できるようにカスタマイズしたり、日本語訳を追加したりして利用しています。
  • マイ見積では、マイページへのリンクを管理バーに表示しているのですが、ここはLink to Edit Profile をベースにカスタマイズしています。
  • ログインを通知するために、Login Alertアドオンを利用しています。

さらに、ウェブサービス作成のために開発した機能を、公式サイトで公開することができます。マイ見積でも追加開発を行いました。

追加開発した機能

今回のウェブサービスで追加開発した機能は、

  • 自動計算javascript、見積PDFを作成する機能
  • 画像アップロードをドラッグドロップで行う機能

です。追加開発した機能を公式サイトで公開することで、多くの人に使ってもらうことができ、フィードバックが得られます。また有料で販売することもできるので、収益を得ることもできます。この辺は、12月12日のアドベントカレンダーで書きます。

ドラッグドロップで画像アップロードする機能は、Simple Image Blockとして公開していますので、誰でも利用することができます。標準のファイルマネージャ経由で画像をアップロードするのがまどろっこしい、という方などに便利です。

見積PDFを作成する機能は、公開に向けて準備中です。

concrete5で作るデメリット

これまではメリットを書きましたが、デメリットもあります。concrete5はオープンソースなので理論上は自由に改変できますし、コアファイルをオーバーライドする仕組みも用意されていますが、concrete5の標準機能を大きく変更するのは大変です。

今回の案件で困ったのは、

  • ブロック間の情報の共有
  • ページの所有者が一人

です。

「ブロック間の情報の共有」は、ブロックからページ属性を参照・変更することで対処しました。こうすると、ブロックAでページ属性Xを変更する、ブロックBでページ属性Xを参照する、という方法で、情報を受け渡しできます。
実装上はかなり楽な方法ですが、しかし、こうすることにより、同一ページ上にブロックAは一個のみ、と制限されるので、この点は注意が必要ですが。

「ページの所有者が一人」は、複数ユーザーで同一ページを編集可能にしたい場合に、ページ所有者が複数設定できるのが一番シンプルに実装できそうだな、と考えたからです。
別の方法として、グループをたくさん用意する、という方法も検討したのですが、最終的には、ウェブサービスとしては、複数アカウントでの編集機能を提供しない、という形にしました。

6日の記事はhissyさんconcrete5 サイトをAMPに対応させるです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?