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

19年6月26日(Wed) 1時45分
TOP » xpWiki::Dev » keyword » HypCommonPreLoad » KtaiRender

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

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

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

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

ここに解説のある設定項目でも hypconf モジュールで設定できる項目は、そちらで設定したほうが、はるかに簡単に設定できます。ぜひ、hypconf モジュールをインストールしてご活用ください。

hypconf モジュールは、HypCommonFunc に含まれています。html/modules/hypconf, xoops_trust_path/modules/hypconf の各ディレクトリをサーバーの html側 と trustパス側へそれぞれ間違えないようにアップロードして、XOOPS のモジュール管理からインストールしてください。

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

  • hyp_preload.conf.php 内の携帯対応レンダラー関連の設定項目 (HypCommoFunc Ver. 20120130)
    // 各機能のメインスイッチ (On = 1, Off = 0)
    $this->use_set_query_words   = 0; // 検索ワードを定数にセット
    $this->use_words_highlight   = 0; // 検索ワードをハイライト表示
    $this->use_proxy_check       = 0; // POST時プロキシチェックする
    $this->use_dependence_filter = 0; // 機種依存文字フィルター
    $this->use_post_spam_filter  = 0; // POST SPAM フィルター
    $this->post_spam_trap_set    = 0; // 無効フィールドのBot罠を自動で仕掛ける
    $this->use_k_tai_render      = 0; // 携帯対応レンダーを有効にする
    $this->use_smart_redirect    = 0; // スマートリダイレクトを有効にする
     
    // 各種設定
    $this->configEncoding = 'EUC-JP'; // このファイルの文字コード
     
    $this->encodehint_word = 'ぷ';    // POSTエンコーディング判定用文字
    $this->encodehint_name = 'HypEncHint'; // POSTエンコーディング判定用 Filed name
    $this->detect_order = 'ASCII, JIS, UTF-8, eucJP-win, EUC-JP, SJIS-win, SJIS';
     
    $this->msg_words_highlight = 'これらのキーワードがハイライトされています';
     
    $this->no_proxy_check  = '/^(127\.0\.0\.1|192\.168\.1\.)/'; // 除外IP
    $this->msg_proxy_check = 'Can not post from public proxy.';
     
    // Input filter 制御文字の除去
    // 0: null 以外許可, 1: SoftBankの絵文字と\t,\r,\n は許可, 2: \t,\r,\n のみ許可
    $this->input_filter_strength = 0;
     
    // POST SPAM
    $this->use_mail_notify    = 1;    // POST SPAM メール通知 0:なし, 1:SPAM判定のみ, 2:すべて
    $this->send_mail_interval = 60;   // まとめ送りのインターバル(分) (0 で随時送信)
    $this->post_spam_a   = 1;         // <a> タグ 1個あたりのポイント
    $this->post_spam_bb  = 1;         // BBリンク 1個あたりのポイント
    $this->post_spam_url = 1;         // URL      1個あたりのポイント
    $this->post_spam_unhost= 5;       // 不明 HOST の加算ポイント
    $this->post_spam_host  = 31;      // Spam HOST の加算ポイント
    $this->post_spam_word  = 10;      // Spam Word の加算ポイント
    $this->post_spam_filed = 200;     // Spam 無効フィールドの加算ポイント
    $this->post_spam_trap  = '___url';// Spam 罠用無効フィールド名
     
    $this->post_spam_user  = 150;     // POST SPAM 閾値: ログインユーザー
    $this->post_spam_guest = 15;      // POST SPAM 閾値: ゲスト
    $this->post_spam_badip = 100;     // アクセス拒否リストへ登録する閾値
     
    // 処理をパスするフォームフィールド名 (,<カンマ> 区切り)
    // reference_quote : d3forum
    // msg_before,msg_after : PukiWikiMod
    $this->post_spam_pass_names = 'reference_quote,msg_before,msg_after';
     
    // Protector 併用設定 (Protector の拒否IP登録の保護グループ設定も有効)
    $this->post_spam_badip_ttl     = 900;     // アクセス拒否の拒否継続時間[Sec](0:無期限,null:Protector不使用)
    $this->post_spam_badip_forever = 200;     // 無期限アクセス拒否閾値
    $this->post_spam_badip_ttl0    = 2592000; // 無期限アクセス拒否継続時間[Sec](0:本当に無期限)
     
    // Proxy Checkers
    $this->post_spam_checkers = array(
        //'list.dsbl.org',
        'niku.2ch.net',
        array(
            'dnsbl.spam-champuru.livedoor.com',
            '/^192\.168\.1\.2/'
        ),
    );
     
    // POST SPAM のポイント加算設定
    $this->post_spam_rules = array(
        // 同じURLが1行に3回 11pt
        "/((?:ht|f)tps?:\/\/[!~*'();\/?:\@&=+\$,%#\w.-]+).+?\\1.+?\\1/i" => 11,
     
        // 65文字以上の英数文字のみで構成されている 15pt
        // '/^[\x00-\x7f\s]{65,}$/' => 15,
     
        // 無効な文字コードがある 31pt
        '/[\x01-\x08\x0b-\x0c\x0e\x10-\x1a\x1c-\x1f\x7f]+/' => 31,
     
        // よくあるSPAM 15pt
        '/^\s*(?:Hi|Aloha)! (?:<a[^>]+?href=|\[url=|http:\/\/)/i' => 15,
    );
     
    // 無効なフィールド定義
    $this->ignore_fileds = array(
        // 'url' => array('newbb/post.php', 'comment_post.php'),
    );
     
    // 検索ワード定数名
    $this->q_word  = 'XOOPS_QUERY_WORD';         // 検索ワード
    $this->q_word2 = 'XOOPS_QUERY_WORD2';        // 検索ワード分かち書き(分かち書き不使用なら空文字''で設定)
    $this->se_name = 'XOOPS_SEARCH_ENGINE_NAME'; // 検索元名
     
    // 外部リンクに付加する class属性値
    // use_words_highlight = 1 の場合に有効
    // 空値指定で class属性の付加なし
    $this->extlink_class_name = 'ext';
     
    // KAKASI での分かち書き結果のキャッシュ先
    $this->kakasi_cache_dir = XOOPS_TRUST_PATH.'/uploads/hyp_common/kakasi/';
     
    // スマートリダイレクトのポップアップ最短秒数
    $this->smart_redirect_min_sec = 5;
     
    // 定数 "HYP_IS_BOT_UA" をセットする UserAgant PCRE 正規表現
    $this->bot_ua_reg = '/bot|Slurp|Crawler|Sidewinder|spider|Y!J|Ask/i';
     
    /////////////////////////
    // 携帯対応レンダー設定
     
    // 携帯端末判定用 UA 正規表現
    $this->k_tai_conf['ua_regex'] = '#(?:Android|Windows Phone|SoftBank|Vodafone|J-PHONE|DoCoMo|UP\.Browser|DDIPOCKET|WILLCOM|iPhone|iPod|mixi-mobile-converter|Googlebot-Mobile|Google Wireless Transcoder|Hatena-Mobile-Gateway)#';
     
    // jQuery mobile を使用するプロファイル
    $this->k_tai_conf['jquery_profiles'] = 'android,iphone,ipod,windows phone';
     
    // jQuery mobile のテーマ
    // ページ
    $this->k_tai_conf['jquery_theme'] = 'b';
    // メインコンテンツ
    $this->k_tai_conf['jquery_theme_content'] = 'd';
    // ブロックコンテンツ
    $this->k_tai_conf['jquery_theme_block'] = 'c';
     
    // jQuery 使用時はHTMLの携帯用変換を行わない
    $this->k_tai_conf['jquery_no_reduce'] = true;
    // jQuery Mobile 適用時に Flash を除去するプロファイル名をカンマ区切りで記述。
    $this->k_tai_conf['jquery_remove_flash'] = ''; // 'iphone,ipod,ipad'
    // jQuery Mobile 適用時に入れ子になっているテーブルを展開する。
    $this->k_tai_conf['jquery_resolve_table'] = false;
    // jQuery Mobile 適用時に画像を指定幅[px]サイズまで縮小する。「0」で無効。
    $this->k_tai_conf['jquery_image_convert'] = 0;
     
    // HTML再構築用タグ設定
    $this->k_tai_conf['rebuilds'] = array(
        'header'         => array( 'above' => '',
                                  'below' => ''),
        'body'           => array( 'above' => '',
                                  'below' => ''),
        'footer'         => array( 'above' => '',
                                  'below' => ''),
        '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' => ''),
    );
    // jQuery Mobile 上書き用
    $this->k_tai_conf['rebuildsEx']['jqm'] = array(
        'header'         => array( 'above' => '<div data-role="header" data-theme="'.$this->k_tai_conf['jquery_theme'].'">',
                                  'below' => '</div>'),
        'body'           => array( 'above' => '<div data-role="content" id="keitaiContents" data-theme="'.$this->k_tai_conf['jquery_theme'].'">',
                                  'below' => '</div>'),
        'footer'         => array( 'above' => '<div data-role="footer" data-theme="'.$this->k_tai_conf['jquery_theme'].'">',
                                  'below' => '</div>'),
        'easylogin'      => array( 'above' => '',
                                  'below' => ''),
        'blockMenu'      => array( 'above' => '<div data-role="header" style="line-height:1">',
                                  'below' => '</div>'),
    );
     
    // 携帯用XOOPSテーマセット
    $this->k_tai_conf['themeSet'] = 'ktai_default';
    $this->k_tai_conf['themeSets'] = array();
    //$this->k_tai_conf['themeSets']['jqm'] = ''; // jQuery mobile 一括
    // carrier 別の設定 (carrier をキーにして設定)
    //$this->k_tai_conf['themeSets']['android'] = '';
    //$this->k_tai_conf['themeSets']['iphone'] = '';
    //$this->k_tai_conf['themeSets']['ipod'] = '';
    //$this->k_tai_conf['themeSets']['windows phone'] = '';
     
    // 携帯用XOOPSテンプレートセット
    $this->k_tai_conf['templateSet'] = '';
    $this->k_tai_conf['templateSets'] = array();
    //$this->k_tai_conf['templateSets']['jqm'] = ''; // jQuery mobile 一括
    // carrier 別の設定 (carrier をキーにして設定)
    //$this->k_tai_conf['templateSets']['android'] = '';
    //$this->k_tai_conf['templateSets']['iphone'] = '';
    //$this->k_tai_conf['templateSets']['ipod'] = '';
    //$this->k_tai_conf['templateSets']['windows phone'] = '';
     
    // 使用テンプレート
    $this->k_tai_conf['template'] = 'default';
    $this->k_tai_conf['templates']['jqm'] = 'smart'; // jQuery mobile 用
     
    // <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', 'google.com');
     
    // 直接画像を表示するホスト名(後方一致)
    $this->k_tai_conf['directImgHosts'] = array('google-analytics.com', 'maps.google.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', '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;
    // docomo の端末IDを確認する間隔(秒)
    $this->k_tai_conf['docomoGuidTTL'] = 300;
     
    // リンクメッセージ
    $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['msg']['switchSmart'] = 'スマホスタイルへ';
     
    // アイコン
    $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'] = '';
     
    // <a> タグの href 属性の書き換えルール
    //$this->k_tai_conf['urlRewrites']['regex'][] = '';
    //$this->k_tai_conf['urlRewrites']['tostr'][] = '';
     
    // <img> タグの src 属性の書き換えルール
    //$this->k_tai_conf['urlImgRewrites']['regex'][] = '';
    //$this->k_tai_conf['urlImgRewrites']['tostr'][] = '';
     
    // 携帯対応レンダー設定 以上
    /////////////////////////////
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://bit.ly/1iJelt (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

モバイルコンテンツ向け google Adsense の利用 anchor.png Edit

  • googleAdsense.php を xoops_trust_path/class/hyp_common/ktairender に配置する。
  • configファイルを作成して任意のディレクトリへ配置してそのパスを hyp_preload.conf.php の $this->k_tai_conf['googleAdsense']['config'] に指定する。
    • configファイル(PHP ファイル) へは google Adsense の「モバイル コンテンツ向け AdSense > 広告ユニット」から「コードを取得」で表示されるコードのうち、$GLOBALS['google']['client'] と $GLOBALS['google']['slotname'] の部分を抜き出してください。
    • 例: xoops_trust_path/class/hyp_common/ktairender/adsenseConf.php
      1
      2
      3
      
      <?php
      $GLOBALS['google']['client']='ca-mb-pub-xxxxxxxxxxxxxxxx';
      $GLOBALS['google']['slotname']='xxxxxxxxxx';
    • hyp_preload.conf.php で config ファイルのパスを指定
      $this->k_tai_conf['googleAdsense']['config'] = 'xoops_trust_path/class/hyp_common/ktairender/adsenseConf.php';
Page Top

HTMLコメントによるコンテンツコントロール anchor.png Edit

特定の HTML コメントを使って、コンテンツの部分的なコントロールが可能です。

HypKTaiOnly - モバイルのみ有効
<!--HypKTaiOnly と HypKTaiOnly--> で囲んだ部分は、モバイル対応時のみ有効になります。
HypKTaiIgnore - モバイルは無効
<!--HypKTaiIgnore--> と <!--/HypKTaiIgnore--> で囲んだ部分は、モバイル対応時は完全に無視され、出力されません。
HypKTaiOptimized - モバイル最適化の無効
<!--HypKTaiOptimized--> と <!--/HypKTaiOptimized--> で囲んだ部分は、モバイル対応時の HTML タグ置換(最適化)は行われず、そのままの HTML 構造で出力されます。
Page Top

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

各モジュールのテンプレート内でも、Smarty変数の Smarty変数の $smarty.const.HYP_K_TAI_RENDER を使って、場合分けができます。('===' とイコールが3つである必要があります)

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

<{if $smarty.const.HYP_K_TAI_RENDER === 2}>
 スマートフォン(jQuery mobile 使用時)の場合のテンプレート
<{elseif $smarty.const.HYP_K_TAI_RENDER === 1}>
 携帯の場合のテンプレート
<{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
  • 携帯レンダラーでのpiCALの携帯対応について教えてください -- 通りすがりさんEdit 2009-09-16 (水) 12:38:03
  • つかっちゃう -- 通りすがりさんEdit 2010-04-07 (水) 19:53:30
  • すみません。素人で・・・ブロックIDの調べ方がわかりません。 -- 通りすがりさんEdit 2010-10-24 (日) 23:02:23
    • hypconf モジュールにて簡単に設定できるようになりました。ご活用ください。
  • iphoneとアンドロイドの場合に別のテンプレートに飛ばしたいのですが -- 通りすがりさんEdit 2012-02-04 (土) 17:07:24
    • 携帯用XOOPSテーマセット と 携帯用XOOPSテンプレートセット は、それぞれキャリア別に設定できるようになっています。上記の 設定(hyp_preload.conf.php) を参考にしてください。テーマセットは適用するテーマ、テンプレートセットは適用するDBテンプレートセット名になっています。DBテンプレートよりもテーマ下テンプレートが優先されますので、テーマ下テンプレートをご利用の場合はご留意ください。 -- nao-pon 2012-02-05 (日) 11:28: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) Powered by xpWiki
Counter: 56575, today: 1, yesterday: 5
Princeps date: 2008-06-23 (Mon) 23:32:59
Last-modified: 2015-02-16 (Mon) 16:01:25 (JST) (1590d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証 | SSLログイン

Register now! | Lost Password?



メインメニュー
付箋機能 (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

id.6:
通りすがりさん : : 15/02/16 16:01

hogehoge fugafuga

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



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

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

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

nao-pon
 

登録ユーザ数: 4606


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報