X2のサブメニューは、アクセスの都度 xoops_version.php をパースして得られる、$modversion['sub'] を利用する、という仕組みになってます。
そういう仕組みで良いのかどうか、非常に難しいところではありますが、現実にそう実装されてしまっている以上、その枠組みの中でどう最善を期すか考えてみました。
今回、サブメニューにつけたいと思ったのは、やはり階層構造です。というわけで、こんな形のツリー型再帰構造を提唱します。
array(
'name' => (リンク文字列)
'url' => (モジュールディレクトリからの相対URL)
'sub' => (この構造体の配列/インデックスは数値の連番)
) ,
$module->subLink()
$module->getInfo('sub')
$modversion['sub'] = array() ;
if( is_object( @$GLOBALS['xoopsModule'] ) && $GLOBALS['xoopsModule']->getVar('dirname') == dirname ) {
require_once dirname(__FILE__).'/include/common_functions.php' ;
$modversion['sub'] = dirname_get_submenu( $mydirname ) ;
}