For describing some text into theme, a smarty plugin "tinyD" has been used well.
TinyD plugin
I have to make a plugin for pico, because I marked TinyD "dead-end".
Refer the code of bottom.
But I remember more versatile plugin "xoops_block" made by Tom_G3X.
xoops_block plugin
This plugin reassigns block's assignment.
This spec must be useful for professionals.
But, blocks of D3 modules returns not a assignment but a content rendered by XoopsTpl already.
I have to modify the spec of blocks of D3 modules for such purpose.
class/smarty/plugins/function.pico.php
<?php
function smarty_function_pico( $params , &$smarty )
{
$dirname = @$params['dir'] . @$params['dirname'] ;
$content_id = @$params['id'] + @$params['content_id'] ;
$template = @$params['template'] ;
if( empty( $dirname ) ) {
echo 'error smarty_function_pico [specify dir]';
return ;
} else if( empty( $content_id ) ) {
echo 'error smarty_function_pico [specify id]';
return ;
}
require_once XOOPS_TRUST_PATH.'/modules/pico/include/common_functions.php' ;
require_once XOOPS_TRUST_PATH.'/modules/pico/blocks/content.php' ;
$block = b_pico_content_show( array( $dirname , $content_id , $template ) ) ;
echo @$block['content'];
}
?>
Tom_G3X wrotes:
こんなマニアックなプラグインを引っ張り出してきていただいて恐縮です(^^ゞ
当時、自分の中では画期的なプラグインだったんですけどね。完全に自己満足ですが。(笑)
ですので、ブロック表示関数内で、自分自身でテンプレート処理する直前までを別に関数化して、
xoops_blockで表示したい時、その関数を引っ張ってくる、
また、通常のブロック処理では、その後、自分自身でテンプレート処理する、
ってのなら、出来るかもですね。
更には、file="" で好きなファイルを指定できます。(爆)
もし、TinyD や pico のようなプラグインを多数作る必要があるのでしたら、
それらの関数を1ファイルにした関数集的なファイルを1つ作っておいて、
xoops_block から、ファイル名、関数名を指定して、Smarty変数にアサインすれば、
もしかしたら楽かもしれませんよ。