ニュース&ブログ


[baserCMS] jQuery Mobile でのスマホサイト制作の注意点

先日、フレームワークに『jQueryMobile』を使用したスマートフォン専用サイトを公開しましたが、『baserCMS』でスマホサイトを制作する際にいくつか問題点がありましたので参考までに記載します。

この記事は「baserCMS 1.6.15」に関する情報です。(2012.05.08追記)

Ajaxによるページ切り替えができない

『jQueryMobile』の売りでもある『Ajaxによるスムーズなページ切り替え』ですが、『baserCMS』のページコンテンツでは、『undefined』となります。(ブログのコンテンツでは問題なし)
色々調べましたが、原因が不明だったため『Ajaxによるページ切り替え』を諦め遷移を止めました。

「baserCMS 2.0.0」でも問題は解消されていませんでした。(2012.05.08追記)

Ajaxページ遷移を止める

下記のJSを『jquery.mobile-1.0.1』を読み込む前に記述します。

$(document).bind("mobileinit", function(){
	$.mobile.ajaxEnabled = false;
	$.mobile.pushStateEnabled = false;
})

カテゴリ名(ID)を取得できない

これは、『jQueryMobile』だけでなく『Smartphone』全体の問題ですが、「ContentsName」関数でページのカテゴリ名(ID)が取得できません。
また、『[baserCMS] 特定のカテゴリに条件を適応する方法』で書いたパッチを当てるとブログとメールフォームに関しても取得できなくなります。

「ContentsName」関数での出力結果

コンテンツ パッチあり パッチなし
ページ SmartphoneS Pages
ブログ SmartphoneBlogBlog 正常に取得できる
メールフォーム SmartphoneMailMail 正常に取得できる

そのため、baserCMSの「ContentsName(true)」関数(詳細な名称までを取得できる)とPHPの正規表現によるマッチングを行う「preg_match」関数を用いてカテゴリを特定しました。

「ContentsName(true)」でそのカテゴリに共通する文字列を洗い出す

まず、「ContentsName(true)」で詳細な名称までを取得し、そのカテゴリに共通する文字列を洗い出します。

baserCMS2 の場合は、「$baser」を「$bcBaser」に変更してください。
また、『[baserCMS2] スマホ・携帯サイトでカテゴリ名を取得』をあわせてご参照ください。(2012.05.08追記)

<?php $baser->ContentsName(true) ?>

「preg_match」と「ContentsName(true)」でカテゴリを特定

あとは「preg_match」関数で、共通する文字列をマッチングさせ、カテゴリを特定します。

<?php if (preg_match("/カテゴリに共通する文字列/", $baser->getContentsName(true))): ?>
そのカテゴリにだけに適用する内容をhtml等で記述
<?php endif ?>

訪問打ち合わせ対応可能エリア

【北九州市内】

八幡西区・八幡東区・若松区・戸畑区・小倉北区・小倉南区・門司区

【北九州市周辺地域】

遠賀郡(水巻町・芦屋町・遠賀町・岡垣町)・中間市・宗像市・鞍手郡(鞍手町・小竹町)・宮若市・福津市・古賀市・直方市・飯塚市・田川市・行橋市・京都郡(苅田町・みやこ町)・山口県下関市など

上記以外の地域も訪問での打ち合わせ対応が可能な場合がございます。
また、お電話とメールだけで打ち合わせが可能な案件につきましては、日本全国どこからでもご依頼を承ります。お気軽にお問い合わせください。

ホームページ制作無料お見積り(リアルタイム概算計算機能付き)

お問い合わせ