■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

ユーザーエージェント毎に表示ページを切り替える方法

roberto55 > ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/19 8:11
お世話になっています。すごく気に入って使わせて頂いています。

そこで、現在独自にユーザーエージェント毎に表示させるページを切り替えるように改造をしているのですが、どうしても1箇所つまづいています。

config/baser.php を修正してユーザーエージェント毎のトリガーは仕込みました。

config/bootstrap.php の修正もできているのですが、新しく追加したものがリダイレクトを繰り返します。

現在の携帯 /m/ のようにディレクトリ指定まではできているのですが

指定はできるものの、例えば /s/s/s/s/s/s/s/s/・・・ のように無限にリダイレクトを繰り返しているようです。

どこを修正すればよいのでしょうか?

よろしくお願いします。
arata > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/19 13:58
こんにちは!けっこう独自のカスタマイズされてるんですか?
リダイレクト動作は htaccess でも制御されてる部分があるので、ひょっとしたら関係してくるかもしれませんね。
できれば変更内容のソースがあると、何か判るかもしれません。

あと、例えば bootstrap.php は、
/app/config
/baser/config
みたいに、複数の箇所にあるものもあるので、ファイル情報を書く場合には、どちらのものか判るように書いてあると、より正確な回答を導き出しやすくなると思いますー。

■ 不明点解消できるかも。逆引きガイドもあります baserCMS公式wiki
■ Twitter:@arata

ryuring > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/19 14:11
こんにちは。

リダイレクトの処理は、baser/config/bootstrap.php の159行目あたりにあります。

リダイレクトをさせる場合には、リダイレクトを止めるという処理が必要になります。

モバイルの場合は、128行目あたりでその判定を行っています。

		$parameters = explode('/',$parameter);
		if($parameters[0] == $mobilePrefix) {

			$parameter = str_replace($mobilePrefix.'/','',$parameter);
			$mobileOn = true;


$parameter に、URLが入ってきますので、そのURLの先頭が m かどうかを判別し、m の場合はリダイレクトさせないという感じです。

app/config/bootstrap.php でも、$parameter は参照できますので、バージョンアップに耐えうるようそちらに処理を書かれた方がよいかと思います。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

roberto55 > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/19 19:36
ありがとうございます。

うまく行きました。

しかし、飛んだ先の /s がありませんというページになってしまいます。

これに対応するにはどのようにすれば良いのでしょうか?
ryuring > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/19 22:31
こんばんは。

やりたい事をもっと具体的に教えて頂けますか?

標準のモバイルページ機能の場合、
/baser/config/routes.php でモバイル用のルーティング定義を行い、
PageController でモバイル用のメソッドを用意しています。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

roberto55 > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/20 6:20
お返事ありがとうございます。

完全に携帯毎にユーザーエージェントを見て、異なるページを出力させたいのです。

アドバイスをもらいました /baser/config/routes.php 、PageController をもう一度見直してみたいと思います。

pages_controller.php で定義されているのでしょうか?

ちなみに テンプレートフォルダ にはすでに /s に対応するように任意のフォルダを設置してますので、ルーティング等がうまく行けばサクっと行きそうな感じではあります。

また「 /s がありません」的なページはPC用のテンプレートで表示されています。。。

よろしくお願い致します。
roberto55 > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/23 12:56
やはり苦戦を強いられています。

pages_controller.php だけではなさそうですね。。。


/s のエラーページがPC版のままなのが気になります。

アドバイスをお願い致します。
ryuring > Re: ユーザーエージェント毎に表示ページを切り替える方法 @ 2011/5/23 16:01
こんにちは。

ユーザエージェント別の振り分け実装は確認部分が多岐に渡ります。

どこで苦戦されているのか?どういったアドバイスが必要なのか?

教えて頂けますか?

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
21 人のユーザが現在オンラインです。 (21 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 21