MODxで携帯サイトを作るには?その3 | MODxでハマるありがちな罠と解決法

MODxで携帯サイトを作るには?その3

前回作成した、自作プラグインの仕様はこんな感じでした。

・topIDドキュメントに来たアクセスはユーザーエージェント判定し、携帯からであれば、mobileIDのドキュメントに301リダイレクト。
・mobileIDコンテナに含まれているドキュメントは、携帯からのアクセスであれば、機種判定してくれる絵文字変換スクリプトを通して、半角カナ変換を行う。

この方式であれば、例えば「/mobile/」以下を携帯専用にして運用するのには何も問題ないですし(ユーザーエージェントによる切り替えが出来ないにしても本格的なサイトを作らない限り、絵文字だけでもコンバートかかればそれほど大きな問題にはならない)、MobileConverterが抱えている、「動的テンプレート切り替えによるキャッシュの強制無効化」や、「ユーザーエージェント以外の要素によるテンプレート切り替え判定不可」をほぼ解消できたと思ってたんですが、ここで大きな壁にぶち当たりまして。

複数ユーザーによる運営管理されたサイト(要するにマルチユーザーなBLOGサイト)をMODxでやろうとしたら、上記の仕様ですと、ユーザーさんには「PC用のページと携帯用のページ二つつくってね」という非常にバカバカしい運営になってしまうことになってしまう。携帯対応したCGMなサイトをMODxでやろうと思ったら、ここをクリアにする必要がでてきました。

かといって、MobileConverterをTOPページから効かせて、アクセス負荷の高くなる、TOPページ、携帯TOPページのキャッシュを捨てる訳にも行かない。

ということで、取った方法です。作ったこれらも公開してもいいのですが、作者の方々には許諾とっていません。勝手に作っただけです。

・.htaccessにて、以下のように記載し、携帯は/mobile/振り分ける。
# DoCoMo
RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC]
RewriteRule ^$ http://www.*****.jp/mobile/ [R]

# SoftBank
RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SoftBank [NC]
RewriteRule ^$ http://www.*****.jp/mobile/ [R]

# au
RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC]
RewriteRule ^$ http://www.*****.jp/mobile/ [R]

・/mobile/以下の各BLOGへの誘導メニューまでは、携帯専用ドキュメントで構成し、当方で作ったプラグインを使用。

・PCと携帯、両方見せるBLOG個別ページは、MobileConverterを拡張して使用。

です。MobileConverterは、改造して以下の仕様にしました。

・パラメータとしてUserAgent1の下にsourceTemplate1sub1とswitchTemplate1sub1等、パラメータで一つのユーザーエージェントの下に複数のテンプレート変換の組み合わせを持たせられるようにする。
条件としては、アクセスが、DoCoMo(例)からであれば、
 アクセスしてきたドキュメントのテンプレートがsourceTemplate群に一致した場合、switchTemplate群に、テンプレートを切り替え。
 一致しなかった場合は、DoCoMo用の親
switchTemplateにセットされたデフォルト用変換テンプレートに切り替え(これは本家の仕様にあったパラメータを使用)
・プラグインからの出力の際に、絵文字変換と各半角変換を行うようにする。

これにより、ユーザーエージェントとドキュメントに設定したテンプレート単位で携帯テンプレ-トを切り替えれるようになるので、カスタムテンプレート変数もレイアウトできますし。「各ドキュメント毎に携帯データとPC用データを持たせて、それぞれ用にレイアウトしたテンプレートを切り替える」ことが可能になりました。但し、キャッシュ問題はMobileConverter経由の内容に関してはご注意。ちなみに、テンプレート変換がかからない場合はキャッシュは効いてます。

携帯がメインのサイトであれば、逆転の発想で、携帯用にサイトを構築して、MobileConverterでPCだったらPC用のテンプレートを使うの方がいいのかもしれません。

公開は許諾を取っていませんので出来ませんが、MODxで携帯サイト出来ないかどうか悩んでいる方や、作っている方のヒントになれば。

 


作成日
2010.01.07 (木)
最終更新日
2010.01.07 (木)
作成者
Takayuki Hirosawa
  • speed_fish 引っ越ししてからつなげていなかったとても古いnetgearのnas。今日つなげようとしたらlan経由で全くつながらず。windows10が勝手にsmb1を切り捨ててたと判明するまでに3時間。httpでもpingでもつながるのにos… https://t.co/Ejd7om16t0 2018-04-24 11:41:09
  • speed_fish modxからevoが切り離しかー。まあrevoとはもう別物感溢れてたし良いんじゃないでしょうか。やりやすくなるといいなー。 2017-04-28 20:33:09
  • speed_fish Chromeの57から頻発している、ERR_BLOCKED_BY_XSS_AUDITOR。試してみたけど、hidden含め入力項目にJavaScriptが入っても発生。HTTPS化していないフォームはまあ当然発生かな。 2017-04-10 18:00:57
  • speed_fish modxサイトをcloudflare化でeFormで引っかかる。中身みたらsite_urlでリファラーチェックしてました。ssl flexibleを使おうとしてたので、eFormを改造。パラメータにsiteurlを追加しましたとさ。#modx #cloudflare #eform 2017-03-04 00:44:09
  • speed_fish メモメモ。MODxでAMP対応するスニペット。 GETのURLが気に食わないのでリライトかな。 https://t.co/Oa9qzQ5dOr 2017-02-03 01:10:54