HypCommonPreLoad に含まれる出力フィルターで、XOOPSを丸ごと携帯対応にすることができます。
HypCommonFunc Ver 20080717 以降では、デフォルトで携帯対応レンダー専用のテーマセット(ktai_default)を使用し、各モジュールのテーマ下テンプレートに対応しています。
携帯対応レンダー専用のテーマセットを使用する場合は、テーマの調整は不要です。
一方、携帯対応レンダー専用のテーマセットを使用しない場合は、設定で
// 携帯用テーマセット $this->k_tai_conf['themeSet'] = '';
とします。その場合は、通常のテーマセットが使用されます。
通常使用するテーマセットが DIVレイアウトの場合は、そのままでもある程度、携帯で見やすい形で表示されますが、TABLE レイアウトの theme では、コンテンツ部分を先に表示したりと、HTMLの再構成をしないと、実用的でない場合があります。
HTML の再構成をする場合は、携帯対応レンダーが適切に部分抽出できるように、簡単なタグを仕込む必要があります。
使用できるタグは、設定項目にある「HTML再構築用タグ設定」のキーワードを利用したタグなります。規定値では、次のタグが使えます。
| 開始タグ | 終了タグ |
|---|---|
| <!--headerlogo--> | <!--/headerlogo--> |
| <!--headerbar--> | <!--/headerbar--> |
| <!--breadcrumbs--> | <!--/breadcrumbs--> |
| <!--leftcolumn--> | <!--/leftcolumn--> |
| <!--centerCcolumn--> | <!--/centerCcolumn--> |
| <!--centerLcolumn--> | <!--/centerLcolumn--> |
| <!--centerRcolumn--> | <!--/centerRcolumn--> |
| <!--content--> | <!--/content--> |
| <!--rightcolumn--> | <!--/rightcolumn--> |
| <!--footerbar--> | <!--/footerbar--> |
| <!--HypKTaiIgnore--> | <!--/HypKTaiIgnore--> |
"<!--HypKTaiIgnore-->" 以外のそれぞれのタグで囲まれた範囲が、XOOPS_TRUST_PATH/class/Hyp_common/ktairender/templates/default ディレクトリ内にある
各ファイルの該当キーワードタグと置換され、「HTML再構築用タグ設定」の 各キーの 'above' の内容が前方に、'below' の内容が後方に挿入されます。
例外として、"<!--HypKTaiIgnore-->" と "<!--/HypKTaiIgnore-->" で囲まれた範囲は、出力から除去されます。*1
例えば、XOOPS Cube Legasy の "cube_default" テーマにおいて、"leftcolumn" を設定する場合は、theme.html に、次のような箇所があると思います
|
これを次のようにします。
|
注意すべき点は、<{foreach ... }> 〜 <{/foreach}> を崩さないようにすることです。
また、携帯対応レンダーを使っている場合は、Smarty変数の $smarty.const.HYP_K_TAI_RENDER が TRUE になりますので、この値で、場合分けができます。
このようにして、携帯対応レンダー用タグを仕込んだ "cube_default" テーマの theme.html が
theme.html です。参考にお使いください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
| - | ! | |
"XOOPS_TRUST_PATH/class/hyp_common/preload/hyp_preload.conf.php" を編集して設定をします。該当ファイルがない場合は、同じディレクトリに含まれている "hyp_preload.conf.php.rename" をリネームしてください。
// 各機能のメインスイッチ (On = 1, Off = 0)
$this->use_k_tai_render = 0; // 携帯対応レンダーを有効にする
/////////////////////////
// 携帯対応レンダー設定
// 携帯端末判定用 UA 正規表現
$this->k_tai_conf['ua_regex'] = '#(?:SoftBank|Vodafone|J-PHONE|DoCoMo|UP\.Browser)#';
// HTML再構築用タグ設定
$this->k_tai_conf['rebuilds'] = array(
'headerlogo' => array( 'above' => '<center>',
'below' => '</center>'),
'headerbar' => array( 'above' => '<hr>',
'below' => ''),
'breadcrumbs' => array( 'above' => '',
'below' => ''),
'leftcolumn' => array( 'above' => '<hr>',
'below' => ''),
'centerCcolumn' => array( 'above' => '<hr>',
'below' => ''),
'centerLcolumn' => array( 'above' => '',
'below' => ''),
'centerRcolumn' => array( 'above' => '',
'below' => ''),
'content' => array( 'above' => '<hr>',
'below' => ''),
'rightcolumn' => array( 'above' => '<hr>',
'below' => ''),
'footerbar' => array( 'above' => '',
'below' => ''),
'easylogin' => array( 'above' => '<div style="text-align:center;font-size:0.9em">[ ',
'below' => ' ]</div>'),
);
// 携帯用テーマセット
$this->k_tai_conf['themeSet'] = 'ktai_default';
// 使用テンプレート
$this->k_tai_conf['template'] = 'default';
// インラインイメージを表示するホスト名(後方一致)
$this->k_tai_conf['showImgHosts'] = array('amazon.com', 'yimg.jp', 'yimg.com', 'ad.jp.ap.valuecommerce.com', 'ba.afl.rakuten.co.jp', 'assoc-amazon.jp', 'ad.linksynergy.com');
// リダイレクトスクリプトを経由しないホスト名(後方一致)
$this->k_tai_conf['directLinkHosts'] = array('amazon.co.jp', 'ck.jp.ap.valuecommerce.com');
// 外部リンク用リダイレクトスクリプト
$this->k_tai_conf['redirect'] = XOOPS_URL . '/class/hyp_common/redirect.php?l=';
// Easy login を有効にする
$this->k_tai_conf['easyLogin'] = 1;
// Easy login で IP アドレス帯域をチェックしない
$this->k_tai_conf['noCheckIpRange'] = 0;
// リンクメッセージ
$this->k_tai_conf['msg']['easylogin'] = '簡単ログイン';
$this->k_tai_conf['msg']['logout'] = 'ログアウト';
// 携帯対応レンダー設定 以上
/////////////////////////////各モジュールのテンプレート内でも、Smarty変数の Smarty変数の $smarty.const.HYP_K_TAI_RENDER を使って、場合分けができます。
部分的に場合分けしてもいいですし、大胆に全体を
<{if $smarty.const.HYP_K_TAI_RENDER}>
携帯の場合のテンプレート
<{else}>
PCの場合のテンプレート
<{/if}>
とすることもできます。
d3forum では、スパム対策のデフォルトフィルターで、ゲスト投稿時に JavaScript を利用してフィルタリングを行っていますが、このフィルターが有効になっていると、ゲストが携帯で投稿することができません。
そこで、携帯からのアクセスかを IP 帯域で判断して、携帯であると判断した場合は、フィルタリングを行わないフィルターを書いてみました。
このファイルを、XOOPS_TRUST_PATH/modules/d3forum/class にアップロードし、[ d3forum の管理画面 - 一般設定 - SPAM投稿チェック用クラス ] に 「default_ktai」と指定してください。
-- nao-pon 2008-08-17 (日) 21:38:06 New
ログイン
アクティブメニュー
Home
xpWiki::Dev
新規ページ作成
最新ページ一覧
全ページ一覧
人気のページ
全コメント一覧
xpWikiフォーラム
スキン選択
ヘルプ
» 関連ページ
» 編集する
» 変更点を見る
» バックアップ一覧
» 添付ファイル一覧
» リンク元一覧
|
MenuBar (xpwiki)
ブックマーク
サイト内 Wiki
☆ 検索 ☆
オンライン状況
サイト情報
現在ページのQRコード
参照元情報