環境によってblogIDが違う場合にuser.jsを共通利用するためのblogIDの持たせ方検討

鈴木さんがテスト環境と本番環境で構成などがちがって、ブログIDが異なるときどうしよう??というのを書かれていたのを読みましたので少し考えてみました。

テスト環境と本番環境でブログIDが異なるときのuser.js(MTAppjQuery)の安全な書き方 | riatw.me
http://riatw.me/blog/mtappjquery_problem.html

記事を見る限り、user.jsでどうにかしたそうだったのでそういう事情があるんだろう、とは思うのですがとりあえずその事情はないものとして考えてみます。

たとえば、bit partではconfigモジュールみたいな、各テンプレートで必ず読み込むモジュールを設定しておいて、そこでblog名ベースなものを変数名にして、blogIDをセットしています。

<mt:SetVars>
blogid_website=10
blogid_feature=22
</mt:SetVars>

blogIDを使いたいときはその変数名をかならず利用するようにしています。
そうすることで、万が一blogIDが変わってしまってもモジュールの指定を変更することで対応ができるためです。
(ブログが100個とかあるとそれはそれで大変なきはしますが・・・)

多分今回はblogIDが違うのでこういったモジュールがあったとしても、モジュール内容に変更があったときに、開発環境から本番環境へとコピペしにくくなってしまうので、この方法は使いにくいかな、と思います。
(共通で読み込むモジュールに、blogID設定用のモジュールを読み込む用にしたりすれば回避は出来ると思いますが)

ということで、次はMTAppjQueryのプラグイン設定を使う方法を考えてみます。

ここも設定を開発環境から本番環境へコピペすることが多いと難しいかも知れませんが、データベースを揃えるとかいう可能性は低いとおもいますので、設定に書く方法でためしてみます。

本番環境のMTAppjQueryプラグイン設定、「<head></head>タグ内」の「変数 mtapptophead に追加(<head>内の最初)」に以下の様に書きます。

<script>
var mtappblogidentifier = {
    website_id: 1,
    blog_id:2
}
</script>

開発環境のMTAppjQueryプラグイン設定、「<head></head>タグ内」の「変数 mtapptophead に追加(<head>内の最初)」に以下の様に書きます。

<script>
var mtappblogidentifier = {
    website_id: 13,
    blog_id:5
}
</script>

上記のようなかんじで書いておければ user.js でblogIDを使う際に以下の様につかえるかとおもいますので、user.js自体を開発・本番環境で同じ物を利用できるんじゃないかと思います。

if(mtappVars.blog_id == mtappblogidentifier.website_id ){
  alert("websiteです");
}else if(mtappVars.blog_id == mtappblogidentifier.blog_id){
  alert("blogです");
}

普段自分がやるときはこういう使い方はまずしないのですが、考えるきっかけになりました。


Comments

comments powered by Disqus