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

リンクボタン作成専用のSmarty \"ryus_link\" プラグイン

2007/12/14 09:54   Ryuji   カテゴリ: mono モノ, XOOPS Cube

業務用のモジュールを作成していると、管理画面のページ遷移をリンクでなく、ボタンにして欲しいという話になることが良くあります。

そのたびに、下記のようなHTMLをテンプレートに書くのですが、ついシングルクォートをつけわすれたり、onClick=\"regist.php\"のような書き方をするというミスをよくやってしまいます。

<input type="button" value="登録画面へ" onClick="location='index.php?action=regist'" />/PRE

そこで、できるだけミスが発生しないようにSmartyプラグイン化してみました。
下記のように記述するおt、先ほどのHTMLを出力します。

<{ryus_link url="index.php?action=regist" text=登録画面へ}>/PRE

プラグインのコードは、非常に単純です。

<?php
function smarty_function_ryus_link($params, &$smarty)
{
$url = isset($params['url']) ? $params['url'] : "";
$text = isset($params['text']) ? $params['text'] : "";
$url = trim($url);
$text = trim($text);

printf('<input type="button" value="%s" onClick="location=\\'%s\\'" />', $text, $url);

}
?>/PRE

XOOPSの配布モジュールを作成するときは、できるかぎりプログラム側でHTMLを生成することは避けた方が、テンプレートの自由度があがりますが、非公開のプログラムでSmartyを使えるなら、こんな感じで、テンプレートコーディングを楽にするためのプラグインを作ってみるのも良いだろうと思います。