OpenPNEの日記に新しい項目を追加する
OpenPNEカスタマイズ Tips
OpenPNEも3系が5月にリリースされました。2系は技術的に枯れてきた感がありますが、まだまだだと思います。
OpenPNE2.12系からテーブルレイアウトからCSSになりました。最初は、テーブルレイアウトが良かったなと思っていましたが、慣れてくるとCSSのほうが見やすいなと思います。
さて、
社内や会員制コミュニティをOpenPNEでのSNS運用していて、「日記」等のフォームに新しい項目を追加したいことがあります。
例えば、
日記ではなく「日報」として提出させたい。ダイエット向けのコミュニティだったら体重を記録させるフォームを作りたいなどいろいろな『組織』にあった追加フォームが必要なことがあるでしょう。

しかし、OpenPNEの場合、単純にテンプレートに追加するだけでは処理されません。
ポイントは、
①tplファイル
②phpファイル
③iniファイルを追加編集することです。
OpenPNEのライブラリの関数に手を加える必要があるということと(OpenPNE/webapp/lib/db)データベースのテーブルでカラム(行)が増える場合はPHPMyAdminやmysqlなどで項目を追加する必要があります。
ちょっとした手を加える場合でも関連する6個や9個くらいのファイルを触る必要があるので、そのあたりたいへんですが、(^ ^;
それでは、具体的に見ていきましょう。
———————————————————————-
まずは、表示のためのテンプレートファイル
フォームの希望する場所(テーブル処理されている部分)に
<tr>
<th>項目</th>
<td>内容</td>
</tr>
と追加します。
■変更ファイル
/OpenPNE/webapp/modules/pc/templates/
h_diary_add.tpl
h_diary_add_confirm.tpl
※項目内容をデータベースから取得する場合や、フォーム内に登録者毎のデータが必要な場合は、以下のPHPファイル内で取得します。
———————————————————————-
テンプレート用にデータ取得等の処理が必要であれば、以下のPHPファイル内で処理し
$this->set(’hoge’, $hoge);
といった形でtplに渡します。
■変更ファイル
/OpenPNE/webapp/modules/pc/page/
h_diary_add.php
h_diary_add_confirm.php
———————————————————————-
項目内での変更や選択肢の追加等の場合は上記page内とtemplates内のファイルのみで良いが、新たに項目を追加しリクエスト変数が増えた場合は、validate内で定義してやる必要があります。
■変更ファイル
validate/do
h_diary_add_insert_c_diary.ini
validate/page
h_diary_add.ini
h_diary_add_confirm.ini
上記ファイル内で、欲しいデータ形式に合わせ、新たなリクエスト変数を定義します。
type
int→整数
string→文字列
———————————————————————-
これでデータの項目表示、フォームデータの受け渡しが可能となります。
あとは、渡されたデータをデータベースに登録するロジックを追加すると良いでしょう。
OpenPNEの構造や仕組みついては、OpenPNEカスタマイズによるSNSサイトの構築と運営―オープンソース徹底活用(拙書)に書いてあります.2007年11月に出版されましたが、OpenPNEの2系だと参考になる部分が多いかと思います。
トラックバック URL :
コメント (0)