[ カテゴリー » アップデート ]

1.8.5の差分です。

category-icon

 こんばんは、martinです。JavaScript関連で、IE8で不具合が見られたので、それを修正したものを添付しておきます。

 IE8だとコメントやコメントフォーム時のスクロールが、意図したように動いていなかったようです(おそらくIEはすべて)。後、FirefoxのFirebugで見つけたNoticeレベルの警告があったので、それも修正しています(Noticeレベルは、まだありそうですが・・・)。

 4つをひとつにまとめたものを添付しておきます。modulesディレクトリのpages.inc.phpがひとつ。jsディレクトリのが3つです。

添付ファイル: DIFF_185_090911.zipattachedIcon 

— posted by martin at 12:25 am   commentComment [2]  pingTrackBack [0]

v1.8.5の差分アップデート

category-icon

 こんばんは、martinです。先週、ppBlogの最新版であるv1.8.5をリリースしました。不具合のご指摘がありましたので、それらを修正したファイルを3つ添付しておきます。コメントhttp://p2b.jp/1251997859#CID1252353524も参考に。

 ひとつは、amazon_associate.phpの中で用いている$pageという変数がすでにグローバル変数として登録されていたので、それに伴うと思われる不具合に対処したものです。

 あと、IEのCSS2対応が弱いために、ppBlogの方で救済処置を施していましたが、IE8ではCSS2のサポートは十分なために、この処置を省きました。

 あと、記事作成画面でのプレビュー機能を若干修正しました。

 以上3つの最新版を添付しておきます。

添付ファイル: utils.phpattachedIcon  amazon_associate.phpattachedIcon 

— posted by martin at 05:22 am   commentComment [8]  pingTrackBack [0]

ppBlog1.8.5リリース

category-icon

 こんばんは、martinです。最新版のリリースです。前回のバージョンが1.8.3だったので、順当に行けば、v1.8.4ですが、「イヤよ」じゃ語呂合わせが今イチだし、奇数好きなのでv1.8.5とします。それなりに書き換えたファイルも多いですし。ppBlogとは直接関係ないですが、昨日でインターネットは40歳だそうで。自分より年上とは知りませんで。WWWLink とは別ですね。

 主な変更点は以下の感じです。

  1. amazonアソシエイトの更新に伴うスクリプトの書き換え。前回の記事Link
  2. ページ作成画面で、PHPタグ(<?php ... ?>)や独自のスタイル記法([style]...[/style])が使えるようになった。このコメントLink も参考に。
  3. JavaScript周りで、変数宣言をみっちりやったり、GoogleのChromeでのスクロールがおかしかったのを修正したり等々。
  4. モバイル閲覧時に、古い記事のコメントが表示されないのを修正。
  5. 記事アクセスランキングのネイティブサポートなど。http://p2b.jp/1250196829Link

あたりですかね。バグ報告には挙がりませんが、個人的に色々気になるところもちょこちょこ修正してます。

 JavaScriptに関してですが、主にFirefoxやChromeでバグフィックスをしていて、IEの存在をすっかり忘れていました。そして、昨日IEでの動作チェックをしないままリリースしたら、IEでいきなりJSエラーが出るという始末(--) 原因は、oParts.jsで使用したwindow.hasOwnPropertyでした。なので、この部分は、

Object.prototype.hasOwnProperty.call(window, 'opera');

で回避。うむ。なので、昨日のバージョン185_090903をダウンロードされた方は、oParts.jsが変わっていますので、IEでエラーが出るようであれば(具体的には、例えばログインアイコンをクリックしても、ダイアログがにょろっと出てこない)、最新のoParts.jsに入れ替えて下さい。

 後、更新PINGの送信先として、Ask.jpさんにも送るようにしていましたが、最近どうもPING送信に失敗するなぁ、と思って調べたら、以下のようでした。お疲れ様でした。

askjp

なので、このAsk.jpさんは、初期リストから削除しています。尚、更新PINGサーバーは、管理画面の「環境設定」→「更新サーバーの管理」で追加したり、削除したりできます。

 前バージョンとの差分とoParts.jsを添付しておきます。既存の上書きで良いです。

添付ファイル: DIFF183_185.zipattachedIcon  oParts.jsattachedIcon 

— posted by martin at 02:10 am   commentComment [9]  pingTrackBack [0]

アマゾンのProduct Advertising APIに対応させる

category-icon

 こんばんは。2009年8月15日からアマゾンのリンク作成用API(Product Advertising API, 旧称:AmazonアソシエイトWebサービス)が署名認証を含まないリクエストを一切処理しなくなりました。この影響で、ppBlogでの既存のアマゾンタグやアマゾン検索が動かなくなっています。なので、それに対応させるための書き換えを遂行しました。

 具体的な処理の流れは、もやし日記LinkIMHOLink が大変参考になりました。アマゾンサイトにある説明Link を一度読んで理解できる人はそういないだろうなぁ。

 このアマゾンのProduct Advertising APIですが、PHPのみで対応させるとなるとサーバー環境によっては実装が難しいかもしれません。基本的には、PHP5の環境でないと気軽に動きません。今や、PHP4の公式サポートも終了し、多くのレンタルサーバーではPHP5を提供していると思うので、さほど問題になることはないかも、とは思いますが。

 どうしてPHP5が必要かというと、アマゾンのこのサービスは、sha256Wアルゴリズムのハッシュを生成する必要があるからです。PHP5なら、hash_hmac関数Link が使えます。じゃ、PHP4な環境ではどうするか?もし、PHP4の環境でmhashライブラリーを組み込んでいるならOKです。このmhashライブラリー、非ウィンドウズなサーバー環境なら、最初から実装している気はします。ちなみに、自分のノートに構築したWindows下のXAMPPG環境では、mhashはデフォルトでは有効でなかったです(libmhash.dllを有効にすれば良いんでしょうけど)。

 この部分の処理は以下のようにしています。

 /* 
      PHP4でsha256ハッシュを生成するための処理。mhashが必須。
      RFC 2104 HMAC implementation for php.
      source:: http://www.php.net/manual/en/function.mhash.php
 */
if(!function_exists('hash_hmac')){ // hash_hmac()関数はPHP4にはない
 if(function_exists('mhash')){
  function sha256($data = ''){
   return bin2hex(mhash(MHASH_SHA256, $data));
  }
 } else $out .= '<p class="alert">mhashライブラリーのサポートがないようです。サーバーの管理者にお問い合わせを。</p>';

 function hash_hmac($algo, $key, $data, $raw_output = FALSE){
  $b = 64; // byte length for sha256
  if(strlen($key) > $b){
   $key = pack("H*", $algo($key));
  }
  $key  = str_pad($key, $b, chr(0x00));
  $ipad = str_pad('', $b, chr(0x36)); $ipad ^= $key;
  $opad = str_pad('', $b, chr(0x5c)); $opad ^= $key;
  $hmac = $algo($opad . pack("H*", $algo($ipad . $data)));
  if($raw_output){
   return pack("H*", $hmac);
  } else return $hmac;
 }
}

 ppBlog独自の既存のアマゾンタグを修正しないといけないかなぁという懸念もあったのですが(そうすると過去のログを修正する必要がある)、その必要なかったです:) この新しいAPIに対応させるには、これから添付するamazon_associate.phpmodules/amazon.inc.phputils.phpとで既存のやつを上書きすれば良いです。その後、管理画面の「各種ツール」→「アマゾンアソシエイト」で、新たに取得したアクセスキーとシークレットキーなどの設定をします。最初は、「変数が設定されていないよー」といったppBlog Noticeが出るかもしれませんが、設定をすすめていけばOKです。そのスクリーンショットを載せときますね。

amazonAPI
規定のジャンルの指定も出来るようにしてます。

 この画面にもあるように、従来のアソシエイトタグ(ppblog-22とか。トラッキングID)だけでは、もはや動きません。アマゾンAPIを利用されたい方は、アマゾンのサイトLink で、このAPIを利用するための2つのキーを入手して下さい。

 ちなみに、この新しいAPIに対応したデモサイトを作りました。基本的には、amazon_associate.phpでやってる処理と同じです。

 →Amazon Product Advertising APIのデモ http://p2b.jp/demo/aws.phpLink

 動作確認も兼ねて、この記事でアマゾンの商品を紹介しておきます。Nespressoのエスプレッソマシーンは、日本にいるときも使っていたのですが、フランスに来て暫くして、よりコンパクトなこれを買いました。ユーロだと安かったなぁ。使っているのはワインレッド色のやつですが。カプセル方式は、楽チンで良いです。

item

オートタイプ エッセンサ チタン D100PL D100PLLink

  • メーカー・販売: Nespresso (ネスプレッソ)
  • アマゾン価格: ¥ 30,672
  • 売り上げランキング: 2,324,080位
  • ジャンル・カテゴリー: ホーム&キッチン

— posted by martin at 02:22 am   commentComment [0]  pingTrackBack [0]

万年カレンダーのアップデート

category-icon

 こんばんは、martinです。自分が知らない間に祝日法が改正されたりして(例えば、2006年までの「みどりの日」は4月29日であったのが、2007年からは5月4日になったりとか。4月29日は「昭和の日」となった)、ppBlogについていた万年カレンダークラスが時代に追いついてなかったので、アップデートしました。

 日本では、今年9月は、秋のゴールデンウィーク(敬老の日も絡むので「シルバーウィーク」とも?)になるようで、それにも対応しました。古いカレンダーのままだと、今年の9月22日は休日になりませんが、アップデートすると「国民の休日」になるかと思います。

 「振替休日」と「国民の休日」の区別なんて知りませんでしたが、この機会に違いを知ることが出来ました。参考までに、祝日名の一覧を挙げておきます。ちゃんと、意味付けみたいな文言があるんですね。「秋分の日」は「祖先をうやまい、なくなった人々をしのぶ」となっています。お盆みたいで、ちょっと意外ですが、1947年までは秋季皇霊祭という祭日だったのが関係してるんでしょう。
国民の祝日日付意味
元日1月1日年のはじめを祝う。
成人の日1月の第2月曜日おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます。
建国記念の日政令で定める日(2月11日)建国をしのび、国を愛する心を養う。
春分の日春分日自然をたたえ、生物をいつくしむ。
昭和の日4月29日激動の日々を経て、復興を遂げた昭和の時代を顧み、国の将来に思いをいたす。
憲法記念日5月3日日本国憲法の施行を記念し、国の成長を期する。
みどりの日5月4日自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。
こどもの日5月5日こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。
海の日7月の第3月曜日海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。
敬老の日9月の第3月曜日多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。
秋分の日秋分日祖先をうやまい、なくなった人々をしのぶ。
体育の日10月の第2月曜日スポーツにしたしみ、健康な心身をつちかう。
文化の日11月3日自由と平和を愛し、文化をすすめる。
勤労感謝の日11月23日勤労をたっとび、生産を祝い、国民たがいに感謝しあう。
天皇誕生日12月23日天皇の誕生日を祝う。

 手前味噌で恐縮ですが、このテーブルは、「エクセルデータのHTMLテーブル変換Link 」で作成しました。エクセルの表を簡単にHTMLテーブルに変換できるので便利です。

 Holiday.class.phpを添付しておきます。既存のやつ(index.phpと同じディレクトリにある)を上書きして下さい。尚、カレンダーはキャッシュから読み込むので、アップデート後、200909_box1.dbなど今年9月のキャッシュファイルが生成されているときは、それを削除して下さい。cacheディレクトリにあるので、FTPソフトからでも良いですし、「管理画面」→「各種ツール」→「エクスプローラ」からでも削除出来ます。

添付ファイル: holiday.class.phpattachedIcon 

— posted by martin at 04:49 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
Created in 0.0085 sec.
prev
2017.9
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30