a-blog cmsとMixpanelを連携してみよう


Mixpanelとは?

Mixpanelは「アクセス」ではなく「行動」を解析するツールです。任意のページやリンクに設定したイベントを取得することと、ユーザー情報を関連付けることで、個別のユーザーがどのような行動をしたか、特定の条件に合致するユーザーにメールを送信する、といった個々のユーザーに合わせた対応が可能になります。
今回の合宿では、a-blog cms のcookieによるルールの適用と合わせて、ユーザーに受け入れられるアプローチをしてみましょう。

ダウンロードモジュール

ダウンロードモジュールとは、任意のファイルをダウンロードできるようにするモジュールです。a-blog cmsのデータベースに格納されているデータを取り出して任意の形式のファイルに出力し、そのファイルをダウンロードできるようにします。

出力するファイルは、CSVやXML形式など任意の形式で作成でき、モジュールやグローバル変数などを記述してカスタマイズが可能です。

このダウンロードモジュールはv1.3.1より利用できます。

任意の形式のファイルをダウンロードできるようにする

1. ダウンロードするファイルのテンプレートを用意する

ダウンロードさせたいファイルのテンプレートを作成します。CSVやXMLなど任意のテキスト形式のテンプレートファイルを作成できます。テンプレートですので、モジュールやグローバル変数を記述できます。

例として以下のようなCSVファイルを作成するとします。これは、ユーザープロフィールモジュールを使用して、ユーザーの情報の一覧をCSV形式のファイルに出力する場合の例です。

<!-- BEGIN_MODULE User_Profile --><!-- BEGIN user:loop -->"{name}[escquot]","{mail}[escquot]"<!-- END user:loop --><!-- END_MODULE User_Profile -->

CSV形式では、ダブルクォーテーションで囲まれた中にダブルクォーテーションが含まれている時のために、ダブルクォーテーションをエスケープする校正オプション[escquot]を指定しています。(CSVの仕様につきましては、他のWebサイトを参照してください。)

上記のソースを記述したら、ファイル名を「user.csv」として保存します。ここでは例として「csv」というディレクトリを作成し、/csv/user.csv とします。

2. ダウンロードするボタンを作成する

次に、ファイルをダウンロードするためのフォームボタンを作成します。テンプレートの任意の場所にフォームボタンを設置できます。手順1で作成したCSVファイルをダウンロードする場合は、以下のようなソースを記述します。

<form action="ユーザーリスト.csv" method="post">
    <input type="hidden" name="bid" value="%{BID}" />
    <input type="hidden" name="tpl" value="csv/user.csv" />
    <input type="hidden" name="charset" value="Shift_JIS" />
    <input type="submit" name="ACMS_POST_Download" value="CSVをダウンロード" />
</form>

1行目(必須):<form action="ダウンロードするファイル名" method="post">

フォームボタンを押してダウンロードするファイルのファイル名を、拡張子含めて記述します。

2行目(必須):<input type="hidden" name="bid" value="%{BID}" />

出力するデータ内容のブログを指定します。

3行目(必須):<input type="hidden" name="tpl" value="テンプレートファイル名" />

ダウンロードするファイル名を、拡張子含めて記述します。

4行目:<input type="hidden" name="charset" value="文字コード名" />

ダウンロードするファイルの文字コードを指定します。ダウンロードするファイルが生成される時に、この部分で指定した文字コードに変換されてファイルが生成されます。文字コードを指定しない場合は、ダウンロードするファイルのテンプレートで出力された文字コードとなります。

5行目(必須):<input type="submit" name="ACMS_POST_Download" value="ボタンのラベル" />

ファイルをダウンロードするボタンです。ACMS_POST_Downloadというモジュールを動作させてダウンロードする記述です。

これで、ボタンを押すとaction属性で指定したファイル名のファイルがダウンロードされるようになります。

ユーザーの情報など個人情報に関わるものや機密性のあるデータを取り扱う場合には、管理ページに記述したり、Touch_SessionWithAdministrationモジュールを使用するなどして、管理者のみがダウンロードできるような配慮も可能です。

Ver. 2.7.20 〜 Ver. 2.7.22 をお使いの皆様へ。

いつもお世話になっております。

上記のバージョンについて、画像、ファイルユニットで重大な問題が見つかりました。 画像がアップロードできなかったり、再保存時にファイルによって削除されてしまう可能性があります。

対応が必要なバージョン

  • Ver. 2.7.20
  • Ver. 2.7.21
  • Ver. 2.7.22

対応方法

出来れば、Ver. 2.7.24 以上へのアップデートをお願いいたします。

この度は、ご迷惑をおかけしてしまい大変申し訳ございませんでした。

ディレクトリ・ファイル・フィールド名などに使えない予約語

setupディレクトリ名について

オンラインアップデート利用時に、アップデート完了時に以下のディレクトリ名に当てはまる場合、自動で「setupディレクトリ」が削除されるので注意ください。

_setup から始まるディレクトリ名(正規表現:「/^_setup.+/」)

システムの予約語

いくつかの単語は、システムの予約語として登録されており、テーマ内のディレクトリ・ファイルの名前として利用できません。ブログコードやカテゴリーコードにも、同様にシステムの予約語は利用できませんが、予約語と同じ単語を設定しようとするとエラーになります。

テーマ内のディレクトリ・ファイルを命名する時に、予約語と重複しないようにしてください。命名が重複している場合は、ページを表示するときに意図しない動作になり、正常のページが表示されなくなる可能性があります。

予約語のデフォルト

予約語は基本的に、config.server.phpで定義される、URLコンテキスト上の特定の表現(セグメント)と同じです。以下にデフォルトの文字列を示しますが、config.server.phpを編集している場合は、編集後の文字列が予約語になります。

また、数値のみのファイル名やコード・フィールド名も日付のURLコンテキストと判定される可能性がある為、予約語となります。

デフォルトの予約語一覧

  • 数値のみ
  • 日時の形式(yyyy/mm/dd, yyyy-mm-dd HH:MM:SS など)
  • title
  • style
  • bid
  • aid
  • uid
  • cid
  • eid
  • cmid
  • tbid
  • keyword
  • tag
  • field
  • order
  • alt
  • tpl
  • page
  • proxy
  • trackback
  • span
  • admin
  • limit
  • domain
  • api
  • media-download
  • login
  • signin
  • signup
  • reset-password
  • reset-password-auth
  • tfa-recovery
  • admin-reset-password
  • admin-reset-password-auth
  • admin-tfa-recovery
  • mypage/update-profile
  • mypage/update-password
  • mypage/update-email
  • mypage/update-tfa
  • mypage/withdrawal