PEAK XOOPS - xoops_block plugin and D3 module's block(1) in englishin japanese

Archive | RSS |
XOOPS
XOOPS : xoops_block plugin and D3 module's block(1)
Poster : GIJOE on 2007-03-28 05:36:49 (10627 reads)

in englishin japanese
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'];
}
?>

USAGE: <{pico dir="pico" id="1"}>


Related articles
Printer friendly page Send this story to a friend

Comments list

GIJOE  Posted on 2007/3/29 3:53
Tomさん、コメントありがとうございます〜

Quote:

Tom_G3X wrotes:
こんなマニアックなプラグインを引っ張り出してきていただいて恐縮です(^^ゞ
当時、自分の中では画期的なプラグインだったんですけどね。完全に自己満足ですが。(笑)
jidaikoboさんも使っていた、といいますし、決してマニアックじゃないんじゃないですかね。
Smartyの仕組みを知れば知るほど、このプラグインは役立つわけで、これを使いこなせればテーマ職人初段を認定できる、って感じかもしれません

プラグインにありがちな「表示する」ではなく「アサインする」っていうアイデアが何より素晴らしいです。

Quote:
ですので、ブロック表示関数内で、自分自身でテンプレート処理する直前までを別に関数化して、
xoops_blockで表示したい時、その関数を引っ張ってくる、
また、通常のブロック処理では、その後、自分自身でテンプレート処理する、
ってのなら、出来るかもですね。
実はそれも考えました。
ただ、ブロック表示関数名は、xoops_version.php に記述してありますし、newblocksテーブルから引っ張ってくることもできますが、その共通関数はソースコードを追わなきゃどうしようもないですよね。

Quote:
更には、file="" で好きなファイルを指定できます。(爆)
もし、TinyD や pico のようなプラグインを多数作る必要があるのでしたら、
それらの関数を1ファイルにした関数集的なファイルを1つ作っておいて、
xoops_block から、ファイル名、関数名を指定して、Smarty変数にアサインすれば、
もしかしたら楽かもしれませんよ。
これも面白いかもしれませんね。
でも、そこまで汎用的に使うものがどれだけあるかというと微妙です。

とりあえず、xoops_blockという究極手段のプラグインが一つデーンとある以上、「それを使いこなせ」、だけで済んじゃいますね。
Tom_G3X  Posted on 2007/3/28 18:46
こんなマニアックなプラグインを引っ張り出してきていただいて恐縮です(^^ゞ
当時、自分の中では画期的なプラグインだったんですけどね。完全に自己満足ですが。(笑)

僕自身、このxoops_block を、D3モジュールで使ったことが無いので、なんですが・・・・。
ようは、このプラグインは、何の関数を引っ張ってきて、何の変数にアサインするか、って事をしてるだけです。
で、更に、func="" の指定は必須です。
それを逆手にとれば、func="" は好きな関数を指定できます。

ですので、ブロック表示関数内で、自分自身でテンプレート処理する直前までを別に関数化して、
xoops_blockで表示したい時、その関数を引っ張ってくる、
また、通常のブロック処理では、その後、自分自身でテンプレート処理する、
ってのなら、出来るかもですね。

xoops_blockの為だけに、そこまでするかぁ〜!って話もありそうですし、
D3モジュールのブロックの仕組みを、僕自身理解してない可能性ありますので、
トンチンカンな事言ってたら、ごめんなさいね。


更には、file="" で好きなファイルを指定できます。(爆)
もし、TinyD や pico のようなプラグインを多数作る必要があるのでしたら、
それらの関数を1ファイルにした関数集的なファイルを1つ作っておいて、
xoops_block から、ファイル名、関数名を指定して、Smarty変数にアサインすれば、
もしかしたら楽かもしれませんよ。
でも記述は面倒かも(爆)、マニアックなプラグインゆえ、お許しを(^^ゞ
(あっ!、これTRUST側にも置ける仕組みがあるといいですね。PUBLIC側は、ちと不安ですし。)
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!