Serene Bach on the Prairie


ENTRIES

Amazon のリンクをモバイル対応にする(改)

以前、記事内に挿入した Amazon リンクをモバイル対応リンクに変換するスクリプト改変を公開しましたが、どうも最近 AWS から提供されるリンク表記が変更になったようです。このままだと今後登録したオススメアイテムのリンクがモバイル対応されないので、新リンク表記にも対応したコードを公開しました。変更をご希望の方は上記リンク先の記事をご参照下さい。

なお、本改変はプラグインではなくスクリプト改変ですので、問題が起きた場合も自己責任で解決する旨ご了承の上ご利用下さい。


Amazon のリンクをモバイル対応にする

変更履歴

2006-10-23T16:40:24+09:00
AWS から提供されるリンク表記の変更に伴い、変換処理を変更しました。少々どんくさいやり方をしているので、もっといいコードがあったらご教示頂けると嬉しいです…。

半年ほど前になりますが、Amazon アソシエイトプログラムで Amazon のモバイルストアにジャンプできるアフィリエイトリンクの提供を始めました。Serene Bach の『オススメ』メニューで利用しているアフィリエイトプログラムは Amazon ですので、普通に考えればオススメ商品にモバイル用リンクも利用できる、ということになります。が、モバイル用リンクは通常のリンクとアドレスが全く異なるので、PC 用に書いたアフィリエイトリンク付きの記事を携帯電話から閲覧しても自動的にモバイル用サイトに移動するようなことはありません。

そこで、Serene Bach の携帯電話用表示スクリプト(mb.cgi)を利用して記事を参照した際に、Amazon アソシエイトプログラムのリンクをモバイル用に変換する方法を考えてみました。ただ、調べたところどうしてもプラグインで実現する方法が見つからず、スクリプト改変になってしまいました。

ご要望があったので公開いたしますが、プラグインの導入に比べてスクリプト改変は格段に敷居が高いので、以下の注意をよくお読み頂き、ご理解頂いた上でご利用下さい。

  1. 本改変の変換対象は、『オススメ』メニューから「新規記事に利用する」処理によって記事内に挿入したアフィリエイトリンクのアドレスのみです。通常のアフィリエイトリンクには表示先を微妙に変えるようなカスタマイズも存在するようですが、そういったカスタマイズを施したリンクに本改変による変換を適用した場合の動作は保証いたしません。
  2. 本改変は Serene Bach 2.03R 〜 2.07D にて動作を確認しています。2.02R 以前、および将来リリースされるバージョンでは正常に動作しない可能性があります。また、導入したプラグインや本件とは別に導入した改変内容、Amazon 側の仕様変更等によって正常に動作しない可能性もあります。
  3. Amazon アソシエイトプログラムでモバイル用リンクを利用するには、既に Amazon アソシエイト ID を取得済みであっても新たにモバイル用リンクの利用申請と審査が必要だそうです。モバイル用リンクを表示するために必要な手続きは本件とは別にご自身で行って下さい。また、上記のような事情がありますので、オススメの表示にご自身の Amazon アソシエイト ID をご利用でない場合は本改変を実施することはご遠慮下さい。
  4. その他、本改変によって生じたいかなる不具合も、こちらでは責任を負いかねますし、フォローもいたしません。全ての問題についてご自身で対応できる方だけ実施して下さい。また、本件に関するお問い合わせ・ご質問についても、技術的な観点からのご指摘以外は対応できかねますのでご了承下さい。
続きを読む>>

携帯電話用テンプレートの変更

意外にご存じない方も多いようなのですが、Serene Bach には標準で携帯電話用表示が実装されています。admin.cgi や sb.cgi とともにある mb.cgi というスクリプトにアクセスすると、携帯電話に特化されたテンプレートで記事が表示されます。携帯電話用表示では、日本の携帯電話向けに文字エンコーディングが Shift_JIS に変換表示され、記事の詳細ページでは記事やコメント・トラックバック一覧を分割してページ表示する等の機能が備わっています。

テンプレート設定画面

ところで、既に携帯電話用表示を活用されている方で、デフォルトテンプレートについて不満があるような方もあるかと思います。管理画面を注意深く見ている方なら、スクリーンショットの通り、テンプレートリストに携帯電話用テンプレートを登録すれば自分でカスタマイズした携帯電話用テンプレートを適用することが可能になるということには既にお気づきかもしれませんが、携帯電話用のデフォルトテンプレートは管理画面から参照できるようになっていないので、どうやって編集したらよいのかお困りの方もいらっしゃるでしょう。

実は、携帯電話用デフォルトテンプレートは lib/resource/default_mobile.html に格納されています。新しくテンプレート編集枠を作成して、ここにあるデータをコピーして上記画面の携帯用の部分で選択すれば、携帯電話用テンプレートを管理画面から編集することができるようになります。携帯電話用テンプレート固有の独自タグについては、同梱のヘルプのテンプレートヘルプにある携帯電話用テンプレートに記述されています。もちろん、通常のテンプレートにある独自タグも記述自体は可能です。

ただし、通常テンプレート用の独自タグで携帯電話用デフォルトテンプレートに書かれていないものは、携帯電話用表示に使用される場合のことが殆ど考慮されていません。例えば、最新コメント・トラックバック等の各種リンクリストは、携帯電話用テンプレートに記述しても PC 用ページへリンクされます。

また、携帯電話用表示を利用される方で Serene Bach の最新版をお使いでない方は、2.03R にアップデートすることをお勧めします。2.01R では、携帯電話表示でページ数設定に関係なく全記事のリストが表示される不具合があります。


テンプレート編集枠の新規作成

Serene Bach 2.04R 以降から、sb 開発研究所にて配布されているテンプレートメーカーというプラグインにて、テンプレートの新規作成/テンプレートパッケージの作成/制作者情報の編集などの機能がサポートされました。本記事の内容自体はまだ有効ですが、より気軽にテンプレート作成をされたい方は上記プラグインを利用されるのがよいと思います。

Serene Bach 2.03R 現在、テンプレートの編集枠を増やす場合には、現在登録されているテンプレートリストのどれかの編集画面に入って別名で保存をする必要があります。が、この場合、新しく作ったテンプレート編集枠に枠の元になったテンプレートの制作者情報がコピーされてしまうという難点があります。特に Serene Bach ではデフォルトテンプレートにも制作者情報があるので、新規インストールの場合には制作者情報のないテンプレート編集枠が作れないことになってしまいます。

テンプレートの制作者情報は単に管理画面で参照できるだけで、例えばそのテンプレートからパッケージ作成をする場合に意図しない情報が混入する等の問題があるわけではありません。ただ、自分が一から作ったテンプレートの制作者情報が他人の表示になるのもあまり気分のよいものではないでしょう。

実は、この問題には現在でもわりと単純な解決方法があります。それは、内容が空のテンプレートパッケージをインポートすることで新規作成の代わりにするという方法です。

そのうち本体側で何らかの対応がされるだろうとは思いますが、それまでの一時しのぎということで、新規作成のための空のテンプレートパッケージの作成方法をアップしておきます。

続きを読む>>

テンプレートの内容を公開ページに反映させずに確認する

本件は sb の頃から可能なテクニックで、テンプレート配布サイト等で何気なく利用されているのも見かけますが、意外に知られていないようなのでエントリーしておきます。

大抵の方はテンプレートの編集作業を行った後、ページの再構築をする前に「確認」アイコンをクリックして表示状態を確認されるかと思いますが、「確認」アイコンをクリックした結果見られるページは常にトップページ相当になっています。

しかし、トップページだけでは、個別記事テンプレートや、個別記事だけで表示されるカスタマイズを確認したい場合には不都合ですし、表示内容が変わった時の不具合に気づかずに公開してしまうこともあります。通常の方法だと、ここで一旦該当テンプレートを「利用テンプレート」に選んでチェック、ということになりますが、特に保存形式を individual にしている場合、個別ページを反映するためにはページの全再構築をしなければならないので大変手間がかかります。しかし、実は Serene Bach ではトップページ以外の編集内容も動的に確認可能です。

個別記事のテンプレートを確認するには、まずテンプレートメニューで対象のテンプレートをプレビュー表示します。次に、表示したページのアドレスバーに表示された ?tid=XXXXXX はテンプレートID)の後ろに &eid=YYYYYY は存在する記事の記事ID)を記述し、リターンキーを押下して再度ジャンプします。例えば、このサイトで Serene Bach のデフォルトテンプレートである Summer Breeze を使ってこの記事を表示する場合にはこんな風になります。

なお、このテクニックでは eid の部分を cid (カテゴリー)や pid (ユーザープロフィール)にしたり、&month=YYYYMM (月別表示)、&day=YYYYMMDD (日別表示)、&page=X (ページ表示)等、sb.cgi を使って動的表示する場合のパラメータをどれでも指定できます。特定の画面でうまく表示できない場合の修正確認等にも使えると思いますので、いろいろやってみて下さい。