LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

Smarty Plugin は、XOOPS のパッケージでは /html/class/smarty/plugins にはいっている、「function.」や「modifier.」といったファイル名で保存された php です。
ここに自作のプラグインを作ることで、theme、template、あとは pico などからプラグインを読み出していろいろな仕事をさせることができるようになります。

簡単な例を二つ anchor.png

たとえば以下のようなファイルを作ってみます。
ex) modifier.striptags.php

<?php
function smarty_modifier_striptags($param){
	$param = strip_tags($param);
	return $param;
}
?>

で、theme.html の <{$xoops_contents}> を下記のようにしてみます。

<{$xoops_contents|striptags}>

すると、xoops_contents の表示結果から HTML のタグが取り除かれます。
上記例はあんまり実用性のない例ですが、Smarty 変数の値を引っ張ってきて自由にいじれるので、アイデア次第でいろいろな加工が考えられます。

また、Smarty Plugin は、引数もいろいろといじれます。
こんどはこんな例。

ex) function.picolink.php

<?php
function smarty_function_picolink($params, &$smarty){
	$picoUrl = $smarty->_tpl_vars['xoops_url'].'/modules/'.$smarty->_tpl_vars[xoops_dirname].'/index.php?content_id=';
	$id  = intval(htmlspecialchars($params['id'],ENT_QUOTES));
	$str = htmlspecialchars($params['str'],ENT_QUOTES);

	$retval = '<a href="'.$picoUrl.$id.'">'.$str.'</a>';

	return $retval;
}
?>

で、pico でページを作り、下記のように書いて、本文フィルタに「Smarty(XoopsTpl)」をかけます。

<{picolink id='2' str='test'}>

すると、「test」を文字列とした pico のid番号2のコンテンツへのリンクができます。
#これもそんなに実用的ではないですが……。

つくるときに、スクリプト中に print_r($smarty); をいれると、いろいろな値を使えることがわかります。


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 5128, today: 1, yesterday: 4
初版日時: 2007-03-25 (日) 21:31:51
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1196d) by jidaikobo
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities