ホーム > フォーラム > 質問箱 > XCL2.1.7 > QueryStringの値によって、Xoopsのテーマ内の複数のCSSやtheme.htmlファイルを切り替え

QueryStringの値によって、Xoopsのテーマ内の複数のCSSやtheme.htmlファイルを切り替え
投稿者: kabahandle | 投稿日時: 2010/5/28 11:51 | 閲覧: 10879回
kabahandle

こんにちは。
URLで例えば、
http://www.abc.com/xoops/?css=sample1.css
などのように、「css」変数にスタイルシート名を指定することにより、
xoops画面のcssを切り替える方法についての質問です。

当方では、$_GET['css']の値を、Smarty変数としてtheme.htmlファイルへ渡す方法を検討していました。

例えば、theme.htmlでは以下のようにして、
スタイルシートを切り替えることを考えていました。

<link href="css/<{$css}>.css" rel="stylesheet" type="text/css" />


やってはみたのですが、かなり汚いやり方になってしまいました。
xoops/modules/legacy/kernel/Legacy_Controller.class.php内の_executeViewTheme()関数をいじり、

$screenTarget->setAttribute('css',$_GET['css']);

のようにして実現しています。

しかし、これでは、Xoopsをアップグレードした際に問題ですし、そもそも悪影響がどこに出るかわかりません。
他に適切なやり方がないか、お知恵を拝借したいと思い、投稿させていただきました。

宜しくお願いします。

コメント(3)

Re: QueryStringの値によって、Xoopsのテーマ内の複数のCSSやtheme.htmlファイルを切り替え 
投稿者: nobu | 投稿日時: 2010/5/28 13:48
nobu

特別なことはしなくても、Smarty で http引数は扱えますよ。

<{if $smarty.get.css}>
<link href="css/<{$smarty.get.css|escape}>.css" rel="stylesheet" type="text/css" />
<{else}><{* 指定がない場合 *}>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<{/if}>

こんな感じでいいんじゃない? (テストしてないのであしからず)
#20519 | | 返信する |
Re: QueryStringの値によって、Xoopsのテーマ内の複数のCSSやtheme.htmlファイルを切り替え 
投稿者: kabahandle | 投稿日時: 2010/5/28 19:26 | 親コメント: #20519
kabahandle

こんばんは。
レス、ありがとうございます。

引用:
特別なことはしなくても、Smarty で http引数は扱えますよ。


!!勉強不足でした。・・・(゚_゚i)

引用:
こんな感じでいいんじゃない? (テストしてないのであしからず)


早速試して見ましたところ、OKでした。
助かりました。m(_’_)m

post も sessionもとれるようですね。
http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/language.variables.smarty.html
Re: QueryStringの値によって、Xoopsのテーマ内の複数のCSSやtheme.htmlファイルを切り替え 
投稿者: kabahandle | 投稿日時: 2010/5/28 20:33 | 親コメント: #20521
kabahandle

尚、テーマフォルダへのURLは、<{$xoops_imageurl}>を参照しました。

(下記URLを参照してください。)
http://xc-tokai.net/modules/smartsection/item.php?itemid=1

    投票(0)

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