ホーム > フォーラム > 開発 > コア開発 > テンプレート関数「xoops_link」

テンプレート関数「xoops_link」
投稿者: okuhiki | 投稿日時: 2007/4/2 17:03 | 閲覧: 6912回
okuhiki
XOOPS から継承された関数です。
あまり使われていないテンプレート関数ですが、使われ方によっては、気になる存在です。
/class/smarty/plugins/function.xoops_link.php
Line 62-66 get および post データの取り込み。
Line 71 変数 $urlstr にそのまま追記。
Line 95-99 出力に変数 $urlstr の値がそのまま含まれる。

テンプレートで関数からの出力に何も対策を行なわずに表示をすると、怖いかも。

テンプレート側で、query 名のみの指定が含まれる
<a href="<{xoops_link page='viewcat.php' urlvars='cid&amp;orderby=titleA'}>">link</a>
などは怖いですよね。使用するのであれば、
<{strip}>
<{  capture assign='xoops_link_url'}>
<{    xoops_link page='viewcat.php' urlvars='cid&amp;orderby=titleA'}>
<{  /capture}>
<a href="<{$xoops_link_url|escape}>">link</a>
<{/strip}>
とエスケープすると良いかも。

プラグイン側で、関数「htmlspecialchars」による変換を行われても良いと思われますがいかがでしょう。
PHP 関数「header」などで利用する文字列を考慮した場合、変換の有無を制御するオプションの属性を作られても良いと思います(デフォルトは変換有り)。


余談ですが、Line 45 書式例の、
cid,orderby=titleA
部分は、
cid&amp;orderby=titleA
と思われます(複数 query 記述時のセパレータが違う)。

コメント(2)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: テンプレート関数「xoops_link」 
投稿者: Tom_G3X | 投稿日時: 2007/4/3 1:26
Tom_G3X
okuhikiさん、こんにちは。

xoops_link のSmarty Plug-in は、XOOPS2からフォークした時に、一緒についてきたPlug-in ですね。

おそらく誰も使ってないと思われましたので、X2互換という意味もあって、とりあえずそのまま入れていましたが、
改めて見てみると、不用意に使われるくらいなら、削除しておくのも、方法かもしれませんね。
まずは、トラッカーに入れておきます。
Re: テンプレート関数「xoops_link」 
投稿者: Tom_G3X | 投稿日時: 2007/4/9 17:34
Tom_G3X
この件、xoops_link のSmarty Plug-in を削除して対応いたしました。
報告ありがとうございました。

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top