お手軽高速化 Smarty “redirect_message"プラグイン
とあるサイトで、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="メッセージ"}>
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}>
○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}>
※XOOPS2の場合は、GIJOEさんが書かれたお手軽高速化!:-) updatedを参考にinclude/functions.phpをかきかえてください。
これで、リダイレクト画面無しで、次の画面に遷移してから、リダイレクトメッセージが表示されるようになります。
■応用編
script.aculo.usと組み合わせて、
<{if $smarty.session.redirect_message}>
<div id="redirect_message">
<{redirect_message}>
</div>
<script>new Effect.Fade('redirect_message',{duration:3});</script>
<{/if}>
こんな感じにして、徐々にリダイレクトメッセージが消えるようにするのもいいかもです。このサイトは、このようにしてあります。
■2007-11-22 20:50 追記
動作の雰囲気は下記を参照してください。
redirect_sample動作イメージ
RSS feed for comments on this post.
ƤˤϡޤȤդƤޤ
Ȥ
ʤߥȤդ뤳ȤϽޤ