2009/11/2 月曜日

NetCommons2 モジュール作成、メイン表示カスタマイズ方法

カテゴリー: — kurowanko @ 17:18:58

○モジュールを新規作成するには
/NetCommons2/webapp/modules/にモジュールのフォルダを作成します。
既存のモジュールをコピーし、全てのファイルに含まれるモジュール名(onlineモジュールなら[online])を置換えることでモジュールを作成することもできます。
モジュールを作成したら、コントロールパネルのモジュール管理からインストールします。
モジュール用のテーブルが作成されればインストール完了です。
リストに表示される名前を変更する場合は、/language/japanese/modinfo.ini(以下、モジュール配下のディレクトリを表します)を書き換えます。
   module_name = "表示するモジュール名"
 
 
○作成されるテーブルの内容を編集するには
テーブルはインストールの際、/sql/mysql/table.sqlが読み込まれて作成されます。
このファイルを編集することで作成されるテーブルのカラムなどを変えることができます。
複数のテーブルを作成したい場合には、/sql/mysql/table.sqlに作成するテーブルを追加すれば複数のテーブルが作成できます。
 

○モジュールのメイン表示を変更するには
メイン表示の変更は、/templates/default/main.htmlやmain_init.htmlを編集します。
templates内のファイルを書き換えた場合には、モジュール管理からアップデートしなければ変更が適応されません。

templatesは基本的にhtmlで記述しますが、他のファイルから受け取った値などはSmartyで記述します。
$lang.で始まる変数は/language/japanese/main.ini内の値が呼び出され、
$action.で始まる変数は/view/main/init/Init.class.php内の値が呼び出されます。

<{$lang.online_count|smarty:nodefaults|sprintf:$action.userCount}>

/view/main/init/Init.class.phpでは、/components/View.class.php内のfunctionを呼び出してデータを取得し、templatesで使える形に格納しています。

   $user = $this->mydataView->getUserMember();
   $this->memberCount = $user["member"];

/components/View.class.phpでは、sql文を記述し、NetCommons2本体に送ってデータを取得しています。

   $date = date("YmdHis", time() - $mydataTime);
   $params = array(
   $date,
   $baseSessionID,
   _OFF
   );
   $sql = "SELECT base_sess_id, sess_data ".
   "FROM {session} ".
   "WHERE sess_updated > ? ".
   "AND base_sess_id != ? ".
   "AND old_flag = ?";
   $result = $this->_db->execute($sql, $params);

 

○データベースからデータを取得するには

上記に書いた/components/View.class.phpでsql文を用意し、本体に送ります。
この際、$paramsが未定義の状態ではエラーになってしまうので、$paramsが必要ないときは中身を空で用意します。
テーブル[netcommons2_users]からhandleの値を取得するには、

   $params = array();
   $sql = "SELECT handle FROM netcommons2_users";
   $result = $this->_db->execute($sql, $params);

と記述します。
データベースへの接続設定はNetCommons2本体で行われるので、最低上記の3行だけでデータを取得することができます。

コメントはまだありません »

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ

You must be logged in to post a comment.

HTML convert time: 0.347 sec. Powered by WordPress ME