wrapsではそもそも存在しなかったので、「ブロック」をどうするかは問題として先送りしてました。その間リリースされたbulletin2を見たら、なるほどブロックテンプレートも忠実に再現してます。onInstallで、ブロックテンプレートのインストールと共に、ブロックテンプレートの関連づけを行っています。
XOOPS標準、という点では、このやり方が優れているでしょう。
でも、そもそもブロックテンプレートとはなんでしょう?
メインテンプレートと分ける必要がどこにあるのでしょう? (雛形ファイルとしてわざわざ階層を分けておきながら、実際にはフラットなDBテンプレートです)
newblocksテーブルに直接書き込んでしまったら、2.2.x系との互換性も失われるのでは?
いろいろ悩んだ末、私のD3モジュールにおけるブロックには、メインテンプレートを使うことにしました。今まで通り、配列 $block にアサイン変数を割り当ててきたのであれば、そのブロックのshow関数の最後に、この4行を追加するだけです。
$tpl =& new XoopsTpl() ;
$tpl->assign( 'block' , $block ) ;
$ret['content'] = $tpl->fetch( 'db:'.$mydirname.'_block_(template_name).html' ) ;
return $ret ;