グローバルメニューに外部URLを設定すると、スマートフォンサイトでURLがリンクが正常に生成されない
tksy > グローバルメニューに外部URLを設定すると、スマートフォンサイトでURLがリンクが正常に生成されない @ 2014/4/29 17:39 |
---|
■ BaserCMSのバージョン:3.0.2
■ レンタルサーバー名:さくらスタンダード ■ スマートURLの利用: ON ■ 設置フォルダ: サブフォルダ ■ 利用しているデータベース: MySQL ■ PHPスキル(自己評価): D(Java等は読めるがPHPは専門外) メニュー編集のリンクURLにて外部URLを設定しています。 このとき、PCサイトでは正しくリンクが機能するのですが、スマートフォンでは外部サイトへのリンクが正しく機能しません。 http://hogehoge/fugafuga が shttp://hogehoge/fugafuga のように「s」が付加されてしまいます。 で、使用中レイアウトのLayouts/smartphone/default.php の該当箇所と思われるところに <?php $this->BcBaser->element('global_menu') ?> とあったのでElements/global_menu.phpをいろいろ編集したのですが、 スマートフォンで確認しても何も変化無しでした。 (グローバルメニューが全部表示されないように修正しても、PCのみの反映でスマートフォンで変化無し) テーマは「Bootstrap baserCMS バージョン:2.0.0」です。 リンクURLに「s」が付加される事自体はlink呼び出し時の第二引数で$prefixが付いているためだと推測したのですが、 それ以上の事が分かりませんでした。。。 よろしくお願いします。 |
n1215 > Re: グローバルメニューに外部URLを設定すると、スマートフォンサイトでURLがリンクが正常に生成されない @ 2014/5/1 14:06 |
---|
tksy 様
こんにちは。 2点に分けて説明させていただきます。 ●スマートフォン閲覧時にglobal_menu.phpの変更が反映されない件 ------------------------------------------------------ こちらはテンプレートファイルの優先順位の仕様ですね。
としてエレメントを読み込むと、baserCMSは下記の順でテンプレートを検索します。 ▼クライアントがPCの場合 1.テーマのElementsディレクトリ以下の該当ファイル app/webroot/theme/bootstrap_baser/Elements/global_menu.php 2.baserコアの該当ファイル lib/Baser/Baser/View/Elements/global_menu.php ▼スマートフォンの場合 1.テーマのElementsディレクトリにあるsmartphoneディレクトリ以下の該当ファイル app/webroot/theme/bootstrap_baser/Elements/smartphone/global_menu.php 2.baserコアのスマートフォン版の該当ファイル lib/Baser/Baser/View/Elements/smartphone/global_menu.php このため、PC版に用意したglobal_menu.phpは利用されないようになっています。 (スマートフォン版が見つからなければPC版も探してほしいとは思いますが) 参考)ファイル読み込みの優先順位 http://basercms.net/manuals/3/programmers/3.html ▼解決策 テーマディレクトリにスマートフォン用のglobal_menu.phpを用意します。 app/webroot/theme/bootstrap_baser/Elements/smartphone/global_menu.php PC版と同じものを使いたければ、単純にファイルをコピーしてもいいですし、下記のようにPC版のファイルをインクルードする形でも構いません
●外部サイトのURLの頭にprefixがついてしまう件 --------------------------------------------------------- 再現を確認しました。 根本的には、baserコアのBcBaserヘルパーのlinkメソッドにおける、外部URLの取り扱いを改善すべきと思います。 また、PC版トップのURLの扱いがテンプレートに漏れ出しているのもあまり好ましくないですね。 ただ修正するとしても次のバージョンになるので、 暫定の解決策としてはテーマのほうで手直しするしかなさそうですね。 29行目〜36行目付近
こちらを書き換えて外部URLを処理する分岐を追加します。 ※
Twitter: @n_1215 |
tksy > Re: グローバルメニューに外部URLを設定すると、スマートフォンサイトでURLがリンクが正常に生成されない @ 2014/5/1 16:11 |
---|
n1215様
回答ありがとうございました。 リンクの不正状態は解決されました! たしかに、・・・Elements/smartphone/global_menu.php が存在していなかったため、コアのglobal_menu.phpが使用されていました。 |