LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

CustomizeManual

テーマカスタマイズTips anchor.png

テーマのカスタマイズにphpの基礎的な知識が有ると、「できること」の幅が非常に広がります。別にプログラマーになるほど専門的な知識を実に付けなくとも(もちろんそういったものが有った方がより高度なことができますが)、基礎的な知識が有るだけで実にさまざまなことができるようになります。

Page Top

phpの演算子を覚えよう anchor.png

よく使われる演算子を覚えておきましょう。これと数値やSmarty変数を組み合わせるだけでも、複雑な処理が可能です。

A == BAとBは同じ(等しい)
A < BAよりBの方が(値が)大きい
A > BAよりBの方が(値が)小さい
A <= BBはAと同じかより大きい
A => BBはAと同じかより小さい
A != BAとBは異なる(等しくない)

例1)<{$xoops_dirname}> == d3forum・・・dirnameがd3forumである。

Page Top

dirnameを使ってモジュールごとに異なるCSSセレクタを割り当てる anchor.png

xoops_dirname変数を利用して、ページ全体にモジュールごとに異なるIDを仕掛けるなどの利用法があります。

 <div id="<{$xoops_dirname}>"></div>

この場合例えばd3forumにいるときはid="d3forum"が入ります。トップページなどdirnameが無いページでは空欄になってid=""となってしまうのが玉に瑕です。(html_lintなどで原点対象になります) もし、それを解消したいのなら下にあるif文で、dirnameが存在するページにのみこの処理をさせることもできます。

具体的には、テーマ hd_default で使われている次のような記述を使って、dirnameが存在しない場合は専用のcssセレクタ(ここでは home)を付与する方法

 <body id="<{if $xoops_dirname ne ""}><{$xoops_dirname}><{else}>home<{/if}>">

とか、次のようなif文の書き方で、dirnameが存在する場合のみcssセレクタを表示する方法なども考えられます。

 <body<{if !$xoops_dirname == ""}> id="<{$xoops_dirname}>"<{/if}> >

例)style.cssでモジュールごとにリンク色を変える。

#d3forum a {color: #000000;}
#bulletin a {color: #111111;}
#d3blog a {color: #333333;}
Page Top

if elseを使いこなす anchor.png

if = もし〇〇であるならば。 else = そうでないならば。 と、条件式を使って処理を分けることができます。

例1)モジュールページごとに表示を分ける。

<{if $xoops_dirname == "d3forum"}>
d3forum時のHTMLソース
<{elseif $xoops_dirname == "bulletin"}>
bulletin時のHTMLソース
<{else}>
それ以外の時のHTMLソース
<{/if}>

例2)登録ユーザとゲストで処理を分ける。

<{if !$xoops_isuser}>//!は否定
ゲスト時の処理
<{else}>
登録ユーザ(上記の条件式で言うと「ゲスト以外」)のための処理
<{/if}>

この時に括弧やif文の閉じ忘れがあると真っ白になってしまうので注意してください。

また、if/else処理は「入れ子」ができます。条件式の中にさらに条件式を入れることができますので覚えて置いてください。


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 7058, today: 2, yesterday: 1
初版日時: 2008-05-14 (水) 00:14:07
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1231d) by fabi
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities