Welcome !! 2010/09/04 11:33:11

MODx で似非SNS

私は以前よりMODxにてメンバー限定サイトを運営してるのですが、いちいち管理人である私が誰かのメンバー登録をするのも面倒なので、メンバーになりたい人がで自分でアカウント登録するようにしています。けど、全然知らん人が勝手に登録しても困るような閉じたサイトなので、MODxの機能を使って既存メンバーから誘われた人のみが新規アカウントを取得出来るようにしました。

なんちゃってSNSの手順

簡単に手順を説明する為に、MODxをサンプルサイト付でインストールした状態を条件にしています。サンプルサイトにはログインページとアカウントの作成ページが組み込まれているので、実際の利用も日本語に修正する程度で使えますよ♪

  1. ツール → MODx設定 → サイトスタート でログインページIDを指定する。 (サンプルなら4)
    こうするとサイトにアクセスするといきなりログインページになり、Public設定以外のページは閲覧不能。
  2. Request an Account ページ(ID=5)のWebSignupスニペットがバグ持ちなので修正。 (MEGUさんのサイトに修正済 websignup.inc.php があります)
  3. ユーザ→ウェブからのアクセス許可の設定

    「ウェブユーザグループ」タブで Tempusers を作成
    Web User Group

    「ドキュメントグループ」タブで Tempuser PagesUser Pages 作成
    Documents Group

    「ユーザ/ドキュメントグループリンク」タブでそれぞれ対応するように設定
    User/Documents

  4. 招待ユーザ用仮アカウントの作成
    ユーザ → ウェブユーザ → ウェブユーザの作成 の「全般」タブにて仮アカウント用のユーザ名とパスワードを設定、ウェブアクセス許可 で Tempusers にチェック。
    「ユーザ」タブの"ログインするホームページ"に Request an Account ページのIDを設定。(サンプルなら5)
    これで、仮アカウントでログインするとアカウント作成ページ(Request an Account)に入る事になります。
  5. Request an Account ページの編集でアクセス許可を仮アカウントの Tempuser Pages のみに設定。
    こうする事で、正規ユーザーでのログイン時はアカウント作成ページへのアクセス権がなくなります。
    アクセス許可
  6. メンバー用ページは全てアクセス許可の Public のチェックを外してメンバー用(User Pages)にしておく。

ざっとこんな手順で設定すると、メンバーとして誘いたい誰かにサイトURLと仮アカウント情報を教えておくだけで以下の流れになります。

  1. サイトにアクセス → ログインページのみ表示 → 仮アカウントでログイン
  2. サインアップページ表示 → ユーザー登録 → 登録完了メール射出
    WebSignup
  3. 登録完了画面表示 → 仮アカウントはログアウトしてもらう
    Success
  4. 登録したアカウントで改めてログイン → メンバーページ閲覧可能

以後はメンバーが信頼出来る知り合いにサイトURLと仮アカウントを連絡するようにしておけばOKです。 細かいところやスニペットのパラメータなどは各々の望む動作になるように設定しましょう。特にキチンとユーザー登録出来るよう誘う為のページは当然作らんとあかんやろね。

登録ユーザーの表示

こういう方式だと当然ですが「今現在のメンバーって誰々だっけ?」ってな質問がメンバーさんから上がるようになるのは明白なので、メンバーリストのページを作っておきます。スニペットの ShowMembers が手軽で良いんじゃないでしょうか。

サクッと ShowMembers スニペットをインストールして、メンバーリストページを新規作成します。そして以下のように。

[!ShowMembers? &webGroup=`Site Admins` &tpl=`memberTpl` &seperator=``!]

テンプレートチャンクも作っておきます。 デフォルトでは fullname だけをカンマ区切りで羅列するようになってて痛々しいのでちゃんと見栄えの良いのを作りましょうw ウェブユーザがらみの設定がプレースホルダとして使えますね。以下は見本としてテーブル表記(デフォのCSSなのでボーダー見えませんが)で fullname、email、bod(誕生日)、gender、comment を表示してみました。また、[+ShowMembers.Count+]でユーザー数が取得表示出来ます。
ShowMembers 

誕生日だけじゃなく日付関係は全てunixtimeが出てきますが、よー見てませんが多分 Showmembers そのままでは表示変えられんと思います。性別は男が1、女が2ですね。 改造しないとなんだかなーってなところが多いですね^^;

あと、この表示を使うならユーザ登録時に fullname も必須にしておかないと、名無しの権兵衛が現れる事になりかねませんねペロッ
因みにソート順は fullname のASCで固定です。ハードコーディングやのぉ^^;


Last Modified 2008/01/21 09:06:28

Write a comment


読みにくい場合は画像をクリックすると再生成されます。
Bot防止のため上の画像の文字列を入力して下さい:

Blog Posts:

開発が遅れに遅れていた PacketiX VPN 3.0 のRC1が知らぬ間にリリースされていましたってニュースを、更...

ようやく Office Professional Plus 2010 Beta がTechNET [1]などでダウンロード可能になりました。機能...

更新です。あんま代わり映えせんけど。 * Google Chrome 4.0.223.16 [1] [2] [3] Links: ------...

ようやくGatewayのサポートサイト [1]に EC1400-31K が登場し、各種ドライバがダウンロード出来るように...

バージョン4系はちょっぴり久々かな? * Google Chrome 4.0.223.9 [1] [2] [3] Links: ------ [...

Others:

Recent Contents:

デル株式会社