注文の多いXOOPS屋 TOP現在のブログ旧スタッフblog アーカイブ
このページは 2007〜2008 年に公開していた「株式会社RYUS スタッフblog」のアーカイブです。内容は当時のものです。

お手軽高速化 Smarty \"redirect_message\"プラグイン

2007/11/22 20:20   Ryuji   カテゴリ: XOOPS Cube

とあるサイトで、GIJOEさんのお手軽高速化Hackを使ってみて便利だったので、より導入しやすいようにSmartyプラグイン化してみました。
ついでにちょっとオプションを追加してあります。

・function.redirect_message.zip

■使い方

○STEP1プラグイン配置
解凍してできたファイルfunction.redirect_message.phpをSmartyのプラグインディレクトリにアップロードします。

デフォルトでは、XOOPS_ROOT_PATH/class/smarty/plugins/ です。

Smarty プラグインディレクトリの拡張 preload \"ryusSmartyPluginsEx” か GIJOEさんのHdXoopsTplHook.class.phpをお使いの場合は、XOOPS_TRUST_PATH/libs/smartyplugins/ になります。

○STEP2theme.html編集
ブロックで表示させたい場合は、theme.htmlの冒頭に次のようなコードを挿入してください。

<{redirect_message target_block=cc title="メッセージ"}>/PRE

target_blockには表示させたい位置を指定します。
b:左ブロック
r:右ブロック
cc:中央−中央ブロック
cl:中央−左ブロック
cr:中央−右ブロック

titleで、ブロックタイトルを指定します。

ブロックで表示せずに、theme.html上で表示させたい箇所でプラグインを使うという使い方もできます。
その場合は下記のようにtarget_blockもtitleも無指定で使います。

<{if $smarty.session.redirect_message}>
<div id="redirect_message">
<{redirect_message}>
</div>
<{/if}>/PRE

○STEP3legacy_redirect.htmlの編集
管理画面の互換レンダーシステム→テンプレートファイル管理で、legacy_redirect.htmlを次のように編集します。

<{php}>
if( ! headers_sent() ) {
$_SESSION["redirect_message"] = $this->get_template_vars("message");
header("Location: ".html_entity_decode($this->get_template_vars("url"),ENT_QUOTES));
exit;
}
<{/php}>/PRE

※XOOPS2の場合は、GIJOEさんが書かれたお手軽高速化!:-) updatedを参考にinclude/functions.phpをかきかえてください。

これで、リダイレクト画面無しで、次の画面に遷移してから、リダイレクトメッセージが表示されるようになります。

■応用編
script.aculo.usと組み合わせて、

	<{if $smarty.session.redirect_message}>
<div id="redirect_message">
<{redirect_message}>
</div>

<{/if}>

こんな感じにして、徐々にリダイレクトメッセージが消えるようにするのもいいかもです。このサイトは、このようにしてあります。

■2007-11-22 20:50 追記
動作の雰囲気は下記を参照してください。
redirect_sample動作イメージ