404 motivation not found | t_ishidaのブログ

12月/08

12

XOOPSモジュール開発方法の覚書(その1:超基本編)

概要

参考

モジュールの内部構造

モジュールの作り方のチュートリアル

を見つつ、組み込みのモジュールをハックしつつ書いた。って言うか参考サイトの出来が良いので、あんまりまとめる意味も無いかも。

XOOPSのモジュール開発は以下の流れ

  • ディレクトリ構造を作成する
  • xoops_version.phpを書く
  • index.phpを書く
  • テンプレートを書く

注意事項

とりあえず書きながら動かしながらしたい時にはアクティブ解除=>アンインストール=>インストールしながら試すこと、アップデートだけだと、ちゃんと動かなかったりした。

ディレクトリ構造

XOOPS_ROOT/modules

[module_name]        – モジュールのルート

index.php               -  メインメニューから呼び出された時に実行するファイル

xoops_version.php   – バージョン情報を記述したファイル

admin/                    – 管理画面用のファイルを格納しておく

index.php        – 管理画面から呼び出された時に実行するファイル

blocks/                    – ユーザー画面にブロックとして表示したい場合、ここのディレクトリに入れる。

language/               – 言語ファイルのディレクトリ

main.php         – 常に読込まれるスクリプト

modinfo.php    – xoops_version.php用の言語ファイル

sql/                         – DBを使う場合には、ここにcreate table文を書く

japanese/        – 日本語の言語ファイル

templates/              – HTMLのテンプレート

xoops_version.php

$modversion と言うハッシュにモジュール情報を突っ込む。$modversion自体は、参考のサイトを見るかmodules/users/xoops_version.phpを参照する。その中で、特に重要そうだと思ったものを抜粋。

DB周り

$modversion['sqlfile']['mysql'] = 'sql/mysql.sql';
$modversion['tables'][0] = "{prefix}_{dirname}_mailjob";
$modversion['tables'][1] = "{prefix}_{dirname}_mailjob_link";

テンプレート周り

$modversion['templates'][1]['file'] = 'user_userinfo.html';  //テンプレートファイル名
$modversion['templates'][1]['description'] = 'Display a user information in userinfo.php';  //テンプレートの概要

ブロック周り

$modversion['blocks'][1]['file'] = "mydownloads_top.php";                          //ファイル
$modversion['blocks'][1]['name'] = _MI_MYDOWNLOADS_BNAME1;                         //ブロック名
$modversion['blocks'][1]['description'] = "Shows recently added donwload  files";  //概要
$modversion['blocks'][1]['show_func'] = "b_mydownloads_top_show";                  //見せるために呼ぶ関数名
$modversion['blocks'][1]['edit_func'] = "b_mydownloads_top_edit";                  //編集するために呼ぶ概要名
$modversion['blocks'][1]['options'] = "date|10|19";                                //分からん
$modversion['blocks'][1]['template'] = 'mydownloads_block_new.html';               //テンプレート名

こう言う、風にブロックの定義を作る

テーブルの作成

CREATE TABLE {prefix}_{dirname}_TBL1
  • {prefix}    – XOOPSのインストール時に決めたプリフィックス
  • {dirname} – ディレクトリ名

のようにテーブル名を書く。

実際に使う時には気にしなくて良いらしい??

index.phpの書き方

特に注意すべきは、順番

<?php
require('../../mainfile.php');

// 1、テンプレートを設定する
$xoopsOption['template_main'] = 'test_test1.html';

// 2、headerのインクルード
include( XOOPS_ROOT_PATH . '/header.php' );

// 3、smartyに値の設定
$xoopsTpl->assign( 'test',  _TST_MESSAGE );

// 4、フッターの設定
include( XOOPS_ROOT_PATH . '/footer.php' );

テンプレート

smarty使うらしい。smartyタグの書き方が{$test1}ではなく、<{$test1}>になる

<p><{$test}></p>

アクション

userモジュール見ているとそう言うのが有る。

XOOPSの組込でcontrollerが居る。

user/class/ActionFrame.class.php

を参考にする。

アクションフォーム

ユーザーモジュール見ていると、そう言うのが有る。

Share and Enjoy:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Tumblr
  • email
  • Facebook
  • FriendFeed

RSS Feed

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

Leave a comment!

<< Atompubクライアント

XOOPS のインストールとか設定とかの覚書 >>

Find it!

Theme Design by devolux.org

Tag Cloud