質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Osclass

Osclassは、クラシファイド広告サイト(広告掲載用サイト)の構築に特化したCMSです。オープンソースで、PHP+MySQL構成で開発されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

505閲覧

osclassでユーザ情報にカスタムフィールドを追加したい。

muro

総合スコア99

Osclass

Osclassは、クラシファイド広告サイト(広告掲載用サイト)の構築に特化したCMSです。オープンソースで、PHP+MySQL構成で開発されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2018/09/12 06:21

編集2018/09/21 07:12

osclassを使った会員制サイトを作成しているのですが、ユーザ情報に独自の項目を追加できるようにしなければいけないので、カスタムフィールドを追加する方法を探しています。
Custom Attributesというプラグインを使えば、広告の方にはカスタムフィールドを追加することができたのですが、ユーザ情報に対してはカスタムフィールドを使用できませんでした。

プラグインが見つからないので、自分で保存処理を作ろうと思い、テーマフォルダ内の会員登録ページのphpを編集して、登録フォームに入力欄を追加することならできたのですが、それを保存させる方法がわかりません。
osclassの公式ドキュメントを見ても、関数やフックの名前だけなら記載されているのですが、それぞれの引数や使い道がぜんぜん載っておらず、ドキュメントが全く役に立たない状態です。

なんとかして、ユーザ情報にカスタムフィールドを追加する方法はないのでしょうか?

Osclass Tutorials: How to add custom fields in user registration form in osclass.
さらに探していると上記リンクの記事があり、タイトルからしてもしやと思いましたが、requiredregというプラグインを使うと、ただ単純に会員登録画面で本来入力できない既存の項目を入力できるようにするだけでした。
求めているのは新しい項目の追加であって、この記事は求めているものとは全く別でした。

6EVILSTAR9👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

環境を作れなかったのでソースを見ただけになりますが、以下の方法ではダメでしょうか?

(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」と見比べてプラグイン化することをお勧めします。

投稿2018/09/27 03:35

tabuu

総合スコア2480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muro

2018/09/27 07:11

回答ありがとうございます! おかげさまで無事に、ユーザにカスタムフィールドを実装することができました! 本当に助かりました! 今回は本体を直接編集で対処していますが、(3)以降は下記のように対処しました。 [oc-includes\osclass\frm\User.form.class.php] class UserForm extends Form { (中略) static public function test_text($user = null) { parent::generic_textarea('test', (isset($user['test'])) ? $user['test'] : null); } } [oc-includes\osclass\UserActions.php] function prepareData($is_add) { (中略) $input['test'] = Params::getParam('test'); [oc-includes\osclass\helpers\hUsers.php] function osc_user_test() { return (string) osc_user_field("test"); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問