hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

09年7月3日(Fri) 8時34分
TOP » xpWiki::Dev » keyword » HypCommonPreLoad » KtaiRender

携帯対応レンダラー anchor.png Edit

HypCommonPreLoad に含まれる出力フィルターで、XOOPSを丸ごと携帯対応にすることができます。

注意事項
HypCommonFunc Ver 20080720 以降に含まれる SoftBankの絵文字を営利目的でホームページ、ソフトウェア、書籍等で利用される場合は、以下のアドレスから事前に連絡する必要があります。
http://creation.mb.softbank.jp/web/web_privacy.html
Page Top

設定 (hyp_preload.conf.php) anchor.png Edit

"XOOPS_TRUST_PATH/class/hyp_common/preload/hyp_preload.conf.php" を編集して設定をします。該当ファイルがない場合は、同じディレクトリに含まれている "hyp_preload.conf.php.rename" をリネームしてください。

  • hyp_preload.conf.php 内の携帯対応レンダラー関連の設定項目 (HypCommoFunc Ver. 20090111)
    // 各機能のメインスイッチ (On = 1, Off = 0)
    $this->use_k_tai_render      = 0; // 携帯対応レンダラーを有効にする
     
    /////////////////////////
    // 携帯対応レンダー設定
     
    // 携帯端末判定用 UA 正規表現
    $this->k_tai_conf['ua_regex'] = '#(?:SoftBank|Vodafone|J-PHONE|DoCoMo|UP\.Browser|DDIPOCKET|WILLCOM)#';
     
    // 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;background-color:#DBBCA6;font-size:small">[ ',
                                  'below' => ' ]</div>'),
        'redirectMessage'=> array( 'above' => '<marquee loop="3">',
                                  'below' => '</marquee>'),
        'blockMenu'      => array( 'above' => '<div style="background-color:#E0EEEE;font-size:small">',
                                  'below' => '</div>'),
        'blockContent'   => array( 'above' => '',
                                  'below' => ''),
        'toMain'         => array( 'above' => '<hr /><div style="text-align:center">',
                                  'below' => '</div>'),
        'subMenu'        => array( 'above' => '<div id="submenu" style="background-color:#ccccff"><h2 style="text-align:center">サブメニュー</h2></div>',
                                  'below' => ''),
    );
     
    // 携帯用XOOPSテーマセット
    $this->k_tai_conf['themeSet'] = 'ktai_default';
     
    // 携帯用XOOPSテンプレートセット
    $this->k_tai_conf['templateSet'] = '';
     
    // 使用テンプレート
    $this->k_tai_conf['template'] = 'default';
     
    // <body> attributes
    $this->k_tai_conf['bodyAttribute'] = '';
     
    // 無効にするブロックの bid (Block Id) (無指定:フィルタリングしない)
    $this->k_tai_conf['disabledBlockIds'] = array();
     
    // 有効にするブロックの bid (Block Id) (無指定:フィルタリングしない)
    $this->k_tai_conf['limitedBlockIds'] = array();
     
    // 常に表示するブロックの bid (Block Id) (メインメニューなど)
    $this->k_tai_conf['showBlockIds'] = array();
     
    // インラインイメージのリサイズ最大ピクセル
    $this->k_tai_conf['pictSizeMax'] = '200';
     
    // インラインイメージを表示するホスト名(後方一致)
    $this->k_tai_conf['showImgHosts'] = array('amazon.com', 'yimg.jp', 'yimg.com', 'ad.jp.ap.valuecommerce.com', 'ad.jp.ap.valuecommerce.com', 'ba.afl.rakuten.co.jp', 'assoc-amazon.jp', 'ad.linksynergy.com', 'google.com');
     
    // 直接画像を表示するホスト名(後方一致)
    $this->k_tai_conf['directImgHosts'] = array('google-analytics.com');
     
    // リダイレクトスクリプトを経由しないホスト名(後方一致)
    $this->k_tai_conf['directLinkHosts'] = array('amazon.co.jp', 'ck.jp.ap.valuecommerce.com', 'afl.rakuten.co.jp', 'maps.google.com');
     
    // 外部リンク用リダイレクトスクリプト
    $this->k_tai_conf['redirect'] = XOOPS_URL . '/class/hyp_common/gate.php?way=redirect&amp;_d=0&amp;_u=0&amp;_x=0&amp;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'] = 'ログアウト';
    $this->k_tai_conf['msg']['easyloginSet'] = '簡単ログイン:設定';
    $this->k_tai_conf['msg']['easyloginUnset'] = '簡単ログイン:解除';
    $this->k_tai_conf['msg']['toMain'] = '本文を表示';
    $this->k_tai_conf['msg']['mainMenu'] = 'メインメニュー';
    $this->k_tai_conf['msg']['subMenu'] = 'サブメニュー';
     
    // アイコン
    $this->k_tai_conf['icon']['first']   = '((s:465d))';
    $this->k_tai_conf['icon']['prev']    = '((s:465b))';
    $this->k_tai_conf['icon']['next']    = '((s:465a))';
    $this->k_tai_conf['icon']['last']    = '((s:465c))';
    $this->k_tai_conf['icon']['extLink'] = '((i:f8d9))';
    $this->k_tai_conf['icon']['hTag']    = '((i:f8e4))';
    $this->k_tai_conf['icon']['RSS']     = '((e:f699))';
     
    $this->k_tai_conf['icon']['toMain']  = '((e:f7e4))';
     
    // style
    $this->k_tai_conf['style']['highlight'] = 'background-color:#ffc0cb';
     
    // Easy login: 設定 or 解除リンクを表示するURI(XOOPS_URL以降)とuidのGETキーと挿入位置
    $this->k_tai_conf['easyLoginConfPath'] = '/userinfo.php';
    $this->k_tai_conf['easyLoginConfuid'] = 'uid';
    $this->k_tai_conf['easyLoginConfInsert'] = 'content';
     
    // GET query keys
    $this->k_tai_conf['getKeys']['page'] = '_p_';
    $this->k_tai_conf['getKeys']['hash'] = '_h_';
    $this->k_tai_conf['getKeys']['block'] = '_b_';
     
    //// Google Adsense 設定
    // config ファイルのパス
    $this->k_tai_conf['googleAdsense']['config'] = '';
    // 挿入場所 ('header', 'body', 'footer') の下、無指定時はページ最上部
    $this->k_tai_conf['googleAdsense']['below'] = '';
     
    // Google Analytics 設定
    $this->k_tai_conf['googleAnalyticsId'] = '';
     
    // 携帯対応レンダー設定 以上
    /////////////////////////////
Page Top

サイトごとの設定 anchor.png Edit

$this->k_tai_conf の各設定は、サイトごとに行う必要がある場合がありますので、サイトごとの設定方法を説明します。

方法は、2種類あります。

Page Top
各設定値のキー名に #[XOOPS_URL] を付加する方法 anchor.png Edit

この方法では、XOOPS_TRUST_PATH 側 (XOOPS_TRUST_PATH/class/hyp_common/preload/hyp_preload.conf.php) で各サイトごとに設定できます。

例えば、$this->k_tai_conf['disabledBlockIds'] の設定を http://xoops.hypweb.net に対して行いたい場合は、

1
$this->k_tai_conf['disabledBlockIds#http://xoops.hypweb.net'] = array(55, 63, 154, 67, 106, 34);

のように設定します。(このサイトの設定例です)

※ trust側で設定する場合は、XOOPS_ROOT_PATH/class/hyp_common/hyp_preload.conf.php を設置してはいけません。

Page Top
XOOPS_ROOT_PATH(html側)/class/hyp_common/hyp_preload.conf.php にて設定する方法 anchor.png Edit

各サイトの XOOPS_ROOT_PATH/class/hyp_common に hyp_preload.conf.php に設置して設定を行います。

XOOPS_ROOT_PATH/class/hyp_common/hyp_preload.conf.php を設置すると、XOOPS_TRUST_PATH/class/hyp_common/preload/hyp_preload.conf.php は読み込まれなくなります。

Page Top

ブロックのコントロール anchor.png Edit

ブロックは、サブメニューとしてタイトルを一覧表示するようになっています。

また、特定のブロックを常に表示したり、ブロックを無効にすることもできます。

  • 特定のブロックを常に表示したい

    特定のブロックを、メインコンテンツと共に常に表示することができます。

    メインメニューやユーザーメニューは常に表示させておくと便利でしょう。

    設定は、

    // 常に表示するブロックの bid (Block Id) (メインメニューなど)
    $this->k_tai_conf['showBlockIds'] = array();

    で行います。

  • 特定のブロックを無効にしたい

    特定のブロックを無効にすることができます。

    設定は、

    // 非表示にするブロックの bid (Block Id)
    $this->k_tai_conf['disabledBlockIds'] = array();

    で行います。

ブロックの設定を行う場合は、その性格上、必ずサイトごとの設定で行う必要があります。

設定方法は、ブロックIDを配列で指定します。例えば、ブロックID 3, 5, 10 を非表示にしたい場合は、次のようになります。

// 非表示にするブロックの bid (Block Id)
$this->k_tai_conf['disabledBlockIds'] = array(3, 5, 10);
XOOPS 2.0.16a JP での注意事項
XOOPS 2.0.16a JP で運用している場合は、HypCommonFunc Ver. 20080916 以降に含まれる header.phpのハック版 ( core_addons/html_2.0.16aJP/header.php ) を忘れずに XOOPS_ROOT_PATH へアップロードする必要があります。
Page Top

各モジュールの対応など anchor.png Edit

各モジュールのテンプレート内でも、Smarty変数の Smarty変数の $smarty.const.HYP_K_TAI_RENDER を使って、場合分けができます。

部分的に場合分けしてもいいですし、大胆に全体を

<{if $smarty.const.HYP_K_TAI_RENDER}>
携帯の場合のテンプレート
<{else}>
PCの場合のテンプレート
<{/if}>

とすることもできます。

Page Top

d3forum anchor.png Edit

d3forum では、スパム対策のデフォルトフィルターで、ゲスト投稿時に JavaScript を利用してフィルタリングを行っていますが、このフィルターが有効になっていると、ゲストが携帯で投稿することができません。

そこで、携帯からのアクセスかを IP 帯域で判断して、携帯であると判断した場合は、フィルタリングを行わないフィルターを書いてみました。

このファイルを、XOOPS_TRUST_PATH/modules/d3forum/class にアップロードし、[ d3forum の管理画面 - 一般設定 - SPAM投稿チェック用クラス ] に 「default_ktai」と指定してください。

Page Top

mailbbs (写メールBBS) anchor.png Edit

Version 2.3.6 で、携帯対応レンダラーに対応しました。Ver 2.3.6 以降をお使いください。

Page Top

yomi (Yomiサーチ) anchor.png Edit

Version 0.89 にて、サイトバナーの表示に対応しました。

Page Top

テンプレートでよく使う絵文字 (i-mode 基準) anchor.png Edit

絵文字絵文字コード意味主な使用例
((i:f952))((i:f952))ペン投稿する
((i:f9be))((i:f9be))鉛筆投稿数
((i:f955))((i:f955))人型投稿者
((i:f8c4))((i:f8c4))家型居住地・ホームページ
((i:f95e))((i:f95e))時計投稿日時
((i:f982))((i:f982))New最終更新・最新投稿

Page Top

制限について anchor.png Edit

サーバーの PHP が PHP 4.3.0 未満、又は PHP 5 未満で Web サーバーが Apache でない場合、header('Location: ...') でリダイレクトしているところでセッションが切れてしまいます。ログイン状態であっても、そこでログアウトしてしまうということです。

可能であれば、HTTP Header を検査して Location であれば、セッションID付きURLに書き換えることでセッションが切れないようになっていますが、未対応の環境下ではそれを行うことができないので、携帯対応レンダラー側で対処することはできません。

未対応の環境下サーバーで、リダイレクト時にセッションが切れないようにする方法は以下の2つの方法があります。

  1. XOOPS の関数 redirect_header() を使用する
  2. Location によるリダイレクト時に URL にセッションIDを追加する

例えば、

header('Location: ' . $url);

となっているところを次のように変更します。

  • 1. redirect_header() 使用
    if (defined('HYP_K_TAI_RENDER') && HYP_K_TAI_RENDER) {
        redirect_header('Location: ' . $url);
    } else {
        header('Location: ' . $url);
    }
  • 2. セッションIDを追加
    if (defined('HYP_K_TAI_RENDER') && HYP_K_TAI_RENDER) {
        $ktairender =& HypKTaiRender::getSingleton(); // リファレンス取得
        $url = $HypKTaiRender->getRealUrl($url);      // 相対URLなら絶対URLに変換 (要: Ver. 20090104 以降)
        $url = $ktairender->addSID($url, XOOPS_URL);  // セッションIDを付加
    }
    header('Location: ' . $url);
Page Top

意見・要望 anchor.png Edit

  • 意見要望を書くところが、あちこち探したがよくわからなかったのでここにコメント欄を作ってみました。 -- 通りすがりさんEdit 2008-08-17 (Sun) 10:16:25
  • 携帯判定にWILLCOMと、e-mobileを是非入れて欲しい。 -- 通りすがりさんEdit 2008-08-17 (Sun) 10:16:34
  • directLinkHosts に、Adsenseのgooglesyndication.comを入れて欲しい -- 通りすがりさんEdit 2008-08-17 (Sun) 10:32:53
    • WILLCOM と e-mobile の端末の多くは、PCサイトブラウザを搭載していてほとんどのユーザーは、それでアクセスしているので、携帯対応はかえってユーザーの不利益になるという認識なのですが、如何でしょうか。(このあたり、私は詳しくないので間違っているかもしれません。)
      Adsense対応に関しては、hyp_preload.conf.php にて設定していただければよいと思いますが、規定値に設定しておいたほうがよさそうなら加えておきます。 :-) -- nao-pon 2008-08-17 (日) 21:38:06
  • e-mobileはよく分かりませんが、WILLCOMのPCサイトブラウザは、端末の能力が他社端末に比べ低く抑えられていることや通信回線の遅さから、依然として非力であり、まだ今1つ実用的とは言えない状態です。むしろドコモやauのPCサイトブラウザの方がよほど快適なくらいで…従いまして、軽いページに対する需要は十分あると思われます。1ユーザーとして、WILLCOMの携帯対応をデフォルトで行っていただけると、大変有り難いです。 -- 通りすがりさんEdit 2008-09-20 (土) 23:49:44
  • お世話になります。 -- しょぼEdit 2008-10-18 (土) 20:51:47
  • 初心者なので、初歩的なご質問をさせていただくことをご了承ください。 各設定を行って、無事に携帯でmobile版表示ができたのですが、メインメニューもブロックもコンテンツも表示されません。何が原因なのでしょうか?ご指導いただければ幸いです。 xoopsバージョンは2.0.16で上記の設定通り行ったつもりです。宜しくお願い致します。 -- しょぼEdit 2008-10-18 (土) 20:56:16
  • Hタグを任意で無効にできる機能があると・・・最高っす! -- 通りすがりさんEdit 2009-02-18 (水) 17:43:32



Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 10002, today: 6, yesterday: 20
Last-modified: 2009-05-26 (Tue) 18:36:24 (JST) (37d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?

mixiでログイン Yahoo!でログイン
メインメニュー
"ぽちっ"としてね☆
付箋機能 (xpwiki)
Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 
id.1:
通りすがりさん : : 09/02/17 17:09

  :D

id.2:
通りすがりさん : : 09/05/15 16:51

ヘェ〜。 なんだぁ、この付箋機能は。 面白れぇ〜。

id.3:
通りすがりさん : : 09/05/19 23:36

ここかw

id.4:
通りすがりさん : : 09/05/26 18:36

test

MenuBar (xpwiki)
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 95 人がオンライン中 :-)
(xpWiki::Dev : 30 人)

登録ユーザ: 0 & ゲスト: 95

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 1588


現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報