質問: osclassを使った会員制サイトを作成しているのですが、ユーザ情報に独自の項目を追加できるようにしなければいけないので、カスタムフィールドを追加する方法を探しています。 Custom Attributesというプラグインを使えば、広告の方にはカスタムフィールドを追加することができたのですが、ユーザ情報に対してはカスタムフィールドを使用できませんでした。 プラグインが見つからないので、自分で保存処理を作ろうと思い、テーマフォルダ内の会員登録ページのphpを編集して、登録フォームに入力欄を追加することならできたのですが、それを保存させる方法がわかりません。 osclassの公式ドキュメントを見ても、関数やフックの名前だけなら記載されているのですが、それぞれの引数や使い道がぜんぜん載っておらず、ドキュメントが全く役に立たない状態です。 なんとかして、ユーザ情報にカスタムフィールドを追加する方法はないのでしょうか? Osclass Tutorials: How to add custom fields in user registration form in osclass. さらに探していると上記リンクの記事があり、タイトルからしてもしやと思いましたが、requiredregというプラグインを使うと、ただ単純に会員登録画面で本来入力できない既存の項目を入力できるようにするだけでした。 求めているのは新しい項目の追加であって、この記事は求めているものとは全く別でした。
回答: 環境を作れなかったのでソースを見ただけになりますが、以下の方法ではダメでしょうか? (1)oc_t_userテーブル 項目を追加する (2)oc-includes\osclass\model\User.php $array_fields配列に項目を追加する(カンマに注意) (3)oc-includes\osclass\frm\User.form.class.php Form内にinputタグを追加する 上記の名称はすべて統一してください。 仮に追加する列名を「s_test」としたら、(2)(3)の名称も「s_test」にする。 名称を統一できなかったり、バリデーションが必要な場合は以下のファイルの それっぽいところで記述してください。 oc-includes\osclass\UserActions.php oc-includes\osclass\controller\register.php oc-includes\osclass\helpers\hUsers.php 動作確認まではできていませんので、デバッグの参考になればと思います。 ※本体のソースに手を入れますので将来不具合が出る可能性があります。 「Custom Attributes」と見比べてプラグイン化することをお勧めします。