ホーム > photosite

photosite

記事一覧 > Photo Site Links > Re: d3downloadのカスタマイズについて

Re: d3downloadのカスタマイズについて

引用:

なお8さんは書きました:
投稿フォームの説明文の内容にHTMLなどは利用出来ますが、Smarty変数を利用出来るようにする事は可能でしょうか?

Smarty変数を投稿して、表示させたいということですね。
Smarty変数を単純に置換するだけでよければ、「本文フィルター」という機能で代用できます。

例えば、
<?php

define( '_MD_D3DOWNLOADS_FILTERS_SMARTY_TITLE','smarty variable' );
define( '_MD_D3DOWNLOADS_FILTERS_SMARTY_PREFILTER', 1 ) ;

function d3downloads_smarty( $text )
{
	$searches = $replacements = array() ;
	$searches = array(
		'{X_SITEURL}' ,
		'<{$xoops_url}>' ,
	) ;
	$replacements = array(
		XOOPS_URL.'/' , 
		XOOPS_URL ,
	) ;
	return str_replace( $searches , $replacements , $text ) ;
}

?>
これを d3downloads_smarty.php という名前で保存し、xoops_trust_path/modules/d3downloads/filters/enabled にアップロード。

その後、投稿画面を開くと、「本文フィルター」という項目が表示されるようになり、チェックボックスで設定のうえ投稿すると、<{$xoops_url}>が置換されて表示されます。

引用:

または、ブロックのようにPHPを書けるようには出来ないでしょうか?

一応可能です・・・実際に動かしてみると不具合があるかもしれませんが・・・・
<?php

define( '_MD_D3DOWNLOADS_FILTERS_EVAL_TITLE','php eval()' ) ;
define( '_MD_D3DOWNLOADS_FILTERS_EVAL_ADMIN_ONLY', 1 ) ;

function d3downloads_eval( $text ) {
	ob_start() ;
	eval( $text ) ;
	$ret = ob_get_contents() ;
	ob_end_clean() ;
	return $ret ;
}

?>
d3downloads_eval.php という名前で保存し、xoops_trust_path/modules/d3downloads/filters/enabled にアップロード。

クリックしてください←これを解凍して出てきたファイルを xoops_trust_path/modules/d3downloads/class にアップロード。

これで、「本文フィルター」で「php eval()」を選択できるようになります・・・・選択できるのはモジュール管理者のみ その他のユーザー・ゲストに投稿を許可している場合でも、「php eval()」は使えないようになっています。

追記(2010.9.30 0:25)
d3downloads_smarty.php に不具合がありましたので、修正しました。
To Top