2016年1月25日月曜日

作戦変更 -自分で作る-

s2Memberの支払いで無料版だとpaypalに登録していないといけないことが判明したので作戦変更。(テストするのが面倒)

やっぱりwordpress経由じゃなくて一から作ってみますか。
そんなに難しそうじゃないし。

データベースはWordPressが使ってたって理由でMySQLで。
MySQLはちゃんと扱ったことなかったのでお勉強。
http://se-java-school.com/itstudy/database/intro_db_jdbc/intro.php
ふむふむ。画像の扱いは?
http://hijiriworld.com/web/mysql-img-binary/
ふむふむ。元dataの他にmineタイプを記録していた方がbetterと。
blobでなく、binaryとかでもいいのかな。

設計はどうするか。
https://thinkit.co.jp/article/1210/1
ふむふむ。http通信でやれば良いと。
get, postでリクエストして、xmlで返す。
(iPhoneでなくてもこの設計で応用できるな)

xmlで画像データ送りたいんだけど。
http://astel-labs.net/blog/diary/2010/07/100721-1.html
ふむふむ。Base64を使ってできると。

というわけで基本設計はこうします。


システムの中心はデータベースですね。
EC2のボリューム内にMySQL作ってしまうか、AWS RDS使うか迷ったけど、
とりあえずお試しだし、サーバープログラムのデータベース接続先いじればいいし、WordPressインストールしたときに既にMySQLインストールしてあるので、RDSは使わない方向で。

なんかできそうな気がスル!
PHPからMySQLにアクセスする方法と、UI(クライアントプログラム)ですかね。
あとwebpayでの支払い処理。
PHPは慣れてない。お勉強はつづく。

2016/3/28追記
このサイトにこんな記述が!
これまでのWebサービスでは、サーバ側で画面(HTML/DOM)を生成していたのに対し、最近のWebサービスでは、サーバ側はDB操作のみを処理し、クライアント-サーバ間をAjaxでJSON交換し、画面(HTML/DOM)はクライアント側で生成する方式が増えてきました。AngularJSは、クライアント側 JavaScript のコントローラでデータモデルを管理し、画面(ビュー)とリアルタイムにデータを交換するのに適したフレームワークです。
自分の設計は間違っていなかった!(笑) 

s2Memberの使い方

WordPressを会員制にする+BuddyPressとの相性がいいプラグインs2Memberの使い方がよくわからなかった(日本語解説がほぼなかった)ので備忘録。
これだけでも十分なのですが、さらに機能(支払いが主?)が充実したPro版もあるです。

最初にやること
Login Welcome PageとMembership Option Page(ブランクの固定ページ)を作って、s2Member > General Optionsで関連付けする。


s2Memberは基本的にLoginの前にPayPalでの支払い設定を求めるらしいのでその設定。

PayPalでの操作
PayPalアカウントの作成、ビジネスアカウントへのアップグレード、API証明書の請求
この辺は他で手順解説サイトがあると思うので割愛。
ビジネスアカウントへのアップグレードは郵送手続きとかも噛むので結構時間かかります。

支払い管理
上記で登録した内容をs2Member → PayPal options → PayPal Account Detailsに記入。
s2Member → PayPal ButtonsでSubscribers Levelを選んでShortcodeを作成。それをMembership Options Pageに設定した固定ページ(テキスト部分)に貼り付け。

誰でも登録できるようにする
Open Registrationを設定するとPaypal支払い設定をしなくても、無料ユーザー(Subscribers Level #0)として登録可能になる。
s2Member > General Options > Open Registrationで設定可能。

2016年1月14日木曜日

便利そうなBuddyPressのプラグイン

便利そうなBuddyPressの色々プラグイン調べました。
とりあえず作っているサイトで採用するかどうかで分類しました。
参考までに。

採用
s2member
WordPressを会員制にするプラグイン。
アクセス管理とか色々機能が付いているようだ。
Paypal使って支払いまで管理できるようなので、ひとまずはこれだけでいいかも。

Buddypress Activity Plus
BuddyPressアクティビティに画像とか動画とかリンクとか貼れるようにするプラグイン(デフォルトではテキストのみ)。
EWWW Image Optimizer
上とセットで。
投稿される画像のサイズを最適化するプラグイン。
とんでもないサイズの画像対策。

BP Profile Search
プロフィール検索の拡張。サイドバーに付けられる。

Invite anyone
招待機能。ユーザーを増やそう。

Events Manager
イベント管理機能を付与するプラグイン。
出欠の管理とかもできるらしい。
入れたらすんなり入ったようなので採用。


未定
SiteGuard WP Plugin
不正アクセス対策で有名らしい。
なぜかonすると出たあとは入れなくなるので(s2membersとの相性?)、今のところ外しています。

Social Login
ソーシャルサイトのアカウントを認証に使うためのログイン。まだ試してない。

Never Let Me Go
大会ページを作成。まだ試してない。

Buddypress Message Attachment
BuddyPressメッセージ機能拡張。Debugのエラーメッセージが出るので取り合えず切っている。

BuddyPress Auto Group Join
新規ユーザーを自動的に特定のグループに加入させるプラグイン。
先々使うかもしれないので。


不採用
simple membership
s2Memberと同様にWordPressを会員制にするプラグインとして有名らしい。
s2membersの方がBuddyPressとの相性がいいみたいなのでそっちを採用。

Welcome Pack
Theme My Login
Member Only
Absolute Privacy
アクセス制限とログイン関連。
s2Memberで代用できそうなのでパス。

Advanced Custom Fields
プロフィール欄の拡張。BuddyPressのデフォルト機能で十分だったのでパス。

RS Buddypress Activity Refresh
アクティビティ自動更新用プラグイン。デバックエラー出てるし、必須ではないのでパス。



大まかにはこれで事足りそう。
しばらくはこれをいじって使えるようにするのが目標。
後は、

  1. 課金方法
  2. アバター作れない問題
  3. プロフィールのタイプごとに分岐

が解決すれば形にはなるかな。

課金はとりあえずs2MemberのPaypal機能を試して見る。
でも月で自動払込とかにしたいんだよな。
プロフィールタイプで課金方法も分けたい。

アバターが表示されない問題が発生していて、さすがにそれは解決しなければ。
BuddyPress Activity Plusは動くし、写真はアップロードは出来ているみたいなんだけど。
jQueryとか書いてあるサイトあるけど今のところ原因不明。

プロフィールタイプ(フィールド値?)ごとに閲覧制限はどうしようか。
1. そんなプラグインを探す。
または作る(どれくらい手間なんだろう?)。
2. bg_register_member_type()を使う。
3. グループに強制参加させてグループごとに閲覧制限。
とか??
とりあえず全部一緒でいいか。

2016年1月1日金曜日

BuddyPressを動かす

WordPressがうごいたのとりあえずBuddyPressをインストール
これを参考にしました。
http://ryus.co.jp/blog/bpinstall/
http://ryus.co.jp/blog/bpuser/
http://ryus.co.jp/blog/bpgroup/

問題1
そもそもインストールできない。
どうやらapacheにファイルを弄る権限を握らせなければならなかったようだ。
下記のサイトの一つ目の対策で解決した。
chown -R apache:apache (WordPressを設置したディレクトリの名称)
http://www.sandalot.com/wordpress%E6%9B%B4%E6%96%B0%E3%81%A7ftp%E5%85%A5%E5%8A%9B%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/

問題2
日本語化はまだ対応してない(?)ようなのでパス。(後日やるはず)
最悪欧米対象で作ります。
俺、英語できるし(高笑)

問題3
早速 新しいユーザーを登録しようとしたら、登録画面がでない!
これはapacheのhttpd.confをいじったら直った。
最下行に追加(パスは適宜変更)↓
<Directory "C:/pg/Apache/Apache2.2/htdocs/wordpress">
    AllowOverride All
</Directory>
http://www.adminweb.jp/wordpress/permalink/index2.html
http://qiita.com/s2maeda/items/21d9458e44f86597d1ae
あと大事なのはapacheを再起動しないといけない。

.htaccessファイルがおかしいのかもと疑ったが違った。でもまあ備忘録
http://itstudio.co/2014/10/21/3146/
http://www.cherrypieweb.com/weblog/technical/20131017121752.php

問題4
Activity, Member, Groupはまだでない。
パーマリンクになぜかindex.phpが入るようになっていたのでそれを消したら直った。
http://liginc.co.jp/web/wp/customize/148458

あー疲れた。でも楽しい。
これで一通り動くことを確認。

これでなんとかSNSっぽいのが作れた!