こんにちは。基本的なことかもしれませんが色々調べたんですが上手く動かなくて困ってます。宜しくお願いします。
MobileConverter(2.0)を使用時にPC用ドキュメントにテンプレート変数でMobile用のテキスト欄を設けているのですが
docomoのテンプレートでCSSが反映されません。MODxのバージョンは1.0.2j。docomoのテンプレートは下記です。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10/dtd">
<html xmlns="http://www.w3c.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>[(site_name)] | [*pagetitle*]</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>
[*mobile*]
</body>
</html>
docomoなのでCSSはインラインで指定しています。
例えば、<div style="background-color:#665544;">あああ</div>とかです。
コンテントタイプを追加してtext/htmlをapplication/xhtml+xmlとすればCSSは反映されます。
ですがその場合は、PC側から見れなくなります。
.htaccessにAddType application/xhtml+xml .htm .htmlを入れても変化はありません。
結構探したのですが良い手が見つかりません。
リソースをPC用とMobile用に分けるしかないんですかね。
宜しくお願いします。
MobileConverter 【解決済み】
Re: MobileConverter
コード: 全て選択
$type= !empty ($this->contentTypes[$this->documentIdentifier]) ? $this->contentTypes[$this->documentIdentifier] : "text/html";
header('Content-Type: ' . $type . '; charset=' . $this->config['modx_charset']);
Re: MobileConverter 【解決済み】
yamaさん ご返信ありがとうございます。
とりあえずPHPは触ったこともなかったのでプラグインの内容は見たこともありませんでしたが
仰るとおり下記の部分をapplication/xhtml+xmlに変更したらCSSが反映されました。
すごく勉強になります。ありがとうございました。またご質問させてもらいます。本当にありがとうございました。
$type= !empty ($this->contentTypes[$this->documentIdentifier]) ? $this->contentTypes[$this->documentIdentifier] : "text/html";
header('Content-Type: ' . $type . '; charset=' . $this->config['modx_charset']);
とりあえずPHPは触ったこともなかったのでプラグインの内容は見たこともありませんでしたが
仰るとおり下記の部分をapplication/xhtml+xmlに変更したらCSSが反映されました。
すごく勉強になります。ありがとうございました。またご質問させてもらいます。本当にありがとうございました。
$type= !empty ($this->contentTypes[$this->documentIdentifier]) ? $this->contentTypes[$this->documentIdentifier] : "text/html";
header('Content-Type: ' . $type . '; charset=' . $this->config['modx_charset']);
Re: MobileConverter
コア改造でよければ
というコードをheader関数の直前に置くとよさそうに思います。(コア改造しなくても、たぶんプラグインで書き換えできると思いますが)
コード: 全て選択
$ua=$_SERVER['HTTP_USER_AGENT'];
if(stristr($ua,'DoCoMo')!==false) $type='application/xhtml+xml';
Re: MobileConverter
呼ばれたみたいなので
ContentTypesの影響による動作の違いはまったく想定していませんでした。
この設定もMobileConverter側で持ったほうがよさそうですね。
どういう風に実装しようかなぁ。
なるべく早く出したいですが、ちょっと本業が忙しくて少し先のリリースになると思います…。
あと、とりあえずはyamaさんの案で問題はしのげるとは思います。
ContentTypesの影響による動作の違いはまったく想定していませんでした。
この設定もMobileConverter側で持ったほうがよさそうですね。
どういう風に実装しようかなぁ。
なるべく早く出したいですが、ちょっと本業が忙しくて少し先のリリースになると思います…。
あと、とりあえずはyamaさんの案で問題はしのげるとは思います。
Re: MobileConverter
yamaさん soushiさん お忙しい中、ご返信ありがとうございます。
すみません。プラグインやPHPについて全く知識がないです。
$type= !empty($modx->contentTypes[$modx->documentIdentifier]) ? $modx->contentTypes[$modx->documentIdentifier] : "text/html";
header('Content-Type: ' . $type . '; charset=' . $mcConf['charset'],true);
これを
$type= !empty($modx->contentTypes[$modx->documentIdentifier]) ? $modx->contentTypes[$modx->documentIdentifier] : "text/html";
$ua=$_SERVER['HTTP_USER_AGENT'];
if(stristr($ua,'DoCoMo')!==false) $type='application/xhtml+xml';
header('Content-Type: ' . $type . '; charset=' . $mcConf['charset'],true);
ということで宜しいんですかね?
これでちゃんと動いています。
お忙しい中すみませんが宜しくお願いします。
すみません。プラグインやPHPについて全く知識がないです。
$type= !empty($modx->contentTypes[$modx->documentIdentifier]) ? $modx->contentTypes[$modx->documentIdentifier] : "text/html";
header('Content-Type: ' . $type . '; charset=' . $mcConf['charset'],true);
これを
$type= !empty($modx->contentTypes[$modx->documentIdentifier]) ? $modx->contentTypes[$modx->documentIdentifier] : "text/html";
$ua=$_SERVER['HTTP_USER_AGENT'];
if(stristr($ua,'DoCoMo')!==false) $type='application/xhtml+xml';
header('Content-Type: ' . $type . '; charset=' . $mcConf['charset'],true);
ということで宜しいんですかね?
これでちゃんと動いています。
お忙しい中すみませんが宜しくお願いします。