MODx で似非SNS
私は以前よりMODxにてメンバー限定サイトを運営してるのですが、いちいち管理人である私が誰かのメンバー登録をするのも面倒なので、メンバーになりたい人がで自分でアカウント登録するようにしています。けど、全然知らん人が勝手に登録しても困るような閉じたサイトなので、MODxの機能を使って既存メンバーから誘われた人のみが新規アカウントを取得出来るようにしました。
なんちゃってSNSの手順
簡単に手順を説明する為に、MODxをサンプルサイト付でインストールした状態を条件にしています。サンプルサイトにはログインページとアカウントの作成ページが組み込まれているので、実際の利用も日本語に修正する程度で使えますよ♪
-
ツール → MODx設定 → サイトスタート でログインページIDを指定する。 (サンプルなら4)
こうするとサイトにアクセスするといきなりログインページになり、Public設定以外のページは閲覧不能。 -
Request an Account ページ(ID=5)のWebSignupスニペットがバグ持ちなので修正。 (MEGUさんのサイトに修正済 websignup.inc.php があります)
-
招待ユーザ用仮アカウントの作成
ユーザ → ウェブユーザ → ウェブユーザの作成 の「全般」タブにて仮アカウント用のユーザ名とパスワードを設定、ウェブアクセス許可 で Tempusers にチェック。
「ユーザ」タブの"ログインするホームページ"に Request an Account ページのIDを設定。(サンプルなら5)
これで、仮アカウントでログインするとアカウント作成ページ(Request an Account)に入る事になります。 -
Request an Account ページの編集でアクセス許可を仮アカウントの Tempuser Pages のみに設定。
こうする事で、正規ユーザーでのログイン時はアカウント作成ページへのアクセス権がなくなります。
-
メンバー用ページは全てアクセス許可の Public のチェックを外してメンバー用(User Pages)にしておく。
ざっとこんな手順で設定すると、メンバーとして誘いたい誰かにサイトURLと仮アカウント情報を教えておくだけで以下の流れになります。
-
サイトにアクセス → ログインページのみ表示 → 仮アカウントでログイン
-
登録したアカウントで改めてログイン → メンバーページ閲覧可能
以後はメンバーが信頼出来る知り合いにサイトURLと仮アカウントを連絡するようにしておけばOKです。 細かいところやスニペットのパラメータなどは各々の望む動作になるように設定しましょう。特にキチンとユーザー登録出来るよう誘う為のページは当然作らんとあかんやろね。
登録ユーザーの表示
こういう方式だと当然ですが「今現在のメンバーって誰々だっけ?」ってな質問がメンバーさんから上がるようになるのは明白なので、メンバーリストのページを作っておきます。スニペットの ShowMembers が手軽で良いんじゃないでしょうか。
サクッと ShowMembers スニペットをインストールして、メンバーリストページを新規作成します。そして以下のように。
[!ShowMembers? &webGroup=`Site Admins` &tpl=`memberTpl` &seperator=``!]
テンプレートチャンクも作っておきます。 デフォルトでは fullname だけをカンマ区切りで羅列するようになってて痛々しいのでちゃんと見栄えの良いのを作りましょうw ウェブユーザがらみの設定がプレースホルダとして使えますね。以下は見本としてテーブル表記(デフォのCSSなのでボーダー見えませんが)で fullname、email、bod(誕生日)、gender、comment を表示してみました。また、[+ShowMembers.Count+]でユーザー数が取得表示出来ます。
誕生日だけじゃなく日付関係は全てunixtimeが出てきますが、よー見てませんが多分 Showmembers そのままでは表示変えられんと思います。性別は男が1、女が2ですね。 改造しないとなんだかなーってなところが多いですね^^;
あと、この表示を使うならユーザ登録時に fullname も必須にしておかないと、名無しの権兵衛が現れる事になりかねませんね
因みにソート順は fullname のASCで固定です。ハードコーディングやのぉ^^;





