【下書き】 concrete5 で会員サイト作成攻略ガイド

concrete5 で会員サイト作成において気をつけないといけないことのまとめ、下書きです。

この内容は concrete5.7.5.6〜8 時点での内容です。

見積もり編 & 企画設計

concrete5 の会員機能の基本を理解

  • ログイン
    • オリジナル
    • Facebook. Twitter, Google & concrete5.org 認証
    • ログイン時にユーザーの希望言語を設定できる (ログインページ自体の多言語機能は未だ)
    • ログイン後に移動先のページを設定できる
      • デフォルト:ホームページ、プロフィールページ、任意のページ
      • /login/forward/[cID] というURL で訪問するとログイン後にそのページにリダイレクトできる
  • ユーザー登録
    • ID, メールアドレスとパスワードは必須。
    • ID なしでユーザー登録はできない。(ログインはメールアドレスを使ってできる)
    • 他の入力項目はユーザー属性としてを自由に追加できる (例: 名前、住所、電話番号、チェックボックス、選択など)
    • ユーザー登録があれば、管理者にメール通知機能
    • ユーザー登録の方式
      • 無効 (一般登録を受け付けない)、メールアドレス認証確認、手動承認、すぐ登録
      • 手動承認の場合、ユーザー登録時と承認時に登録ユーザーにメール通知が可能
    • CAPTHA
    • Gravatar (ちょっと難あり)
  • ユーザー属性
    • チェックボックス、テキスト、テキストエリア (装飾なし)、テキストエリア (WYSIWYG あり)、日付・日付時刻・時刻・日付時刻のテキスト入力、数字、選択、選択 (複数選択)、選択 (タグ)、住所、トピック、ソーシャルリンク (リンク)
    • 住所は日本語の対応がまだまだなのでまだ使えない。住所はテキストフィールドなどで
    • 新規登録時に入力・必須、公開プロフィール編集画面で入力・必須の出し分け設定ができる
    • 公開プロフィール一覧で検索の対象にすることができる
  • 公開プロフィール
    • ユーザー一覧を表示、ユーザー属性で検索対象にした属性を元に検索
  • プロフィール表示
    • ユーザーの情報と、指定した属性を表示できる
    • その表示しているユーザーへプライベートメッセージの送信
  • マイアカウント
    • ユーザーがプロフィールを自ら編集できる。ユーザー属性は、指定した項目のみが編集可能に。
    • 登録メールアドレス、パスワードの編集
    • アバター画像の編集
    • プライベートメッセージの送受信

設計で気をつけることと、Yes の場合の最低想定工数

  • ログイン形式を何にするか
    • concrete5 標準のもののみ
    • Facebook, Twitter, Google も可 (ただし、concrete5 用のログインID の設定はどちらにせよしなければいけない) +1人日/一つの認証タイプ
  • どのようなユーザー属性を作成するか +1人日
    • 管理画面を含めてどのようなユーザー属性を作成するか   +0.25人日
    • 新規登録画面ではどのような項目を表示・必須にするか   +0.25人日
    • ユーザーがマイアカウントページで編集できるようにするか、その場合属性はなににするか?   +0.25人日
    • 検索をできるようにするか。その場合自由入力以外で検索できるようにするか (Yes の場合、要、追加カスタマイズ)   +0.25人日
  • 新規登録の認証タイプは何にするか
    • なにもなし?メール認証、手動認証?
    • 手動認証の際のメール通知はするのか?  +0.25人日
    • その他の場合のメール通知もしたいか (Yes の場合、要、追加カスタマイズ)  +0.25人日
  • 新規登録画面
    • 新規登録画面の見栄えをカスタマイズしたいか (Yes の場合、要、追加カスタマイズ) +1人日
  • ログイン
    • ログイン後の表示ページはどこにしたいか +0.5人日
    • ログイン時 forward 機能を使ったオプションを使いたいか +0.25人日
    • ログイン、ログアウト、マイアカウントリンクをどこに表示させるか (Yes の場合、要アドオン or 追加カスタマイズ)
      • 例: concrete5-japan.org の例
        • ログイン前: [新規登録 | ログイン]
        • ログイン時: [username さんこんにちは! アカウント | ログアウト]
  • 公開プロフィール
    • プロフィールを公開させたいか。その場合の見栄えはどうしたいか? +0.5人日
    • デザインを工夫して concrete5 の標準のコードで成り立つようにするか、書き換えてカスタマイズを覚悟? +0.5人日
  • マイアカウント
    • マイアカウント機能 (ユーザーが自分で自分の情報を編集できる) を有効にしたいか +1人日
    • ユーザーが自分で編集できるようにする属性は何か +0.5人日
    • アバター画像を登録できるようにするか +0.5人日
    • プライベートメッセージ機能を有効化したいか。その場合、その画面の見栄えのカスタマイズが必要か。(Yes の場合、おそらく必要になるので、デザインを工夫して concrete5 の標準のコードで成り立つようにするか、書き換えてカスタマイズを覚悟) +1人日
  • グループ機能
    • 一般会員登録や特殊会員のグループ分けが必要か
    • 追加グループが必要の場合は、プログラムのカスタマイズが必要 (1人日以上)
    • グループ別にメンバー一覧が必要か (+0.25人日/ グループ)

Katz が行ったカスタマイズサンプル

  • 新規登録
    • ユーザーID
      • ユーザーIDを自動生成 (メールアドレス+UNIXTIME) しメールアドレスだけでログイン可能に
    • 多言語対応
      • カスタマイズ内容
        • /ja/register, /en/register/ など 多言語で登録できるように多言語の登録画面を作成
        • 住所の並び替え
        • 言語によって必須・不必要な項目を設定
        • 特定言語の特定属性を自動入力 (例: 日本語ページであれば、国の欄に Japan を自動入力)

concrete5 の仕様で困ったこと TIPS

  • 「バージョン」の「新しいページ」よりページを複製する場合の権限
    • 5.7.5.6 で確認
    • concrete5 で、単純にサイトマップ上からページを複製すると、権限などの情報がそのまま複製されます。つまり、公開状態のページであれば、公開されたままページが複製されます。
    • それを回避するために、「ページ設定」「バージョン」、複製したいバージョンをクリックし「新しいページ」を作成すると、下書き配下に新規ページが作成されます。
    • ただし、この下書きページで作成されたページは、「下書き」ページの権限を継承するようになります。