Re: Concrete5の導入について

2015年4月17日 at 20:56

mukitaroさん

③デバイスによる表示切替について

こちらだけの回答?になりますが、

標準で機能がついているようです。
/concrete/src/Routing/DispatcherRouteCallback.php

ここに、「Mobile_Detect」というクラスが用意されていますので、
$md = new \Mobile_Detect();
if ($md->isMobile()) {
$this->addHeaderItem('<meta name="viewport" content="width=device-width,initial-scale=1"/>');
}


といった利用方法があるようです。

テーマの切り替えも、オリジナルのソース内に記述があるようで、
(/concrete/src/Routing/DispatcherRouteCallback.php)
// Mobile theme
if (Config::get('concrete.misc.mobile_theme_id') > 0) {
$md = new \Mobile_Detect();
if ($md->isMobile()) {
$mobileTheme = Theme::getByID(Config::get('concrete.misc.mobile_theme_id'));
if($mobileTheme instanceof Theme) {
$view->setViewTheme($mobileTheme);
}
}
}


と、Configでモバイル用のテーマを宣言して、デバイスタイプで切り替えているロジックがあるようです。

自分で試した訳ではないので、実際に動作するかは、未確認ですが、ご参考になれば・・・