Debug:
Array
(
    [0] => 1301154201|アップデート|記事投稿時のスピードアップ| こんばんは、martinです。久しぶりの更新です。寒い日が続きなかなか暖かくなりませんが、春はすぐそこだと思います。今は横浜に住んでいますが、余震はここ1-2日はちょっと落ち着いてきた感じがします(油断は出来ませんが)。原発問題がはやく解決されること、そして被災地の一日でも早い復興をお祈りしつつ。`` さてマイナーアップデートです。フォーラムの方で、記事の更新にやたらと時間がかかるというご報告があり、調べてみると、カテゴリー数が多いとその傾向が顕著になることが判明しました。記事投稿時の処理でカテゴリー毎の記事数を更新するというのがあるのですが、その処理がボトルネックになっていました。これを解決するために、category_id.ini.phpという定義ファイルを新たにownerディレクトリに作成するようにして、そこからカテゴリー別の記事情報を取得するようにしました。`` utils_admin.phpcache.phpを更新すればアップデートされます。上記category_id.ini.phpファイルはなければ記事投稿時に自動的に作成されます。初回時は、このファイルを作成するのに時間がかかりますが、一度作成されると次回以降はスムーズに記事投稿処理が進むと思います。`` この2つのファイルを添付しておきます。`[file:1301154201_cache.php:8.6/]`[file:1301154201_utils_admin.php:38.1/]|martin|1|1|||

    [1] => 1287096850|アップデート|photoeffect.jsの更新| こんばんは、martinです。久しぶりの更新です。アップした写真をお洒落に見せるスクリプトがIE9βでは動かないとのご指摘があったので、IE9βでも動くようにアップデートしました。既存のものをそのまま置き換えるだけで良いと思います。`` IE9βでは、念願のCANVAS要素がサポートされています。なので、IE8以下では従来のようにVMLを利用、IE9以上であれば他のモダンブラウザと同じようにCANVAS要素で描画するようにしています。``104.6:800:533:500:333:IMG_0906:center:1:1:モネの睡蓮の池。ジヴェルニーにて。:0:`62.2:800:533:500:333:IMG_0954:center:1:1:女性がダンスしているようなシルエット。:0:`93.6:800:534:500:334:IMG_0955:center:1:1:植物ってほんと知らない名前ばかり:0:`39.3:800:533:500:333:IMG_0929:center:1:1:ミニ唐辛子みたいな花。大きさは1-2cmってところ。:0:`140.8:800:533:500:333:IMG_0960:center:1:1:同じ赤系でも色々ある。:0:`` 最新版のphotoeffect.jsを添付しておきます。`[file:1287096850_photoeffect.js:5.5/]|martin|1|1|||

    [2] => 1276224190|アップデート|アクセス統計解析の最新版| こんばんは、martinです。`` 自分のところで使っているアクセス統計解析の最新版を添付しておきます。ppBlogには、それなりに高機能なアクセス解析機能が付いています。たまに「リンク元」とかを見るのですが、それなりの頻度で怪しげなサイトからのアクセスログが残っていることがあります(お金の融資とかキャッシングとかカジノとか)。こういうのは、きっとアクセス解析をしている人をターゲットにして、意図的にアクセスログを残しているんだろうなぁ、と邪推してます(どのサイトから訪ねてきたのかな?という心理をうまく突いている)。`` 現状では、URLの文字列にわかりやすいキーワードが含まれていれば、管理画面→「アクセス解析」→「統計カウント除外」→「除外キーワード」と辿(たど)っていって、そこでログに残さないように特定文字を指定出来ます。例えば、自分のブログでは、casinoとかpokerとかcashという単語を除外キーワードに指定しています。`` これはこれで効果はあるのですが、URL短縮化をされると対処できません。最近は、[g]短縮URL[/g]というのが流行っているようでtwitterとかでよく使われているとか。これは確かに便利な側面もあるのですが、Wikipediaにもあるように、要は、何処に飛ばされるか分からないリダイレクト仕様なので、フィッシング詐欺なんかに簡単に悪用されます。`` なので、「リンク元」の画面でそのリンクをクリックする前に、ちょっと「ググッてみる」というギミックを付けてみました。単に「Googleで検索」というリンクをつけただけですが、何気に便利かなと思います。怪しげなURLだったりしたら、まずはググってみましょう。金融関係だったり、やたら他サイトのアクセスログが検索結果に出てきたりすると、「クロ」なのかぁと判断して、そういうサイトはスルーしましょう。``27.3:515:181:500:176:shot:center:1:1:短縮URLで一体なんのサイトか分からない。こういう時は、右側の「g」アイコンをクリック。:0:`` 添付ファイルを展開すると、view.phpというPHPファイルとg-link.pngという小さな画像があります。view.phpはstatディレクトリのものと入れ替え(例によって、もとのview.phpはバックアップをとっておいて下さい)、g-link.png画像はstatディレクトリにあるiconディレクトリへアップロードしましょう。`` うまく行けば、上に示した画像のように「リンク元」解析でURLの右側に小さな「g」アイコンが現れます。これをクリックすると、そのURLにアクセスするのではなく、グーグルでURL自体を検索します。`` 何かありましたらコメントをどうぞ。```

関連リンク

`短縮されたURLの元のアドレスを教えてくれるサイト→http://knowurl.com/(百式さん経由で知りました)`[file:1276224190_latest-stat.zip:12.4/]|martin|1|1||| [3] => 1274743573|アップデート|複数ファイルアップロード等のための差分|

[追記 2010/05/26 17:13:22]

` oParts.jsでのデバグ消し忘れとIE8でlib.jsでエラーが出ていたのを修正。添付しておきます。`
`` こんばんは、martinです。HTML5に対応したブラウザ(Firefox最新版やSafari, Chromeなど)では、画像などのファイルアップロード時に複数のファイルを一括して選択・アップロード出来ます。`` ppBlogでも、それを可能するための差分ファイルを添付しておきます。ppBlogの次期バージョンはv1.9.0を予定していますが、それに先行する形で、とりあえず試されたい方はどうぞ。`` また、この差分アップデートを適用すると、ローカルストレージ([g]localStorage[/g])を利用した記事データのローカル保存のモードも有効になります(これはIE8も対応)。これは、書きかけの記事を、お使いのブラウザの保存機能を用いて、サーバー側ではなくローカルのPCに保存するものです。以前、(オフラインで書いていて)ほぼ書き上げた記事の投稿に失敗した経験があって、それで「オートドラフト」機能とは別につけてみようと思いました。従来の「オートドラフト」機能は、サーバーサイドに記事データを保存する点が「ローカル保存」と異なる点です。`` この新機能の利点は、インターネットに接続されていない環境でも、あらかじめ記事画面さえ開いていれば、オフラインで記事を書き続けて、とりあえずローカルに保存しておける点です。何かの間違いでブラウザ画面を閉じてしまっても、一度「ローカル保存」しておけば、再度ブラウザ画面を開いた際に、「保存履歴」から記事を復元することが可能です。`26:554:143:500:129:shot1:center:1:1:「ローカル保存」のボタンと「保存履歴」のボタン。:0:`32.3:890:237:500:133:shot2:center:1:1:「保存履歴」ボタンを押したときの挙動:0:` 添付ファイルの内容は以下の通りです。``` それぞれ既存のファイルを上書きすれば良いかと思います。もとのファイルのバックアップは取っておいて、いつでも元に戻せるようにしておきましょう。自分のサーバー環境では、複数ファイルアップロードは問題ないようですが、サーバー環境はいろいろなので何か不具合とかあればご報告お願いします。``[file:1274743573_multiple_upload.zip:95.8/]`[file:1274743573_lib.js:27.6/]`[file:1274743573_oParts.js:21.8/]|martin|1|1||| [4] => 1261076141|アップデート|Firefoxに伴うアップデート| こんばんは。普段はブラウザとしてFirefoxを使っています。で、先ほどブログの方で記事を投稿したら、Firefoxだけ(厳密にはGeckoエンジンブラウザ)に読み込ませるツールチップのスクリプトが動作していないことに気付きました。`` Firefoxは、画像などで多用されるTITLE属性内の改行や改行コードを無視します。実は仕様としては正しい振る舞いです。でも、TITLE属性の改行が有効な方がブラウザの使い手には優しいと思うので、ppBlogでは、FirefoxでもTITLE属性内の改行が有効になるようなスクリプトを用意しています。`` で、その読み込ませる際に、次のようにしています。``
 if(client.Gecko) oParts.loadScript(baseURL + 'js/firefoxtooltip.js');
`` このブラウザ判定は、window.GeckoActiveXObject でやっていたんですが、これがいつの間にやら認識されなくなったようです。実は、今日Firefoxの自動アップデートがありバージョンが3.5.6になりました。で、リリースノートを見てみると、どうやら``http://www.mozilla-japan.org/security/announce/2009/mfsa2009-71.html``が関係している模様。でも、これで認識しなくなるのかなという疑問もありつつ、この部分を修正しました。最新のoParts.jsを添付しておきます。```[file:1261076141_oParts.js:21.5/]|martin|1|1||| [5] => 1259944763|アップデート|差分その2| こんばんは。昨日に引き続き。タグ関連の部分は、色々とアルゴリズムを変えていたんですが、まだ挙動がおかしいようで、それのアップデートです。utils_admin.phpの101行目付近からをいじっています。`` ついでに、今後のロードマップをメモしておきます。``[style]`dl { border-left: solid 5px gold; background:ivory;}`dt {font: 800 15px Arial; margin-bottom: 0; }`dt dd {margin: 0 2em 1em 3em;} [/style]``
`
v1.9.0
`
◆ 複数の(画像)ファイルを1回でアップロード 。Firefox3.6では、ブラウザでこれに対応するようですが、現状は、FLASHに頼ることになるかと思います。
`
◆ バージョンチェック機能の強化。URLのパラメータで正しいバージョンを出すような仕組み。
`
v1.9.x
`
HTML5対応版。[g]HTML5[/g]では、HTMLの記述が現状よりシンプルに分かりやすくなると思います。
`
```` `[file:1259944763_utils_admin.php:36.3/]|martin|1|1||| [6] => 1259859148|アップデート|差分です。| こんばんは、martinです。何となくアップデート後はいつものことのような気がしますが…。`` タグの文字列に、半角スラッシュを入れていると、タグの検索でかかってきません。それの対策もしていたつもりでしたが、詰めが甘いですね。。これはmodules/tags.inc.phpの16行目を以下のようにします。``
 $hit = preg_grep('{'.preg_quote($tag).'¥|}', $TAGS_LIST);
``デリミッターに半角スラッシュを使っていたのが駄目でした。いつもは{}を使うんですけどね。。`` あと、やはりタグ周りですが、タグに「ソ」などの文字を使っていると、タグが文字化けするという報告がありました。まるでSHIFT_JISみたいですね。これはutils_admin.phpの39行目を修正します。全角空白を省きました。``
`  $tags = p_('tags') ? explode(',', preg_replace(array('{([^&]),[¥s]+}', '{,[¥s]*$}'), array('$1,', ''), p_('tags'))) : array();
`ここでの正規表現で、全角空白を入れていたせいで、誤変換をしてしまったようです。UTF-8だから大丈夫かと思いましたが、preg_replace自体がマルチバイトに対応しているわけではないですからね。u修飾子でも入れればよいかもしれませんが、まぁいいか。`` ついでですが、IE6/7のサポートは基本的にやめようかと思っていたのですが(特に管理者用として)、まだ使われているようですし、折角のタグポップアップがIE6で使えないのは残念なきもするので、対応したwrite.inc.phpedit.inc.phpも添付しておきます。``[file:1259859148_tags.inc.php:1.9/]`[file:1259859148_write.inc.php:14.4/]`[file:1259859148_edit.inc.php:16.1/]`[file:1259859148_utils_admin.php:36.3/]|martin|1|1||| [7] => 1259710039|アップデート|ppBlog1.8.8 リリース,ppBlog188-release| こんにちは、martinです。もう師走ですね。ppBlogの最新版をリリースしました。`` 結果的には、タグ周りの修正がメインになりました。従来は、スペースを含むタグ(health careとか)は仕様により入力不可でしたが、これを可としました。なので仕様の変更があります。記事入力画面下にタグを入力するエリアがありますが、複数のタグを指定する場合は、(半角のカンマ + スペース)で区切るようにします。従来は、スペースのみで区切る方式でした。`` なお、タグ入力支援として、よく使うタグ順にプルダウンメニューを表示させるようにしています。イメージとしては以下の感じです。`16.5:305:299:0:0:autoTags:center:1:1:擬似プルダウンメニューです。タグの入力が簡単になります。:0:`` こういうギミックがあると、なんだか楽しくて色々タグをつけたくなります(まだ十分には動作の検証はしていませんが・・・)。`` そのほかの修正としては、前回エントリーで紹介したように、アクセス解析に記事アクセスランキングを統合したりとか、モブログの設定で、その場で指定したメールサーバーへのログインを試みて、有効なサーバーアドレスであるかとか、適切なログイン名であるかをチェックするようにしたりとか、主に使い勝手の向上がメインです。`` あ、あと記事アクセスランキングに関連して、ログインした状態では、各記事のタイトル右に小さくレビュー数を表示させるようにしました。``5.6:348:107:0:0:reviews:center:1:1::0:`` この表示が不要という方は、utils.phpの12行目に設定できる項目があるので、そこでゼロ(0)とかFALSEを指定すると良いです。``
define('SHOW_REVIEW_COUNT', FALSE); // 管理向け者に記事の参照数を表示させるか(記事タイトル右)
`` 例によって、v1.8.7との差分ファイルを添付しておきます。基本的には、単なる上書きで良いです。``[file:1259710039_DIFF187_188.zip:146.8/]|martin|1|1||| [8] => 1255654554|アップデート|ppBlog1.8.7リリース| こんばんは。久しぶりのエントリーです。ppBlogがバージョンアップしてv1.8.7になりました。前バージョンは1.8.5で、バージョン1.8.6はありません。それなりにいじったのと、例によって奇数好きなので。`` v1.8.5との差異ですが、既知のバグに対するものと、後、使い勝手の向上の部分がメインです。既知のバグとしては、画像のアップロードに関してですが、いつのバージョンからか、大きさ(縦横のサイズ)が小さい画像をわざわざリサイズして大きい画像にしたりしてたので、その辺りを修正しています。画像アップロードに関してですが、JPEG写真であれば、それの縮小時に品質を指定出来るようにしました。初期値は75ですが、お好みに合わせて、85から90あたりを指定するとリサイズされた写真でも綺麗に仕上がるかと思います(参考エントリー)。`` 後は、タグの文字種(タグに半角括弧を含んでいたりとか)によっては、タグのエントリーが上手くピックアップ出来ないのにも対処しています。このためにindex.phpのタグ表示部分に少し修正が入っています。`` 他には、アクセス解析のデータは、3-4か月分のストックにしました。それ以前の古いアクセスデータは自動的に削除されます。従来は、削除されずにどんどん溜まっていましたが、多すぎるログファイルは、パフォーマンスにも影響しますし。バージョンアップをすると、古いデータ(stat/dataディレクトリの中)はすべて削除されますので、残しておきたい方は、予めFTPソフトなどでダウンロードしておいてください。`` 動画貼り付け支援関連でも修正が入っています。動画投稿サイトも、いつの間にやらサービスが終了していたところは削除してます。テクノラティのサービスも終了するようで、ppBlogではこの機能も少し取り入れていたので残念といえば残念ですが仕方ないですね[うーむ/]`` 使い勝手の向上ですが、目に見える部分では、エントリー作成でのエディタ部分ですかね。スクリーンショットを挙げておきます。`26.5:743:285:500:192:EditorShot1:center:1:1:フォント修飾系が増えてます。B,S,Eとか。:0:`` 従来は、太字にする「B」ボタンで、<strong>foo</strong>みたく入力されていましたが、これは文字通り<b>foo</b>となるようにしました。このB要素ですが、``
<span style="font-weight: blod">foo</span>
`という出力にしようかと迷ったのですが、こう書くとひとつは冗長なのと、後、視覚的強調のためにわざわざ用意してあるのだから、あえて使ってみようという思いもあります。一般的には、視覚的強調ならCSSで代用すべきという意見が多いように思いますが、B要素を使うことでアクセシビリティの低下を招くとも思いませんし、HTML5でも採用されているので存在意義があるんでしょう。個人的には、日本語文中のアルファベットや数字なんかに使うと視覚的に見やすいのでは思っています。これまでは、特に論理的強調でもないのにstrong要素ばかりを使っていたので、それはちょっと反省しています。`` で、strong要素は、「S」というボタンで入力できます。同様に、EM要素を入力する「E」ボタンも付けました。なんだかBSEで狂牛病みたいですが、たまたまです。なお、強調の度合いとしては、EM要素より強い強調にはSTRONG要素という使い分けのようです。`` アルファベット圏では、EM要素内の文字列はイタリック体(斜体)として表示されますが(もっともブラウザ依存です)、少なくとも日本語では、斜体文字という文化はないようで、例えばメイリオフォントには斜体は存在しませんし、スタイルシートでイタリック体を指定しても無視されます。じゃどうやって、「強調」であることを示すかというと、よくあるのは、文字列に読点を打つとか括弧でくくるとかでしょうか。この点では、EM要素は「強勢」と呼ぶほうがふさわしい気もします。`` ppBlogのベーシックテーマでは、このEM要素に対しては、ドットを付けるという風にしています。スタイルシートを用いて、EM要素の背景にドット画像を指定しているのですが、長さの調整とか文字列との位置関係とか難しいです。``
これはEM要素で囲まれた文字列です
`` ここでは文字列の下にドットが来るようにしていますが、上に置いてもよいでしょう。上だと、なんとなく小学生の頃に音楽の授業で習った[w]スタッカート[/w]を思い出しますね[にこっ/] 確か、アマリリスを笛で弾くときに意識するように言われた覚えがあります。ラリラリラリラ~♪でしたっけ?`` エディタ関連でもうひとつ。これは前から実装しないといけないなぁと思っていたんですが、カラーパレットで色を選択した際に、その最後に選択した色を覚えておく機能です。最後に選んだ色は、左側に表示させるようにしました。この部分をクリックすることで、同じ色指定が可能になります。``13.3:320:240:0:0:EditorShot2:center:1:1:こんな感じです。:0:`` こんなところでしょうか。v1.8.5との差分ファイルを添付しておきます。``
 `

追 記 2009/10/16 13:47:24

` 強調のために、文字列に打つ点は、「[w]圏点[/w]」と呼ぶらしいですね。Wikipediaのページにある圏点は参考になるのでは思います。`
``[file:1255654554_DIFF185_187.zip:117.2/]|martin|1|1||| [9] => 1253008847|アップデート|カテゴリーモジュールの更新| こんにちは、martinです。カテゴリーモジュールのバグがありましたので、ファイル(modules/category.inc.php)の入れ替えをお願いします。これは、少なくともv1.7.0の時点でも、この不具合は存在します。`` 不具合が発生する状況としては、カテゴリー名にシングルクォーテーション(')を含んだ文字列がある状態で、カテゴリー順序の並べ替えをすると、カテゴリー設定ファイルがPHP構文エラーをはくのでブログが正常に表示されないというものです。カテゴリーの並べ替えは、ブラウザ側ではJavaScriptを用いて行っているのですが、PHP側でHTML4の文字列参照に変換した文字列をJavaScriptに渡すと自動的に元の文字列に変わっちゃうようで。``
&#039; → ' // 元のシングルクォーテーションになる
`` カテゴリー名にシングルクォーテーションを使わなければこの不具合は出てきませんが、ppBlog使いの方に制限を課すのは好きではないので。`` このカテゴリーファイルを添付しておきます(タイムスタンプは $ 2009/09/12 08:33:17)。``[file:1253008847_category.inc.php:28.7/]|martin|1|1||| [10] => 1252682715|アップデート|1.8.5の差分です。| こんばんは、martinです。JavaScript関連で、IE8で不具合が見られたので、それを修正したものを添付しておきます。`` IE8だとコメントやコメントフォーム時のスクロールが、意図したように動いていなかったようです(おそらくIEはすべて)。後、FirefoxのFirebugで見つけたNoticeレベルの警告があったので、それも修正しています(Noticeレベルは、まだありそうですが・・・)。`` 4つをひとつにまとめたものを添付しておきます。modulesディレクトリのpages.inc.phpがひとつ。jsディレクトリのが3つです。`[file:1252682715_DIFF_185_090911.zip:39.9/]|martin|1|1||| [11] => 1252354959|アップデート|v1.8.5の差分アップデート| こんばんは、martinです。先週、ppBlogの最新版であるv1.8.5をリリースしました。不具合のご指摘がありましたので、それらを修正したファイルを3つ添付しておきます。コメントhttp://p2b.jp/1251997859#CID1252353524も参考に。`` ひとつは、amazon_associate.phpの中で用いている$pageという変数がすでにグローバル変数として登録されていたので、それに伴うと思われる不具合に対処したものです。`` あと、IEのCSS2対応が弱いために、ppBlogの方で救済処置を施していましたが、IE8ではCSS2のサポートは十分なために、この処置を省きました。`` あと、記事作成画面でのプレビュー機能を若干修正しました。`` 以上3つの最新版を添付しておきます。``[file:1252354959_utils.php:94.8/]`[file:1252354959_amazon_associate.php:14.8/]|martin|1|1||| [12] => 1251997859|アップデート|ppBlog1.8.5リリース,ppBlog185-release| こんばんは、martinです。最新版のリリースです。前回のバージョンが1.8.3だったので、順当に行けば、v1.8.4ですが、「イヤよ」じゃ語呂合わせが今イチだし、奇数好きなのでv1.8.5とします。それなりに書き換えたファイルも多いですし。ppBlogとは直接関係ないですが、昨日でインターネットは40歳だそうで。自分より年上とは知りませんで。WWWとは別ですね。`` 主な変更点は以下の感じです。``
    `
  1. amazonアソシエイトの更新に伴うスクリプトの書き換え。前回の記事
  2. `
  3. ページ作成画面で、PHPタグ(<?php ... ?>)や独自のスタイル記法([style]...[/style])が使えるようになった。このコメントも参考に。
  4. `
  5. JavaScript周りで、変数宣言をみっちりやったり、GoogleのChromeでのスクロールがおかしかったのを修正したり等々。
  6. `
  7. モバイル閲覧時に、古い記事のコメントが表示されないのを修正。
  8. `
  9. 記事アクセスランキングのネイティブサポートなど。http://p2b.jp/1250196829
  10. `
``あたりですかね。バグ報告には挙がりませんが、個人的に色々気になるところもちょこちょこ修正してます。`` JavaScriptに関してですが、主にFirefoxやChromeでバグフィックスをしていて、IEの存在をすっかり忘れていました。そして、昨日IEでの動作チェックをしないままリリースしたら、IEでいきなりJSエラーが出るという始末[zzz/] 原因は、oParts.jsで使用したwindow.hasOwnPropertyでした。なので、この部分は、``
Object.prototype.hasOwnProperty.call(window, 'opera');
``で回避。うむ。なので、昨日のバージョン185_090903をダウンロードされた方は、oParts.jsが変わっていますので、IEでエラーが出るようであれば(具体的には、例えばログインアイコンをクリックしても、ダイアログがにょろっと出てこない)、最新のoParts.jsに入れ替えて下さい。`` 後、更新PINGの送信先として、Ask.jpさんにも送るようにしていましたが、最近どうもPING送信に失敗するなぁ、と思って調べたら、以下のようでした。お疲れ様でした。``13.6:596:278:500:233:askjp:center:0:1::0:``なので、このAsk.jpさんは、初期リストから削除しています。尚、更新PINGサーバーは、管理画面の「環境設定」→「更新サーバーの管理」で追加したり、削除したりできます。`` 前バージョンとの差分とoParts.jsを添付しておきます。既存の上書きで良いです。````[file:1251997859_DIFF183_185.zip:125.6/]``[file:1251997859_oParts.js:21.2/]|martin|1|1||| [13] => 1251480174|アップデート|アマゾンのProduct Advertising APIに対応させる,Amazon-Product-Advertising-API| こんばんは。2009年8月15日からアマゾンのリンク作成用API(Product Advertising API, 旧称:AmazonアソシエイトWebサービス)が署名認証を含まないリクエストを一切処理しなくなりました。この影響で、ppBlogでの既存のアマゾンタグやアマゾン検索が動かなくなっています。なので、それに対応させるための書き換えを遂行しました。`` 具体的な処理の流れは、もやし日記IMHOが大変参考になりました。アマゾンサイトにある説明を一度読んで理解できる人はそういないだろうなぁ。`` このアマゾンのProduct Advertising APIですが、PHPのみで対応させるとなるとサーバー環境によっては実装が難しいかもしれません。基本的には、PHP5の環境でないと気軽に動きません。今や、PHP4の公式サポートも終了し、多くのレンタルサーバーではPHP5を提供していると思うので、さほど問題になることはないかも、とは思いますが。`` どうしてPHP5が必要かというと、アマゾンのこのサービスは、[w]sha256[/w]アルゴリズムのハッシュを生成する必要があるからです。PHP5なら、hash_hmac関数が使えます。じゃ、PHP4な環境ではどうするか?もし、PHP4の環境でmhashライブラリーを組み込んでいるならOKです。このmhashライブラリー、非ウィンドウズなサーバー環境なら、最初から実装している気はします。ちなみに、自分のノートに構築したWindows下の[g]XAMPP[/g]環境では、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です。そのスクリーンショットを載せときますね。``24.1:630:443:500:352:amazonAPI:center:1:1:規定のジャンルの指定も出来るようにしてます。:0:`` この画面にもあるように、従来のアソシエイトタグ(ppblog-22とか。トラッキングID)だけでは、もはや動きません。アマゾンAPIを利用されたい方は、アマゾンのサイトで、このAPIを利用するための2つのキーを入手して下さい。`` ちなみに、この新しいAPIに対応したデモサイトを作りました。基本的には、amazon_associate.phpでやってる処理と同じです。`` →Amazon Product Advertising APIのデモ http://p2b.jp/demo/aws.php`` 動作確認も兼ねて、この記事でアマゾンの商品を紹介しておきます。Nespressoのエスプレッソマシーンは、日本にいるときも使っていたのですが、フランスに来て暫くして、よりコンパクトなこれを買いました。ユーロだと安かったなぁ。使っているのはワインレッド色のやつですが。カプセル方式は、楽チンで良いです。```オートタイプ エッセンサ チタン D100PL D100PL|martin|1|1||| [14] => 1248205775|アップデート|万年カレンダーのアップデート| こんばんは、martinです。自分が知らない間に祝日法が改正されたりして(例えば、2006年までの「みどりの日」は4月29日であったのが、2007年からは5月4日になったりとか。4月29日は「昭和の日」となった)、ppBlogについていた万年カレンダークラスが時代に追いついてなかったので、アップデートしました。`` 日本では、今年9月は、秋のゴールデンウィーク(敬老の日も絡むので「シルバーウィーク」とも?)になるようで、それにも対応しました。古いカレンダーのままだと、今年の9月22日は休日になりませんが、アップデートすると「国民の休日」になるかと思います。`` 「振替休日」と「国民の休日」の区別なんて知りませんでしたが、この機会に違いを知ることが出来ました。参考までに、祝日名の一覧を挙げておきます。ちゃんと、意味付けみたいな文言があるんですね。「秋分の日」は「祖先をうやまい、なくなった人々をしのぶ」となっています。お盆みたいで、ちょっと意外ですが、1947年までは秋季皇霊祭という祭日だったのが関係してるんでしょう。``[style].article-content table { border: solid 1px gray; margin: 2em auto; background: #fff; border-collapse: collapse;}` table th, .article-content table td { border: solid 1px gray; padding: 2px; }` table th { text-align: center; }` table td { text-align: left; }` thead tr th { background: #eeffff; }` tbody tr th { background: #ffeeee; } [/style]````````````````````
国民の祝日日付意味
元日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テーブル変換」で作成しました。エクセルの表を簡単にHTMLテーブルに変換できるので便利です。`` Holiday.class.phpを添付しておきます。既存のやつ(index.phpと同じディレクトリにある)を上書きして下さい。尚、カレンダーはキャッシュから読み込むので、アップデート後、200909_box1.dbなど今年9月のキャッシュファイルが生成されているときは、それを削除して下さい。cacheディレクトリにあるので、FTPソフトからでも良いですし、「管理画面」→「各種ツール」→「エクスプローラ」からでも削除出来ます。``[file:1248205775_holiday.class.php:3/]|martin|1|1||| [15] => 1247676897|アップデート|差分です。| こんばんは。3つのファイルの差分アップデート情報です。````ってとこです。添付しておきます。``追記。この週末(7/11-7/14)、プロヴァンス地方への小旅行に出かけていたので、メールチェックできずに、返信が遅れた方にはすみません。``[file:1247676897_DIFF183.zip:17.8/]|martin|1|1||| [16] => 1247003156|アップデート|ppBlog1.8.3リリース| こんばんは。七夕の日なのでppBlog1.8.3をリリースしようと思います。`` v1.8.2からの主な変更点を以下に挙げておきます。``
    `
  1. MT(MovableType)形式のインポート/エキスポートを強化。タグの取り込みにも対応しました。MTは使ったことがないので、ユーザーの方からのフィードバックが大変役に立ちました。
  2. `
  3. アクセス解析で、カウント除外できるキーワードを管理画面から設定できるようにした。後、カウントログ取得のチューニング。
  4. `
  5. 設定により、読み手がボックス記事の表示数を指定出来るようにした。
  6. `
  7. js/lib.jsを少しいじった。コメントスクロールの部分。
  8. `
  9. mob.phpのデバグ消し忘れの修正。
  10. `
``ってとこです。添付の差分ファイルには、万年カレンダー用のholiday.class.phpが含まれていますが、これはハッピーマンデーがずれてるユーザー用です。第3月曜日であるところが第2月曜(今月の海の日とか秋分の日とか)になっていたり。ぶっちゃけ、サーバーによってずれたりずれなかったりして、今イチ原因が掴めていないんですが[zzz/] 正常に表示されているppBlog使いの方は、上書きする必要はないです。`` アクセス解析のstat/log.phpに関して、キーワードなどの設定をした状態で「生ログ」を見ると、トータルのカウントの値が飛び飛びになるかもしれませんが、これは仕様です。IPやキーワードによって除外カウントが発生すると、こういう記録になります。トップページに表示されるトータルカウント数とリンクさせてるためですが、これが気になるという方は、log.phpの112行目の``
if(/*$ip_accept && */$accept){
``のコメントアウトを削除して、``
if($ip_accept && $accept){
``とすれば、連続カウントになるかと思います。`` 3番目の「読み手がボックス記事の表示数を指定出来るようにした」ですが、設定は、各テーマにあるtemplate.phpで指定します。``
define('ENABLE_USER_SELECT', 0);  // ボックス記事の表示数を読み手が指定できるかどうか。許可しないなら 0 を指定(上の設定有効時)
` この指定は、この上にある指定(必須ではないですが)のENABLE_INVERSE_SORTが有効でないと、設定が反映されないという点に注意して下さい。いずれの指定も必須ではないので、この記述はないならないで構いません。`` 例によって、差分ファイルです。単なる上書きで良いです。```[file:1247003156_DIFF182183.zip:82.2/]|martin|1|1||| [17] => 1245256406|アップデート|差分アップデート|こんばんは、martinです。お久しぶりです。``先週、最新版であるv1.8.2をアップしました。今日は、その差分を。具体的な修正点は、以下の通り。``
    `
  1. 前回のセキュリティーアップデートを反映させたadmin.php
  2. `
  3. タグ関連の修正など(utils.phpやmodules/tags.inc.php)
  4. `
  5. アクセス解析に、マイクロソフトの新しい検索エンジンであるBingのアイコンを追加したり、Windows 7のアイコンを追加したり、Googleのアイコンを新しくしたり (stat/view.php, icon/)
  6. `
``ってとこです。`` いつものように、差分ファイル群を添付しておきます。単なる上書きで良いです。アクセス解析のアイコンは、statディレクトリのiconディレクトリに追加して下さい。`` 尚、先週アップした最新版のutils.phpにデバグ用の消し忘れがあったので、それを修正したutils.phpも単独で添付しておきます。`` ついでに、新しいアクセス解析の「検索ワード」のスクリーンショットを載せておきます。``12.9:319:196:0:0:shot:center:1:1:こんな感じです。新しくBingも加わり、少しだけにぎやかに。:0:``[file:1245256406_182181DIFF.zip:79.8/]``[file:1245256406_utils.php:93.7/]|martin|1|1||| [18] => 1243622912|アップデート|重要:セキュリティーアップデート| こんばんは、martinです。ユーザーの方からのご指摘でadmin.phpにセキュリティー上のバグ(脆弱性)が見つかったので、admin.phpの速やかなアップデートをお願いします。該当バージョンは、v1.6以上(もしかすると1.5系も)なら、どれも該当します。`` 具体的な修正としては、admin.phpの200行目以降に、``
if(p_('rnd') != ''){ // For timeout rescue
``という記述があると思いますが(この記述がないバージョンは問題なし)、これを``
if(p_('rnd') != '' && strlen(p_('rnd')) === 8){ // For timeout rescue
``のように修正する必要があります。このように、ご自分で訂正されるか、あるいは、自動修正サイトを作りましたので、そこで修正した新しいadmin.phpを入手して、サーバー上の既存のadmin.phpと置換して下さい。`` →admin.php自動修正ページ http://p2b.jp/demo/diffAdmin.php`` 詳しいことをお聞きになりたい方は、info@p2b.jpにメール下さい。ソースをみれば、分かる方には分かるのですが、悪意を持ったスクリプトを用意すればかなりの確率でログイン出来てしまいます(この行為自体は[g]不正アクセス禁止法[/g]で禁じられてはいますが)。`` なるべく、バグのないようにと心がけているつもりですが、お手数をおかけして申し訳ありません。|martin|1|1||| [19] => 1240339617|アップデート|v1.8.1にアップデート| こんばんは。フォーラムの方で、2点ほど不具合の報告があったのと、後、こちらでいくつか修正したところがあるので、それらに対応したv1.8.1をリリースしました。`` このバージョンで、テーマを少し作りやすくしようと思ったので、その影響で、新しい変数が定義されたりしてます。具体的には、従来の$DIVISION['login']というのが$DIVISION['loginfo']に変更になって、新たに$DIVISION['login'], $DIVISION['logout'], $DIVISION['control']というのが用意されました。$DIVISION['loginfo']というのは、ログインした状態で、例えば「martinとしてログイン中」と表示されるやつです。この指定は必須ではありません。同様に、新たな変数も特に指定する必要はないのですが、説明をしておくと、$DIVISION['control']は管理画面へのリンクに使用して、$DIVISION['login']や$DIVISION['logout']は、ログイン関連のリンク用です。`` 具体的には、テーマのtemplate.phpで使用することが出来ます。実は、v1.8.1向けにシンプルなテーマを作成しているのですが、その中で、以下のように使っています。``
$DIVISION['control'] = ' <li class="control"><a href="admin.php?mode=control"><img src="theme/3colv2/Images/control.png" alt="Control" /></a></li>';`$DIVISION['login'] = ' <li class="login"><a href="admin.php?mode=login"><img src="theme/3colv2/Images/logging.png" alt="login" /></a></li>';`$DIVISION['logout'] = ' <li class="logout"><a href="admin.php?mode=logout">ログアウト</a></li>';
`` ppBlogのテーマを作ろうと思った際に、何が大変って、index.phpの中で定義されている$DIVISION['linkbar'](リンクバー)の画像ファイルを用意することかなぁ、というのがあって、まぁこれはスタイルシートの指定によって画像を非表示とかにも出来るんだけれど、もっと柔軟に扱えた方がよいと思いました。リンクバーは、template.phpの中で%_LINKBAR_%として使用できますが、上に挙げた新しいテーマ(3colv2)では、この変数は使用していません。変わりに、%_CONTROL_%%_LOGGING_%という変数をtemplate.phpの中で使用しています。ちなみに、%_LOGGING_%という変数は、$DIVISION['login']と$DIVISION['logout']に対応していて、ログインしていないときは、$DIVISION['login']で指定した内容が表示され、ログインしている際には、$DIVISION['logout']の内容が表示されるようになっています。`` ちなみに、新しいテーマでは、極力画像ファイルを排したシンプルなものにしたつもりです。3カラムと1カラムの切り替えが可能です。カレンダーは、OL要素を使用したものとなっています。`` このOL要素のカレンダーを使おうと思って、この出力のバグを見つけたので、これの修正もしてます(calendar.inc.php)。その他、修正した点を列挙しておきます。``
    `
  1. モブログで、ユーザー投稿の投稿名が正しく反映されないのを修正(mob.php)
  2. `
  3. モバイル向けの表示(モバイルモード:moby.php)で記事の削除が効かないのを修正(utils_admin.php)
  4. `
  5. 記事作成時に、Youtubeへのリンクを貼る際、適切に動画へのIDを抽出するように(editor.js)
  6. `
  7. Firefoxがdocument.querySelectorAllに反応してしまうのを修正(photoeffect.js)
  8. `
  9. 記事に対する最初のコメントが管理者だった際に、画面スクロール関連でJavaScriptエラーが出るのを修正(lib.js)
  10. `
  11. ソーシャルブックマーク絡みで、Ajax関連の挙動がおかしいのを修正(ajax.php, lib.js)
  12. `
  13. 最近のトラックバックの数を正確に定数RECENT_TRACKBACKSに合わせるように(cache.php)
  14. `
  15. 後は、非公開コメントの際に、クッキーが有効であるなら、「クッキーが有効である必要があります」という文面を出さなくしたりとか(comment.inc.php)、ページ作成用のスクリプト(pages.inc.php)のアップデート
  16. `
``ってことですかねえ。あ、テーマに関して、新しくクラス名として、shown-aloneというのを用意してます。これは、単独記事表示の際に、以下のような感じで付加されます。``
<div class="article-content shown-alone">
``あまり使いどころはないかもしれませんが、上の新しいテーマでは使っています。`` 例によって、v1.8.0からの差分ファイルを添付しておきます。単なる上書きでよいでしょう。また、このリリースに合わせて、ppBlog用のテーマチェッカーも更新しました。@importを使用した外部CSSファイルの読み込みみも対応したつもりです。これも添付しておきますね。このptc.phpは、トップディレクトリにアップロードして、ログインした状態でアクセスすれば使用できます。``` ``[file:1240339617_DIFF090421.zip:105.6/]``[file:1240339617_ptc.php:18.4/]|martin|1|1||| [20] => 1239320913|アップデート|v1.8.0のutils.phpアップデート| こんばんは。前回のエントリーでv1.7系からv1.8にバージョンアップする際の差分ファイルを添付していましたが、ソーシャルブックマーク関連の画像ファイルやらスタイルシート関連の説明が抜けていました。`` v1.8からは、複数記事表示の際は、ソーシャルブックマークエントリーのためのボタンが表示されます。このボタンをクリックすると、その動的に作成された、各ソーシャルブックマークへのアイコンがボックス表示されるようになります(template.php%_ARTCL_SBM_%を有効にしている場合です。この指定は従来通り)。`` この動的に作成されたボックスは、以下のようなHTMLをはき出します。```
<div class="sbm-pop" id="SBM1238692993">`  <p class="sbm-close"><img style="cursor: pointer;" src="Images/button-close.png" alt="close" title="閉じる" onclick="this.parentNode.parentNode.style.display='none';" /></p>`  <p class="sbm-intro">各種ソーシャルブックマークにこのエントリーを登録できます。</p>`  <ul>`   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/hatenab.png" title="この記事をはてなブックマークに追加" width="16" height="12" alt="はてなブックマーク"/> はてなブックマーク</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/deliciousb.png" title="この記事をdel.icio.usに追加" width="14" height="14" alt="del.icio.us"/> del.icio.us</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/livedoorb.png" title="この記事をlivedoorクリップに追加" width="14" height="14" alt="livedoorクリップ"/> livedoorクリップ</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/twitter.png" title="この記事をTwitterに追加" width="14" height="14" alt="TwitThis!"/> TwitThis!</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/facebook.png" title="この記事をfacebookに追加" width="14" height="14" alt="facebook"/> facebook</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/buzzurlb.png" title="この記事をBuzzurlに追加" width="14" height="14" alt="Buzzurl"/> Buzzurl</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/yahoob.png" title="この記事をYahoo!ブックマークに追加" width="16" height="16" alt="Yahoo!ブックマーク"/> Yahoo!ブックマーク</a></li> `   <li><a rel="nofollow" href="(省略)"><img src="Images/bookmarks/googleb.png" title="この記事をグーグル ブックマークに追加" width="14" height="14" alt="グーグル ブックマーク"/> グーグル ブックマーク</a></li> ` </ul>`</div>
`` 上にあるように、新しくsbm-popsbm-intro, sbm-infoなどのクラス名が指定されています。テーマ:ベーシックでは、これに対応するCSSは以下の感じです。```
div.sbm-pop { padding: 2px; font-size: 12px; width: 250px; background: ivory; border: solid 3px green; z-index: 1000;}`div.sbm-pop ul { list-style: none; padding: 10px;}`div.sbm-pop ul li { margin-top: 5px;}`div.sbm-pop .sbm-close { text-align: right;}`div.sbm-pop .sbm-intro, div.sbm-pop .sbm-info { padding: .5em 1em;}
``` 単独記事表示の時は、今までのように、各ソーシャルブックマークへのアイコンが表示された状態となります。`` このソーシャルブックマーク関連で、生成したボックスに含まれるLI要素の対応がおかしかったので、utils.phpの2000行から始まるsocialBookmark関数を少し修正しました。`` このutils.phpと、ソーシャルブックマークへのエントリーアイコンを添付しておきます。これらのアイコンのうち、sbm.pngは、トップディレクトリのImagesディレクトリにアップロードして下さい。また、facebook.pngとtwitterのアイコンは、同じImagesディレクトリの中にあるbookmarksディレクトリにアップロードして下さい。``[file:1239320913_DIFF090410.zip:29.9/]|martin|1|1||| [21] => 1239022515|アップデート|ppBlog1.8.0のリリース,ppBlog180-release| こんにちは。最新版の1.8.0は試用版扱いでしたが、とりあえず正式版としてリリースします。1.8.0試用版からの差分(DIFF180RC)と、v1.7.7からの差分(DIFF177)を添付しておきます。`` アップデートに関して、特にログをいじることもないので、そのまま各種ファイルを上書きすれば良いと思いますが、念のためログのバックアップは、取っておくのが良いでしょう。`` テーマに関しては、カレンダーの出力が従来と少し違っています。土曜日だとか日曜日の指定は、従来は、TD要素の中のSPAN要素に対してクラス指定していましたが、これらは、TD要素に対しての指定に変更になっています。テーマBasicでの例を挙げると以下のような感じです。``
`#calendar table td.daySubmit {`  background-color: #eaeaf4;`}`#calendar table td.Sun, #calendar table td.Holiday {`  color: rgb(250,90,70);`}`#calendar table td.Sat {`  color: navy;`}`#calendar table td.Today {`  color: rgb(5,170,50);`  font-weight : 600;`}`
`` しぃペインターのためのモジュールに相当するppdraw.phpも最初から付いてます。これは、index.phpと同じディレクトリに置いて下さい。これ単独ではお絵かきは出来ませんで、同じくindex.phpと同じディレクトリにspainter_all.jarが必要です。このファイルは、ここでの配布版には含まれないので、お絵かき機能を使ってみたいという方は、しぃペインターの配布サイトからsptr_all1114.zipを入手して、そこに含まれるspainter_all.jarをアップして下さい。この状態で、管理画面の「新規作成」や記事の編集時のエディタに「しぃペインター」というボタンが表示されます。`` なお、描いた絵を、アニメーション再生するしぃペインターのプラグインにも対応していますが、これは前回のエントリーを参考に。`` とりあえず。```[file:1239022515_DIFF180RC.zip:90.9/]``[file:1239022515_DIFF177.zip:211.5/]|martin|1|1||| [22] => 1238434239|アップデート|v1.8.0のutils.phpの修正| こんばんは。最新版であるv1.8.0試用版のutils.phpで1箇所修正がありますのでアナウンスしておきます。2006行目にsubstr関数を使っているのですが、この引数の指定が間違っていました(どうもソーシャルブックマークの更新が効かないなと思っていたら)。2006行目の部分は、``
substr($target, 33, 10)
``が正しいです。引数の3番目は、取得したい文字列の長さですね。文字列終了位置を指定していました。。どうも、JavaScriptのslice関数とごっちゃになっていたようで。`` とりあえず、今回はこれだけです。添付しておきます。あ、ついでに、セーフモード版もダウンロードできるようにしています。``[file:1238434239_utils.php:92.2/]|martin|1|1||| [23] => 1237896345|アップデート|oParts.jsのアップデート| 早速ですが、ppBlog1.8.0RCでのoParts.jsのAjaxライブラリをいじったせいか、Firefoxで、角丸スクリプトを使用していると、サーバーからcornerplay.jsを呼び込もうとして、そこで反応が止まりますね。他のブラウザでは問題ないようですが。なので、この部分は以前のやつに戻しました。oParts.jsの最新版(oParts.version = '20090324.123224')を添付しておきます(1.8.0RC向けです)。`` ついでに、oParts.js、lib.js、phooeffect.jsは、圧縮してファイルサイズを丸めたやつをindex.phpの方で指定できるので、これも添付しておきますね。指定の仕方は、index.phpの最後にあるechoHTMLの引数で指定します。``
echoHTML(array('photoeffect.min.js','oParts.min.js','lib.min.js')); // これで HTMLを出力
``[file:1237896345_oParts.js:20.9/]`[file:1237896345_oParts.min.js:15.9/]``[file:1237896345_lib.min.js:19.4/]``[file:1237896345_photoeffect.min.js:3.5/]|martin|1|1||| [24] => 1237869489|アップデート|ppBlog1.8.0試用版リリースしました,ppBlog180RC| こんばんは、martinです。ppBlogのバージョンアップを行いました。前回バージョンは1.7.7とかでしたが、結構、修正が多岐に渡っているのでバージョンを1.8.0としてます。ただし、まだ細かいところまで検証出来ていない気もするので取り敢えず試用版という扱いです。試用版と言っても、このサイトで使っているものと同じですけど。`` 前バージョンで特に大きなバグとかはなかったと思うので、基本的には使い勝手の向上を目指したり、機能を改善したものです。新機能というほどのこともないですが、今、このサイトで使っているヘッドラインモードに関して、基本的には、設定した文字数でエントリーの文章をカットしますが、<!--]]-->という文字列を挿入することで、そこまでの文章や画像をそのまま表示させることが可能です。今まで、この機能がなかったのが不思議なくらいですが。。この指定タグは、エディタのボタンに付いてます。`` エディタで言えば、「文の整形」の項目で、従来の整形ブロック(PREタグ)の下に「整形ブロック[class="thru"]」というのが追加されています。このタグを使うことで、PRE要素に対してソースハイライト表示用のsyntax.jsが適応されるのを回避することができます。`` 見栄えの点で言えば、開発日誌にも書いてきましたが、ソーシャルブックマークの挙動を修正して、複数記事表示モードの際は、各種ブックマークへのエントリーを促すボタンが表示されます。このボタンをクリックすると、その場で登録したブックマークを呼び出す仕組みです。単独記事モードの際は、このエントリーボタンではなくて、各種アイコンが表示されます。`` 後は、モブログに関して、フォーラムの方で出ていた要望をそのまま採り入れたものになっています。すなわち、``
    `
  1. 投稿毎に任意のカテゴリーを指定できる。
  2. `
  3. 複数の添付画像の、表示位置をそれぞれ指定できる
  4. `
``です。カテゴリーの指定は、メールのタイトルに続く、連続した2つの空白の後のカテゴリーインデックス(数字)(半角全角ともに可)で可能です。カテゴリーインデックスとは、カテゴリー設定ファイル(category.ini.php)を編集エディタで開くと配列リストになっていますが、それを上から順に1,2,3と数えた数字になります。これは、普通に表示されるサイドバーのカテゴリーのメニュー順と一致します。サブカテゴリーも通し番号になっているので、この指定方法で問題ないです。具体例を挙げると、以下のような感じ。``
春の息吹  3
``みたいな感じです。これで、カテゴリーリストで上から3番目のカテゴリー名が、投稿先のカテゴリーになります。2番目の添付画像の位置指定ですが、これは、文章中でどこに表示させるかという位置指定と、画像に関する位置指定(左寄り、中央、右寄り)の両方の指定が可能です。方法は、表示させたい位置で、%pict1_l%pict1_c%pict1_rとか%pict3_cなどの指定をすることで可能です。順に、1枚目の画像を左寄り(leftのエル)、センタリングのc、右寄り(rightのアール)という指定になります。最後の例のように複数枚でも、その番号を指定すれば良いです。`` 念のため言っておくと、モブログにおけるこれらの指定は、あくまでオプションなので、従来通りの投稿で問題ないです。`` こんなとこですかねぇ。試用版で恐縮ですが、不具合やら要望とかありましたらお願いします。|martin|1|1||| [25] => 1230731953|アップデート|今年最後の差分です。| こんにちは。日本では、そろそろ年越しソバの準備でしょうか。こちらは、先ほど、お昼を済ませたところです(ラボに来ている面子で近くのビストロに行きました)。前回の書き庫(1.7.7リリース)で今年を締めくくるつもりでしたが、ちょっと修正があるので。仕様変更に伴うものです[zzz/] 2ファイルですが、ひとつは、JSスクリプト。前エントリーのコメントを読むと分かりますが、「続きを読む」が機能しなくなってました。これは、js/lib.jsの26行目を以下のように修正しています。``
var s, ob; self = o(self); ob = self.sib(1);
``後、バグではないですが、最新版には、ページ内リンク用のスクリプト処理も入れてます。``
if(tar.klass('intralink')){ // A要素のクラス名がintralinkなら`  tar.cancelEvent(); // デフォルトのイベントをキャンセル`  o(tar.$.href.split('/').pop()).view(1); // そのID名を持つ要素にフォーカス`}
`` これの使い道については、来年に。``これと、もう一つは、utils.php。コメント投稿先をindex.phpに変更したんですが、その影響で、コメント内容にタグが含まれていると、Bad Requestを食らって、投稿不能になります。これは、utils.phpの14行目を以下のように修正してます。``
 if($mode != 'search' && $mode != 'comment'){
``後、アマゾンアソシエイトプログラムで、商品画像がないときの画像へのパスに余計にスラッシュが入っていたので省いてます。1770行目。``
$noImg = ROOT_PATH.'Images/notfound-amazon.png';
`` 以上の2点を添付しておきます。では、ちょっと早いですが、瑞祥新春(ずいしょうしんしゅん)。`[file:1230731953_utils.php:88.1/]`[file:1230731953_lib.js:21.7/]|martin|1|1||| [26] => 1230303532|アップデート|ppBlog1.7.7をリリースしました,ppBlog177-release| こんにちは。クリスマスの昨日、ppBlog1.7.7をリリースしました。一度クリスマス・リリースというのをしてみたかったんです。`` 前のバージョン1.7.6の最終リリースが、11月10日でそれから結構色んなところをちょこちょこ弄(いじ)りました。ppBlogも少しずつバージョンを重ねてきて、そんなに弄るところもないだろうと思ったりもしてたんですが、決してそんなことはないですね。まぁ、やり尽くした感が来ても、それはそれで悲しいことなので、どこか弄る部分があるのは良いことでしょう。今回、新たな機能としては、以前のエントリーにも挙げてるものがありますが、以下のような感じです。``
    `
  1. 不正ログイン試行を監視する機能を追加
  2. `
  3. コメントの通知メールに、ダイレクトに返信画面にアクセス出来るリンクを追加
  4. `
`` ありゃ、2つだけか。1番目のやつは、基本的にこのエントリーにあるものですが、特定のIPは不正チェックから除外する、いわゆるホワイトリストも考慮したものにしています。単に、admin.phpの最初の方に、$white_list = array(); という変数を設けただけです。ここには、チェックをして欲しくないIPアドレス(例えば、127.0.0.1とか)を配列形式で入れていけば良いのですが、注意しないといけないのは、IPアドレスなんて外から簡単に分かってしまうということです。なので、原則、このホワイトリストの活用はオススメしません。開発のデバグ用だと思って下さい。`` 2番目のやつは、従来は「コメントが付きましたよ!」という通知メールを受け取って、その記事リンク先にアクセスしても、ログインしていない状態であれば、ログインという手順を踏んで、さらに返信のアイコンをクリックして・・・、というふうにスムーズに返信という訳にはいきませんでしたが、ダイレクト認証をつけたので、気軽に返信が可能です。ただし、セキュリティーを考慮して、メール送信時刻から24時間以内だけ有効なリンクとしています。`` 後は、挙動が気になるところやらバグやら、見栄えの修正など、多岐に渡って弄ってます。主なものは以下の通り。``
    `
  1. コメント投稿のaction送信先をadmin.phpからindex.phpに移した。
  2. `
  3. 更新pingサーバーリストを一新。かつ、管理画面にて、更新サーバーの重複をチェックするように。
  4. `
  5. アクセス解析の「リンク元」で、グーグルのイメージ検索のリンクがうまく動いていなかったのを修正。
  6. `
  7. JavaScriptソースの殆どは、圧縮した状態でリリースしていたのを、圧縮前の状態に戻した。
  8. `
  9. エディタ画面で、テーブルタグ挿入の際、行と列の指定が逆だったのを修正。
  10. `
  11. ブログ名(TITLE属性のやつ)にアポストロフィー(')が含まれていると、お知らせメールのときなどに表示される送信者エンコードがうまく行ってないのを修正。
  12. `
``ってところです。具体的に、1番目から。`` 従来は、コメント投稿の送信先がadmin.phpを介したものになっていました。でも考えてみれば、こうする必要性は全然ないし、admin.phpは管理者用に特化したものであるのが理に適っていると思いますので、送信先をindex.phpにしました。この影響で index.phpに修正が入っています。index.phpの253行目は、従来だと、``
 case 'comment' : include_once('modules/comment.inc.php'); comment_form($UID); break;
``のようになっていますが、最新版ではこの部分が、``
 case 'comment' : include_once('modules/comment.inc.php'); catch_comment($mode); break;
``となっています。`` 2番目の更新ping関連は、以前のエントリーを参照。`` 3番目は、グーグルの画像検索からp2b.jpにアクセスしてくることがあるのですが、そのリンクURLが正しくなかったので、Bad Requestが返ってました。それを修正して、以下のショットのようにきちんとリンクが有効なようにしました。``53.8:515:231:500:224:Google-Image-Search:center:1:1:ジャックバウワーは元気だろうか。:0:`` 4番目ですが、これまでは、複数のJavaScript(以下JS)圧縮プログラムを一度に走らせてくれる便利なサイトThe JavaScript CompressorRaterを利用して、JSソースを圧縮していました。なぜ、圧縮していたかですが、少しでもサーバーからの転送量を減らそうと思ってです。でも、ppBlogで使っているJS群はもともとそんなに重量級ではないですし、このブロードバンドが当たり前のご時世、20KB前後のファイルが16-17KBになったところで、そう大した差はないだろうし、確かにgzip圧縮までかませば3分の1ぐらいになりますが、これは汎用性に問題があります。何より、圧縮するとメンテナンスが大変ですし、JSソースに興味があって読みたいと思う人がいても、圧縮されて1行になってしまったJSソースなんぞ読む気にもなりません(この手の1行圧縮されたJSファイルを展開してくれる Js Decoder みたいなサービスもありますが)。というわけで、基本的にJSソースは圧縮前に戻しました。圧縮してみたいという方は、上記に挙げたサイトを利用すると良いかと思います。ただし、JSソース中にIE用の条件コンパイル(@cc_onとか)を含んでいるoParts.jsなどは注意しないと、この記述を単なるコメントとして削除してしまうものもあるので、動作検証は慎重に。`` 例によって、前回バージョン(11月10日版)からの差分を添付しておきます。ちょっと数が多い気もしますが、基本的に、すべてそのまま既存のものの上書きで良いです。view.phpは、statディレクトリにあるview.phpとの入れ替えになります。notfound-amazon.pngは、トップディレクトリのImagesディレクトリにある既存のやつと入れ替えです。気分転換にアイコンを変えました。`` 最後になりましたが、ppBlogをお使いの皆さん、いつも貴重なフィードバックありがとうございます。良いお年をお迎え下さい[署名/]``「続きを読む」のテストです。``[file:1230303532_DIFF081225.zip:143.6/]|martin|1|1||| [27] => 1228344499|アップデート|ログイン試行過多をチェック| こんばんは。昨日に引き続き。`` ppBlogでは、現状、ログイン試行をチェックする機構は特に採り入れていません。特に、これまで不正ログインを食らったという報告もないようですし。しかしながら、やはり、不正ログインを試みようとする情報は、把握してても良いかなとは思いますので、そういう機能を付けてみました。目指したのは、````です。基本的には、admin.phpをいじるだけなのですが、IPアドレス毎にアクセス拒否を行う動作を検証中に、現行バージョンではこの機能が動いていないことを見つけました。この影響で、admin.phpに加えて、utils.phpも若干の修正があります。``admin.phpに関しては、331行目からの部分に以下の追記をしました。```
  $loginf = OD."login.txt"; // このファイル(ownerディレクトリの中)にログイン失敗情報を記録する`  $ltime = time(); $ldate = date('Y-m-d@H:i:s', $ltime);`  if(is_file($loginf)){`   $loginfo = file($loginf); $lsize = count($loginfo);`   $ips = preg_grep("{.+$ip}", $loginfo); $ips = count($ips);`   if($ips > 5){`    $ban_ini_file = OD.'ban.ini.php';`    include($ban_ini_file); $hit = FALSE;`    foreach ($BAN_LIST as $i => $item){`     if(strpos($item, "$ip|0") || strpos($item, "$ip|1")){`      $BAN_LIST[$i] = "$ltime|$ip|1"; // アクセス拒否対象とする`      $hit = TRUE; break;`     }`    }`    if(!$hit) array_push($BAN_LIST, "$ltime|$ip|1"); // アクセス拒否IPリストに追加`    rewrite_ini($ban_ini_file, $BAN_LIST);`    if(trim(MAILTO) != ''){`     include_once('modules/mail.inc.php');`     $msg  = 'ログイン試行が頻発しているようで、とりあえずブロックしました。IPアドレスは '.$ip.NL;`     $msg .= 'アクセス自体を拒否してます。解除するには、管理画面→「IPコントロール」→「コメント・TB拒否」から。';`     @send_jp_mail('ppBlog::連続ログイン試行', $msg, '', MAILTO);`    }`    exit("ログイン試行過多でブロックされました。");`   }`   if($lsize > 1){`    list($time1,,$ip1) = explode("¥t", trim($loginfo[$lsize - 1]));`    list($time2,,$ip2) = explode("¥t", trim($loginfo[$lsize - 2]));`    if(($ip1 == $ip2 && $ip1 == $ip) && $ltime - $time1 < 30){`     if(trim(MAILTO) != ''){`      include_once('modules/mail.inc.php');`      @send_jp_mail('ppBlog::連続ログイン試行',`       '3回ログインに失敗したかログイン試行が頻発しているようです。IPアドレスは '.$ip.NL, '', MAILTO);`     }`     $loginfo[] = $ltime."¥t$ldate¥t$ip".NL;`     rewrite($loginf, array_unique($loginfo));`     exit("ログイン試行が頻発しているので管理者に知らせました。");`    }`   }`   $loginfo = array_slice($loginfo, 0, 29); // とりあえず30件ほどに`   $loginfo[] = $ltime."¥t$ldate¥t$ip".NL;`   rewrite($loginf, array_unique($loginfo));`  } else rewrite($loginf, $ltime."¥t$ldate¥t$ip".NL);`
`` ソースにあるように、ログインに失敗した時点で、ownerディレクトリにlogin.txtファイルが自動的に作成されます。最大30件を記録するようにしていますが、分かる方は適宜変えてもよいでしょう。`` ログインに失敗したIPアドレスは記録するようにしています。統べて6回ログインに失敗すると、とりあえずそのIPアドレスをアクセス拒否リストに追加します(404 Not Foundを返す)。これは、管理画面の「IPコントロール」から、その解除が可能です。もし、勘違いか何かで、管理者自身がアクセス拒否を食らう可能性もありますが、この際は、ブラウザから管理画面には入れないので、FTPソフトを使って、ownerディレクトリにあるban.ini.phpをダウンロード、自身のIPアドレスが含まれる行を削除して、再度アップすればOKです。`` 普段、不正ログインを試みる対象なんて気にもしませんが、こういう機能が付いていても良いかなと思いました。この機能を実装するには、添付のutils.phpとadmin.phpを既存のやつと入れ替えるだけで良いです。````[file:1228344499_utils.php:87.2/]`[file:1228344499_admin.php:27.6/]|martin|1|1||| [28] => 1226344244|アップデート|差分です| こんばんは。もう年の瀬もすぐそこですね。相変わらず時が経つのは早いものです。`` さて、前回のアップデートで、1900年代の古い記事に画像が含まれる場合、その時系列処理がうまく行ってなかったのを修正したつもりでしたが、不十分でしたので、その差分を添付しておきます(upload.php, utils_admin.php, modules/mrss.inc.phpが該当)。ついでに、画像ポップアップの表示位置の微調整も(js/lib.js)。それぞれ既存のファイルを上書きすればOKです。`` コメントやフォーラムの方で、携帯向けのmoby.phpについて不具合の報告がありますが、今のところこちらでは確認できないので、これに関しては追って報告したいと思います。`` 後、basicテーマのtemplate.phpのヘッダー部分にある``
<span>Powerful Personal-publishing Tool</span>
``が``
<span>Powerful Perspnal-publishing Tool</span>
``となっています。綴りのミスです[いやー/]`[file:1226344244_DIFF081110.zip:26.3/]|martin|1|1||| [29] => 1225332724|アップデート|差分アップデート| こんばんは。ちょっと間が空いてしまいましたが、いくつか不具合がありましたので差分アップデートです。10/16配布版からの差分を添付しておきます。修正点は、以下の通り。````ってところです。結構冷え込んできましたが、手洗いうがいを忘れず元気に過ごしましょう。``[file:1225332724_DIFF081030.zip:43.6/]|martin|1|1||| [30] => 1222337554|アップデート|utils_admin.phpのアップデート|こんにちは。utils_admin.phpのアップデートのお知らせです。548行目からのmake_images_DB()関数だけの変更なんですが。このファイルの先頭(3行目)に記してあるタイムスタンプは、``
/*` UTILS_ADMIN.PHP by martin $ 2008/09/22 18:59:09`*/
``となっているのが最新です。中の変数を弄ったせいで、画像データベースの更新が半分しか完了しないのを修正しています。550行目にあるように、``
$chunk = 50; /* 50枚ずつ処理 */
``という変数を設けました。これは、PIXディレクトリに収めてある画像のデータベースを構築する際に、どれくらいの枚数を纏(まと)めて処理するかを指定します。サーバーのメモリ容量やCPUなどに余裕がある場合は、この数字を100とかに変えても良いでしょう。`` 添付しておきます。(あ、ダウンロードしたやつはファイル名のアンダーバーがないですね。昔、こういう仕様にしたんでした。サーバーにアップロードする際は、utils_admin.phpと改名して下さい。)`[file:1222337554_utilsadmin.php:35.6/]|martin|1|1||| [31] => 1221671259|アップデート|editor.jsのアップデート| こんばんは。未来投稿の機能に関して、デバグ用の時刻確認のためにJavaScriptでアラート表示させていたんですが、それを配布版で消し忘れていました。js/editor.js最新版を添付しておきます。`` これだけでは何なので、Tipsというか補足というか。`` CoolIris向けのMediaRSSを作成すると、feedsディレクトリに、それようのRSSファイルが作成されます。すると画像ギャラリーを開いた際に、そのファイルを認識して、CoolIris仕様のスライドショーへのリンクが表示されますが、その出力タグは以下のような感じです。``
<div class="cooliris-link">`  <a href="javascript:PicLensLite.start({feedUrl:'http://martin.p2b.jp/feeds/gallery1.rss'})">`   Slide show powered by Cooliris`  <img title="Launch SlideShow" alt="" src="http://lite.piclens.com/images/PicLensButton.png"></a>` </div>
`` ここにあるように、div.cooliris-linkというクラス名を用意してあるので、このリンク表示をセンタリングしたい場合は、各テーマのスタイルシートに、以下のような記述を加えると良いです。この指定がないと、リンク表示は左寄りになってしまいます。``
div.cooliris-link {`  text-align: center;`}
``また、各テーマディレクトリのImagesディレクトリにPicLensButton.pngという画像を用意していれば、CoolIrisのサーバーからではなくて、自分で用意した画像を表示することが出来ます。デフォルトでは、CoolIrisが用意した画像 が表示されます。````[file:1221671259_editor.js:31.2/]|martin|1|1||| [32] => 1221601269|アップデート|差分その2| こんばんは。昨日に引き続き・・・。`` バージョン1.7.4から、モブログで未公開の記事が見える状態だったようなので、それを修正しました。my_file()関数を変えたのが原因でした。`` 指定した時間に自動投稿するオンタイム投稿ですが、こちらのテスト環境ではうまく行っていたのですが、ダメという報告がありました。調べてみると、editor.jsで「オンタイム」処理をしているつもりが「オンポスト」処理になっていました。きっと眠かったんでしょう[zzz/]`` あと、MediaRSSを作成したタイミングで、画像ギャラリーでもCoolIrisを有効にする処理を昨日入れたのですが、サーバーの設定によっては、うまく行かないだろなと思っていたら、やはりそうでしたので、この部分の処理を変えました。`` 後、ケータイにURLのアドレスを送る際にうまく行かないというご報告があって修正していたつもりでしたが、不十分だったので、直しました。`` この差分を添付しておきます。`` あと、jsディレクトリに.htaccessがある場合は、単なるごみなので削除して下さい。PHPがセーフモードで動いていると、このファイルのせいで動作がおかしくなる可能性があります。``[file:1221601269_DIFF080916.zip:55.3/]|martin|1|1||| [33] => 1221498072|アップデート|差分です。| こんばんは。先週末1.7.6をリリースしましたが、アクセス解析で、Netscape6が実際よりも多くカウントされているようなので修正して、ついでにiPhoneやiPodからのアクセスも解析するようにしました。`` 後、CoolIris用のMedia RSSを作成すると、ギャラリーモードでCoolIrisのモジュールが自動的に有効になるようにしました。とりあえずは手動での設定でしたが、それだと使い勝手が悪いでしょうから。`` 後は、editor.jsが手元のものより古いバージョンでの配布であったので、それの入れ替え。他、Images/dialog-close.png画像の配布もれです。`` 以上の差分ファイルを添付しておきます。view.phpはstatディレクトリへ、iphone.png画像は、stat/iconディレクトリへ。mrss.inc.phpとgallery.inc.phpはmodulesディレクトリへ。editor.jsはjsディレクトリへ。最後、dialog-close.png画像はImagesディレクトリへアップして下さい。`[file:1221498072_DIFF080915.zip:27.8/]|martin|1|1||| [34] => 1221316807|アップデート|ppBlog1.7.6リリース| こんにちは。地下鉄に乗って久しぶりに日本語の本を読んでいたら、読み耽ってしまい思わずに終点まで行ってしまったmartinです。集中すると時間軸や聴覚が消失してしまうことは誰にでもあると思いますが、まぁそういう本に巡り会えるのは幸せなもんです。`` さて、1.7.6をリリースしました。1.7.5でのバグ修正やら、書き換えなどがメインです。1.7.5に加わった新機能としては、````ぐらいです。[g]CoolIris[/g]に関しては、http://p2b.jp/200808-ppblog-image-gallery-for-coolirisのエントリーを参照して下さい。2つめの記事毎JavaScriptやCSSのサポートですが、これはどういうものかというと、記事作成画面のテキストエリアで、例えば以下のような指定をすると、``
`[style]`.article-content h3 {`  border: solid 1px tomato;`  background: ivory;`  text-align: left;`  font-size: 150%;`}`[/style]
`[style]`.article-content h3 {` border: solid 1px tomato;` background: ivory;` text-align: left;` font-size: 150%;`}`[/style]`この記事に対して、h3の指定が有効になります。要は、<style>の代わりに[style]とかっこを変えて記述すればOKです。テキストエリア内なら、どこに記述しても良いです。``

具体的な例です

``JavaScriptも同様で、例えば、``
`[script]`o(document).on("dblclick", function(){alert("ダブルクリックしました")});`[/script]
`[script]`o(d).on("dblclick", function(){alert("ダブルクリックしました")});`[/script]``みたいに記述すれば、この記事が表示されている状態で、ダブルクリックすると記述に従ってダイアログが表示されます。なぜ、これを実装したかというと、 「CSSを使ったボタンデザイン」みたいな記事を書きたいと思ったときに、この記事に対して特定のスタイルシートを適応させたかったからです。ページのソースをみると、どのように記述されているか分かると思います。JavaScriptの指定例では、「チェックボックスを一度に複数選択したい」で利用しています。`` ツールバーのステルスモードですが、固定モードの際に、マウスをツールバー画面上端に持っていくと、ツールバーがぴょこっと出てきます。慣れると使いやすく感じます[はてさて/]`` 例によって、1.7.5からの差分ファイルを添付しておきます。すべて単なる上書きで良いです。JavaScript関連ファイルの殆どは圧縮していますので、可読性が著しく低下しています。圧縮前のソースが欲しい方はお知らせ下さい。`` なお、このバージョン1.7.6で一部CSSのクラス指定(管理画面などで)が変わったものがあります。ppBlog向けテーマチェッカー で確認すると良いでしょう。```[file:1221316807_DIFF080913.zip:173.6/]|martin|1|1||| [35] => 1220460788|アップデート|アクセス解析:グーグルの新ブラウザChromeに対応| こんばんは。もう秋ですね。`` さて、昨日ぐらいに、グーグル仕様のブラウザGoogle Chromeがリリースされました。まだβ版ですが、サクサクしてます(β版だから軽いという話もある)。なので、ppBlogのアクセス解析もこれに対応させました。もう早速アクセスがあるようです。``34.5:750:446:500:297:Google-Chrome:center:1:1:Operaより多いんだな・・・。:0:`` ちなみにこのブラウザがはき出すUser-Agentは以下のような感じ。レンダリングエンジンには、Safariと同じWebKitを使っています。ブラウザ判定としては、Chrome/ という文字が含まれていれば・・・ってなりますね。``
`Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
`` まだ、使いこなしてないけれど、何だか最近FirefoxでのGメールのレスポンスが遅い気がするので、Gメール専用アプリとして使うと良いかも。これ、Gmailがえらく速い。 アプリケーションのショートカットをデスクトップ上に作ることが出来るので、あたかもローカルのメールソフトみたいに使えるのが良い。ところでGmailはGoogle Gearsに対応しているんだろうか。`` 最新版のstat/view.phpとアイコンを添付しておきます。アイコン は、stat/iconディレクトリにアップして下さい。view.phpはstatディレクトリの既存のやつを上書きです。``[file:1220460788_diff080903.zip:11.2/]|martin|1|1||| [36] => 1220308925|アップデート|万年祝日カレンダーのアップデート| こんばんは。ppBlogでは、万年祝日カレンダーに対応していたつもりですが、今月の敬老の日が第4月曜日になってますね。軒並み、どのバージョンのppBlogもそうなっている気がします。。`` ハッピーマンデーの計算方法で勘違いしていました。holiday.class.phpの65行目から68行目を以下のように修正しました。``
function getMonday($y, $m, $wk) { // 第wk週目の月曜日の日付を返す`  $utime = strtotime("$wk Monday", strtotime('last Monday', mktime(0,0,0,$m,1,$y)));`  return date('md', $utime);`}
`` なんか別にスマートな方法があるような気がしないでもない・・・。`` ちなみに、カレンダーには、誕生日などの個人的な記念日を登録することが出来ます。「管理画面」→「環境設定」→「記念日の設定」で設定できます。``

追記: 添付ファイルをアップしただけではカレンダーは更新されません。カレンダーはキャッシュから表示させているので。なので、更新を反映させるには、9月の記事を書き庫するか、あるいは既存の9月の記事を編集して、「更新」するか(特に修正する必要はなく、ただ更新するだけ)、あるいはFTPソフト上から、直接、cacheディレクトリの200809_box1.dbといった200809のカレンダーキャッシュを削除すればOKです。

``[file:1220308925_holiday.class.php:2.4/]|martin|1|1||| [37] => 1218218304|アップデート|アクセス解析の最新版です。| こんばんは。アクセス解析をブラッシュアップしました。基本的なインターフェイスは変わりませんが、従来の「OS/プラットフォーム」を分離させて、「検索エンジン2」と統廃合、「検索エンジン1」(センスのないネーミングだ)は「検索ワード」に変えました。`` 「OS」の項目では、文字通りOS毎のシェアを表示するようにしました。従来は、プラットフォームとごっちゃになっていたので。以下スクリーンショットを挙げておきます(今月のある区間のデータです)。``7.3:671:132:500:98:stat1:center:1:1:新しいメニューです。:0:```34.7:771:446:500:289:stat2:center:1:1::1:`OS毎の集計では、WindowsXpが未だに7割近くを占めています。Vistaは10%にすら届いていません。大丈夫かなぁ。`` 次は、プラットフォーム毎の集計画面です。いつ頃からか知らないけれど、グーグルやYahooで、ブログ検索専用のロボットがいるみたいで(Feedfetcher-GoogleとかYahooFeedSeekerJpとか)、それらは、従来の検索ロボットとは区別してカウントするようにしてます。`37.6:754:511:500:339:stat3:center:1:1::1:`` んで、ブラウザ毎。OSでXPがトップなのを反映してか、相変わらずIE6が4割近く。。まぁ、これでも随分と減ったんですが。でも、よく見ると、Sleipnirが8%ぐらいあって、大体IE6エンジンが半分以上だろうからやっぱり4割以上は未だにIE6ということかな。それでも、Firefoxが2割強と健闘してます。時代も変わったもんです。`42.5:762:553:500:363:stat4:center:1:1::1:`` 次に「検索ワード」を見てみます。ppBlogが一番多いのは、まぁ当然として、JavaScript関連も目立ちますね。``41.5:753:427:500:284:stat5:center:1:1::1:`` 最後に、これは何も変わっていませんが、「ユーザー環境の取得」を挙げておきます。テーマなどをデザインするときに、ユーザーの画面の解像度とかは気になるところですが、今やXGAよりもSXGAの方が多いんですね。良いことです[にこっ/]``32.1:753:549:500:365:stat6:center:1:1::1:`` 例によって、最新版を添付しておきますね。statディレクトリの既存のやつを上書きするだけです。`[file:1218218304_stat080808.zip:13.4/]|martin|1|1||| [38] => 1217977918|アップデート|差分です。| こんばんは。バージョンを上げようかと迷いましたが、偶数よりは奇数が好きだし、そう大幅な修正をしたわけでもないので、差分で。でもファイルはいつもより多めかな・・・。主なところを挙げときます。```
    `
  1. 自動モブログを有効にしているときの独自セッションの挙動がおかしかったので、修正しました。モブログ投稿用のmob.phpをutils.phpの中で読み込む際に、2つ目のセッションが作られるんで、それでたまにログインしているのに、ログインアイコンが表示されないなどの症状が出ることもあったと思います。
  2. `
  3. utils.php、admin.phpに関しては、結構、ちょこちょこ変えています。WindowsのApache+PHPな環境で、fgets関数が意図したように改行部位まで読んでくれないことがあるので(HTML文字実体参照を多用していると起こりやすい?)、それに対処したりとか、動的モードの際のカテゴリーの絞込みリンクの修正とかです。
  4. `
  5. utils_admin.phpに関しては、オンポスト機能を取り入れたために、記事別のコメント・トラックバック許可指定が利かなくなっていたのを修正。新しく機能を付けると、それまで動いてものが動かなくなること多々あり。。
  6. `
  7. 後は、editor.jsやらソースハイライト表示用のsyntax.jsのブラッシュアップとかです。syntax.jsでは、従来は、JavaScriptやらPHPの組み込み関数のハイライトに関しては、指定したものだけハイライトする仕様でしたが、これだと数が多すぎて埒が明かないので、適当に推定するようにしました。
  8. `
  9. modules類に関しては、editor.jsに伴うものでwrite.inc.phpとedit.inc.php。記事を書きながら、ローカルプレビューはよく使うのですが、このボタンも固定ツールバーに貼り付けるようにしました。「公開」「ドラフト」ボタンもです。個人的には使いやすくなりました。
  10. `
  11. 後は、ひとつ前の記事にあるように、Gメールからの擬似モブログ投稿にも対応しました。他のwebメールでは試していません。Gメールでは、記事の作成画面で、リッチテキスト形式(いわゆる[g]WYSIWYG[/g])で記事が書けるので、ワープロみたいな書き心地を求めている方には、これを活用するのも良いかもしれません。個人的には、この手のエディタは、ちょっと動作がまどろっこしい部分があるので、「ローカルプレビュー」で確認しながら記事を書くというスタイルが好きですけど。記事管理用のarticle.inc.phpは、記事一覧の画面で記事のページ数を表示するようにしたりとか。
  12. `
`` 今回は、こんなところですかね。この記事を書きながら思ったのですが、エディタ画面の固定ツールバーは便利なものですが、パソコンの解像度によっては、このツールバーの高ささえも気になることもあるかも知れないので、記事を入力中は、上に隠れてしまって、マウスを近づけると、ピョコッと出てくるというのも良いかも知れない。ステルスモードっていうのかな(違うか)?``` `[file:1217977918_DIFF080805.zip:85.3/]|martin|1|1||| [39] => 1217609907|アップデート|差分アップデート| こんばんは。v1.7.5になってだいぶ安定した気はしますが・・・と言いつつアップデートです。`` ひとつは、自動モブログを有効にしてると、アクセス解析の画面などでエラーが出る場合があると思うので、それに対処するためのutils.phpと(後、ソーシャルブックマークのAPIが変わったのがあるようでそれは今回見送り)、後は、JavaScript関連です。oParts.jsに関してですが、サーバーのセキュリティーの設定によっては、IEでの外部HTCファイルの読み込みが出来なくなる可能性もあるので、それに対処しました(うちのところがそうだったんですが)。具体的には、外部HTCファイルの読み込みを止めました。代わりに、みんなが使っているdoScrollメソッドを利用することにしました。もともとは、Diego Perini氏が見つけた手法です。右に倣えは好きではないけど、この場合、デメリットが見あたらない。``
if(client.MSIE){ // IE向けDOMContentLoaded` (function(){`   try {`     document.documentElement.doScroll("left");`   } catch(e){`     setTimeout(arguments.callee, 1); return;`   }`    F(); // 発火!` })();`}
`` 後は、IE8やらSafari3で使えるdocument.querySelectorAllを利用できるなら、そうするようにしました。Firefox3.1でも使えるようになるでしょうし。Nativeな実装なので、ずっと速いです。oParts.query()関数の中で指定しています。`` 次。エディタ用のスクリプトeditor.jsです。テキストエリアの高さ(縦幅)を文章の長さにフィットさせる関数をブラッシュアップして、結構正確に高さを合わせるようにしました。```
function resizeTextArea(e){` var MSIE = /*@cc_on!@*/false;` var cssValue = function(p){ // 実際の諸々のサイズやらを取得する関数`  if(window.opera) e.style.lineHeight = "130%"; // Operaでは、1.3みたいな指定を読んでくれない`  return MSIE ? e.currentStyle[p.replace(/-¥D/, function(m){ return m.charAt(1).toUpperCase()})]`              : getComputedStyle(e, '').getPropertyValue(p);` }` var ruler = d.createElement("SPAN"); // テキストエリアのシャドウを作成` ruler.textData = function(data){ if(MSIE) ruler.innerText = data; else ruler.textContent = data; };` /* 以下でテキストエリアのサイズに関する情報を取得 */` ruler.style.cssText += "position: absolute; left: 0; visibility: hidden; white-space: pre;"`                     +  "padding: " + cssValue('padding') + ";"`                     +  "font-size:"+ cssValue('font-size') + ";"`                     +  "line-height:" + cssValue('line-height') + ";"`                     +  "font-family:" + cssValue('font-family') + ";";` document.body.appendChild(ruler);` var rows = 1, lines = e.value.split(/¥n/), lineHeight = 17, curWidth = e.clientWidth;` for (var i = 0, len = lines.length; i < len; i++){`  ruler.textData(lines[i]);`  if(ruler.offsetWidth > curWidth) rows += parseInt(ruler.offsetWidth / curWidth);` }` ruler.textData("A¥nZ"); // テキストエリア1行分の高さを知りたい` lineHeight = ruler.offsetHeight/2; /* これでゲット*/` document.body.removeChild(ruler);` e.style.height = lineHeight * (rows + len + 1) + "px"; // rows+lenが見た目のほぼ正確な行数。遊びのために1行足す`}
```挙動に関して、どういうのが使い勝手が良いかは、各人の好みによりますが、文字入力に応じてテキストエリアのサイズを自動的に変えたい場合は、editor.jsの778行目にあるコメントアウトを外して``
ed.on('keyup', function(){` resizeTextArea(ed);`});
``として下さい。一応、このデモサイトを挙げておきます。``例によって、最新版との差分を添付しておきます。単なる上書きで良いです。最新版のjs/oParts.jsにしたら、もはやjs/ie.htcは不要ですので削除して下さい。``[file:1217609907_DIFF080801.zip:47.4/]|martin|1|1||| [40] => 1217193459|アップデート|ppBlog1.7.5に|こんばんは、martinです。``いくつかの不具合やら、動作の改善を施して、バージョン1.7.5としてリリースしました。不具合は、オートセーブ機能やドラフト投稿周りです。あとは、細かいところの動作性の向上です。動作性操作性の向上に関しては、````って、とこです。いつものように、v1.7.4からの差分ファイルを添付しておきます。modules関係は2つ、既存のやつを上書きして下さい。jsファイルもjsディレクトリのものを上書き。stat類は、既存のやつを上書き、2つの画像(アイコン)はstat/iconディレクトリにアップして下さい。`` お試しサイトも、v1.7.5にしました。```

[追 記 2008/07/28 09:04:59]

` 書き忘れていましたが、stat/log.phpの36行目に``
$displen = 5; // トータル数の桁数を設定 
``というのがあります。これは、サイトで表示されるアクセス総数の桁数を指定するところです。いつのまにか、7桁必要な数になっていたので、このタイミングで、任意に桁数を指定出来るようにしました。初期設定は、5桁です。```[file:1217193459_DIFF080727.zip:85.8/]|martin|1|1||| [41] => 1215520082|アップデート|今日の差分| こんにちは。昨日1.7.4をリリースしましたが、新機能を取り入れた後なので、新たなバグが付きものですが、早速ご指摘がありました[zzz/]従来のドラフト投稿と、記事の削除が出来なくなるというもので、これのチェック忘れてました。今日付のダウンロード版は、修正されています。`` 後、アクセス解析のバージョンアップです。Firefox3.xでのアクセスに対応したのと、あとWindows 98仕様のエージェントが実際よりも多くカウントされるのを修正しています。`` 以上、2点のファイルを添付しておきます。view.phpは、statディレクトリのやつを上書きして下さい。```

[追記2008/07/08 21:38:57]

` 添付した2点のファイルがダウンロード出来なかったようで。utils_admin.phpの入れ替え前後でこの記事を書いていたので、エラーが出たりしてたんですが、そのゴタゴタのせいでうまくIDが付加されなかったようです。後、画像をお洒落に見せるスクリプトがIE系でうまく機能しなくなってたので、そのjsファイルも添付しておきます。IE6に合わせようとして、余計に動かなくなるって、なんだか以前も経験したような。。```

[追記2008/07/09 01:26:43]

` photoeffect.js最新版のタイムスタンプは$ 2008/07/09 01:14:17となってます。``[file:1215520082_utilsadmin.php:34.2/]`[file:1215520082_view.php:37.6/]`[file:1215520082_photoeffect.js:5.5/]|martin|1|1||| [42] => 1215458071|アップデート|1.7.4のリリースです。| こんばんは。[g]貴種流離譚[/g]というモチーフはあまり好きでないmartinです。さて、バージョン1.7.3で暫く経過していましたが、細かい不具合とか、動作上、気になる点がいくつかあったので、それの修正がメインのアップデートです。あと、新たな機能として、目玉というほどでもないのですがオンタイム投稿を実装してみました。つまりは、未来の日時に設定しておくと一旦ドラフト投稿となって、その設定した時刻以降に自動的に公開されるというやつです。公開されるタイミングは、完全にアクセス依存(自分に限らない)なので、全くアクセスがないと投稿されませんが、まぁそういうことはないでしょう・・・。`` 1.7.3からのアップデートですが、今回、キモの設定ファイルowner/ini.inc.phpに1カ所だけ修正が入ったので、上書きされる際は、まずこのownerディレクトリのini.inc.phpの修正からはじめて下さい。具体的には、次の一行を、71行目あたりのPPBLOG_VERSIONの上か下の行に追加します。``
define('TIMEZONE','Asia/Tokyo');                      /* タイムゾーン。通常は変更不要。*/
`` まぁタイムゾーンの設定なのですが、将来のことを考えると今の内に入れておいたが良いかなと。一応、参考として、差分添付ファイルにini.inc.phpも梱包してます。これは参考なので、間違えて上書きアップロードしないように注意して下さい。`` サーバー上のご自分のowner/ini.inc.phpをダウンロードして、上記修正後、無事に上書きアップロードしたら、次は、log.phpというPHPファイルがあるので、これはstatディレクトリの中のやつを上書きします。`` とりあえず、この2つの作業をこの順番でやるのが、今回のポイントです。後は、いつものように、残りのutils.phpやらutils_admin.phpやらindex.php、cache.phpはトップレベルのディレクトリのやつを上書きして、modulesフォルダの中のいくつかのPHPファイルは、サーバー上のmodulesディレクトリの中のやつを上書きすればOKです。`` index.phpに修正が入っていますが、これは画像認証のスクリプトhiratpchaの呼び出し先を変えたためです。この呼び出す部分の処理を削りました。`` あ、あと、jsファイルもいくつか修正が入ってます。これも上書きで。Firefox3になって、画像をお洒落に見せるスクリプトがエラーを吐くようになったり、IE6での挙動がやっぱり変だったりしたのを修正してます。これでも、完璧とは言えませんが、概ね動いてくれるかなと。`` 後、js関連でいえば、ひとつのエントリーに複数のページを設定している際に、ページリンクをクリックすると、記事タイトルの部分にフォーカスが移るようにしてたつもりでしたが、そうなってなかったのを修正したりとかです。`` modules群の修正は、主にページ遷移に関する部分での修正です。記事が多くなってページ数が増えてきて、何だかページリンクの挙動がおかしいと気付きました。`` 最後になりますが、自動インストール版は、今日の朝にダウンロード出来る状態にしておいたのですが、夕方になって、画像ギャラリー用のスクリプトmodules/gallery.inc.phpの手直しをしたので、これは日本時間で23時過ぎに入れ替えてます。なので、心当たりの方は適宜、最新版と入れ替えて下さい。添付しておきます。`` 日本では七夕か。``[file:1215458071_DIFF080707.zip:115.6/]`[file:1215458071_gallery.inc.php:4.3/]|martin|1|1||| [43] => 1211429019|アップデート|1.7.3の差分です。| こんにちは。私事で恐縮ですが、先週末から急性腸炎で死んでました。当初は、食中毒によるものか、それとも風邪のウィルスによるものか判断しづらかったんですが、今の経過を見るに風邪症状は全くなく、食べたもので何となく心当たりがあるので、食中りかなと思っています。昨日まで、やんわりとした下腹部痛と水様便でしたが、峠を越えたようで。基本的に薬には頼らない主義(もっともこの場合、治療としては補液とか整腸剤ぐらいのもの)で、治るのに4-5日かかりますが、さすがに症状があるときは、パソコンに向き合ってプログラムを弄る気にもなれず、ぐったりしてました。`` その間に、いくつか不具合の報告が来てましたので、そのアップデート版です。お試しサイトに、2000年以前の書き込みが出来ないというカキコがあって、2000年問題は対処していたんだけどなぁ、と調べてみると、ログを取得する際に、log/2xxx.logという形式のログしか取得していませんで。1973年とかの記事も取得するようにしました。`` あとは、CSS関連で、Ajaxボタンでのマウスオーバーの際の記述が変だったのを修正(theme/basic/basic.css)。``
.cute-button:hover button { /* button:hover になってました */`  background-position: 100% 50%;`}
`` 同じくCSS絡みで、(少なくとも)Firefoxでブラウザの文字サイズを変えると(Ctrl+とかで)、テーマの切り替え表示が上手く作動しないというのに対処(theme/basic/basic.css)。``
#theme-selector {`  position: absolute;`  top: 153px; left: 70px;`  width: 100px; /* height 指定をなくした */`  color: navy;`  cursor: crosshair;`  text-align: center;`  border: solid 1px #aaa;`  font: 500 13px/20px Century Gothic, Arial, sans-serif;`  z-index: 1000;`}
`` あとは、カテゴリー関連のスクリプトを見直したりとか(カテゴリー関連はなかなか片付かないですね[すやすや/])、アップした写真をお洒落に見せるスクリプトのphotoeffect.jsがIEでうまく再現されていないのを修正とか、静的モードでのタグエントリーのリンクを修正とか、オートポストで記事を書いていると、添付ファイル名が変になるのを修正したりとか、editor.jsのプレビューでの添付ファイルのHTML出力の再現性を高めたりとか。`` まぁ、そんなところです。```

追 記

` フォーラムの方を見てたら、テーマの削除が出来ないというのがあり、該当箇所は古い記述のスクリプトでした。具体的には、theme.inc.phpの229行目は``
o("#" + ret.split(/,/)[0]).away();
``とすればOKです。``[file:1211429019_DIFF080522.zip:92.2/]`[file:1211429019_theme.inc.php:19.8/]|martin|1|1||| [44] => 1210930638|アップデート|週末の差分です。| こんにちは。画像をセンタリング指定にして、かつキャプションがない場合、文字の回り込みが解除されないのを修正しました。キャプションがない場合は、該当部分のDIV要素が空っぽになるので、実際のHTMLでは出力しないようにv1.7から消したのですが、これがいけなかったです。なので、DIVの替わりにHR要素を入れるようにしました。幸い、ppBlogでは、まさにこういう目的のためにhr.clearを用意していたので、最小限の変更で済み、テーマを弄ることもなかったです。utils.phpの916行目を``
$photocap = $caption=='' ? '<hr class="clear" />'・・・
``としました。また、カテゴリー名に半角スラッシュが入っていると、カテゴリーアイコンを取り出す際に正規表現絡みのエラーが出るので、これを回避するようにしました。utils.phpの444行目と721行目の部分を``
$cat_icon = preg_grep("|$cat.+?¥|¥d+?¥|.+$|", $CATEGORY_LIST);
``としました。後、theme.inc.phpの気になる部分をちょいと修正。以上2点を添付しておきます。`` また、サーバーのPHPがセーフモードで動いている場合は自動インストールは不可なので、セーフモード版も用意しました。``あぁ、そう言えば、アマゾンアソシエイトのIDがppblog-22のままで自分のIDが反映されないというご指摘があったのですが、こちらでは確認できませんでした。他にも同じ症状の方がいますでしょうか? ちなみに、このサイトでは、アマゾンアソシエイトは殆ど活用していないので当然かもしれませんが、時々、アマゾンから月間レポートと称して、お知らせメールが届くのですが、いつも``
このたび2008年*月の紹介料のお支払い手続きを開始いたしました。
`しかしながら、 *月末時点での累積紹介料がお支払いの最低金額を満たしておりませんでしたので、次の月に繰り越しをいたしました。
``という文言で、未だ一度も受け取ったことがないです[こぶた/]アフィリエイトちゃこんなもんですかね。````[file:1210930638_utils.php:82.8/]`[file:1210930638_theme.inc.php:19.8/]|martin|1|1||| [45] => 1210674145|アップデート|1.7.3の差分です。| こんにちは。3つです。`` ひとつは、jsディレクトリのphotoeffect.jsですが、たまにFirefoxでJSエラーが出るようなので、try..catchで逃げました[いやー/]。どのタイミングで発生するのか実はよく掴めていないんですが、少なくともローカルのテスト環境で再現性のあるエラーが出ていたのでそれを回避するようにしてます。`` 2つめは、画像アップロードに際して、動的にメモリ割り当て量を増やす処理を入れているのですが、見積もった必要メモリサイズがサーバーの初期値よりも小さい時に、わざわざ小さい値に設定してしまうのを避ける処理を入れました。個人のブログの方で写真をアップしていて、この現象に気付きました。この修正でutils_admin.php。`` 後は、モブログの設定でちょっと弄った箇所があるのですが、中途半端でした。これはmodulesディレクトリのmoblog.inc.phpです。`` あ、あと、前回のアップデート記事で書き忘れたことがあったので追記です。テーマ関連の修正ですが、テンプレートのtemplate.phpにある記事ボックスのひな形の部分ですが、従来のバージョンでは、カテゴリー部分の指定がちょっと入り組んでいたので、この部分はシンプルに``
<p class="article-category">%_ARTCL_CATEGORY_%</p>
``のようにしています。``[file:1210674145_photoeffect.js:5.2/]`[file:1210674145_utils_admin.php:32.4/]`[file:1210674145_moblog.inc.php:6.7/]|martin|1|1||| [46] => 1210517551|アップデート|ppBlog1.7.3の自動インストール版| こんばんは。とりあえず自動インストール版を昨日リリースしました。が、今日ちょっと弄っていてutils.phpのurl_encode関数辺りを変更したので、その差分を添付しておきます。また、テーマ管理画面で「テンプレート」←→「スタイルシート」の切り替えリンクが適切に作動してしなかったので修正しました(theme.inc.php)。あと見栄えの修正でpages.inc.php。以上の3つを添付しておきます。`` 先月の4月23日に差分ファイルを出しましたが、それから至る所を弄りました。昨日のリリース版では、JSスクリプトはoParts.js, lib.js, photoeffect.js, syntax.js, comment.jsは軒並み手が入ってます。modulesも色々変更を加えているので、1.7.3ベータ版をお使いの方は、現行リリース版(080511)をダウンロードされて、jsディレクトリとmodulesディレクトリの中身は一括して上書きするのが楽だと思います。utils.phpなどのトップディレクトリのファイル群については、これも一括して上書きして下さい。変わっていないPHPファイルもありますが、アップデート漏れを避けるにも、とりあえず上書きというのが良いかと。ログやらownerディレクトリ、cssディレクトリ、statディレクトリの中身は特に何も変更することはないです。`` テーマ関連で変更があります。Ajaxを利用してコメントなどを読み込んで表示させるボタンですが、これらのボタンにはcute-buttonというクラス名を与えました。utils.phpが出力する、このボタンのHTMLは以下のようになります。``
<div class="cute-button" onclick="loadComments(1209722736);">` <button title="ここでコメント・トラックバックを展開します">12件のレスポンス [+]</button>`</div>
`` これに対するテーマBasicでのCSS指定は以下のような感じです。``
.cute-button {`  background: url(Images/button-bg-left.png) no-repeat 0 0;`  height: 24px;`  margin: 3em auto 2.5em 1em; /* 好きな値を。本文とのマージン */`  padding: 0 0 0 12px;                 /* ボタンの左パディングに相当します */`  display: inline-block;`  display: -moz-inline-box; /* for Firefox2.x */`  zoom: 1; *display: inline; /* for IE */`}`.cute-reply { margin: 1em auto 4em 4em; } /* 「コメントする」ボタンへの対応 */`.cute-button button {`  background: url(Images/button-bg-right.png) no-repeat 100% 0;`  height: 24px; line-height: 24px;`  cursor: pointer;`  display: block;`  padding: 0 12px 0 0;           /* ボタンの右パディング。上記の左パディングと同じ値。 */`  margin: 0;`  border: none;`  overflow: visible;                 /* IEのために必要 */`  font: 500 13px Trebuchet MS, Tahoma, 'ヒラギノ丸ゴ Pro W4', 'メイリオ', Arial, sans-serif;`}`* html .cute-button { overflow-y: hidden; width: 1%;} /* for IE6... */`* html .cute-button button { width: 1%;}   /* for IE6... */`.cute-button:hover {`  background-position: 0 50%;`}`.cute-button button:hover {`  background-position: 100% 50%;`}`.cute-button:active {`  background-position: 0 100%;`}`.cute-button:active button {`  background-position: 100% 100%;`}`.cute-button button[disabled] { `  color: #aaa;`}`.cute-button button:focus::-moz-focus-inner { `  border-color: transparent !important;  /* Firefoxでのドットフォーカスを避けるため */`}`
`` 上記以外に、配布しているベーシックテーマのCSSには、一応IE6向けに、モダンなブラウザに似せたボタンアクションにするための記述も書いてますので参考に。とりあえずコメントアウトしていますが。`` 結果として、それまでのこのAjaxボタン関係で使用していた.button-ownerとか.comment-expandとか.commentFormHereは不要になります。`` あと、1.6以下のバージョンと現行バージョンでは、カテゴリー定義ファイルとページリストの定義ファイルの形式が異なっているので、これを現行のものに対応させるための変換ページを用意しました。トップページのメニューバーの「Tools」にあります。`` 1.6系からのバージョンアップに関しては、新規に最新バージョンをアップロードして、そこに既存のログなどを流し込むやり方をオススメします。既存のカテゴリー定義ファイルとページリスト定義ファイルは上記ページで変換した後にアップして下さい。``[file:1210517551_DIFF080511.zip:43/]|martin|1|1||| [47] => 1208923892|アップデート|差分その3| こんにちは。アップロードした画像に拡大画像があるときは、マウスの形状がリンクを示すポインターに変わってそれと分かるというのを意図していたのですが、その指定をこれまでインライン指定で、``
 style="cursor: pointer;" /* カーソルの形状をポインターに */
``としていたのですが、汎用性を持たせるために、前回のアップデートでこれを削りました(テーマ側で指定できるように)。でも、肝心のクラス名がないので、これじゃテーマファイルのCSSでは指定出来ませんね。なので、拡大画像があるサムネイル画像に対しては、IMGタグ内に resized というクラス名を与えるようにしました。これで、各テーマのCSSファイルで、```
img.resized, canvas.resized { /* CANVASタグにも指定(お洒落に見せる画像向け) */` cursor: pointer; `}
``というのを与えれば、ポップアップのある画像に対しては、マウスの形状がそれと分かるようにリンク様に変わります。さて、このサイトではそうしているのですが、このマウスカーソルの形状を好きな画像に変えるには、```
img.resized, canvas.resized {` cursor: url(Images/zoomin.cur), pointer; /* Firefox向けに2番目の指定は必須 */`}
```のように指定します。指定する画像は基本的はGIFでもPNGでも何でも良いはずですが、肝心のIEが.curしか認識しないため、カーソルファイルを指定しています。Opera以外のモダンなブラウザはだいたい対応していると思います。Firefoxでは、画像以外の属性も指定しておかないと、この指定が効かないので、必ず2番の指定も忘れず付けましょう。後、OS側の要請により、カーソルファイルのサイズは32ピクセルx32ピクセルが上限です。`` 普段、カーソルファイルはあまり扱わないかと思うので、フリーで使えるソフトを紹介しておきます。日本語のインターフェイスにも対応しています。ドロップシャドウなども簡単に付けることが出来ますよ。`` http://cowscorpion.com/Image/GreenfishIconEditorPro.html`` という訳で、上記修正を施したutils.phpphotoeffect.jsを添付しておきます。```

追 記

```IEでは、お洒落な画像効果を効かせた際に(photoeffect.js)、上記の指定では、マウスカーソルが指定画像にならないので、ここはクラス名.resizedの指定を以下のようにする必要がありますね。少なくともppBlogでは、resizedというクラス名は他の部分では出てこないので、まぁいいか…。``
.resized {` cursor: url(Images/zoomin.cur), pointer; /* Firefox向けに2番目の指定は必須 */`}
```[file:1208923892_DIFF080423.zip:28.5/]|martin|1|1||| [48] => 1208858110|アップデート|今週の差分その2| こんにちは。こちらもようやく暖かくなってきました。こっちは、日も長くて午後9時ぐらいでもちょっと空は明るめです。天気が良いと午後7時ー8時くらいの太陽の照り方が日本での午後3時過ぎぐらいの感覚なので、ほんとに昼間が長く感じられ、得したような気分になるような。`` さて、昨日のアップデートで、余計にバグが出たのでその修正です。よかれと思ってした改変が裏目に出ました。具体的には、カテゴリーのプルダウンメニューで、サブカテゴリーなら「┗ サブ・カテゴリー名」とするのが見やすいかなと安易に変えたのがダメでした。もとに戻しました。`` あとは、JavaScriptの等号成立に関することでちょっと意外なことがあったのでメモがてら。気付いたのは数週間前ですが。以下のコードは、小生はてっきり成り立たないと思っていたのですが…。```
alert(0 == ""); /* ゼロと空は等しい? */
```これは true を返すんですなぁ。クッキーに値を食わせる処理で値が空なら(value == "")何もしないというコードを書いていたんですが、これだとゼロ(0)という値を食わせると、これにかかりクッキーを食べてくれないんですね。いやはや。以下のようにすれば0でも受け付けてくれます。``
alert(0 === ""); /* これは false を返す。 */
``ちなみに下も 成立ですね。これってPHPでも全く同じ振る舞いをします。感覚的に空の値が false に等しいってのは変な気もしますが。``
alert(false == ""); /* これは true を返す。 */
`` ちょっと横道に逸れましたが、差分の添付ファイルです。あ、モバイル表示用のmoby.phpで個別記事表示のときに日付がなかったので表示させるようにしました。``[file:1208858110_DIFF080422.zip:52.6/]|martin|1|1||| [49] => 1208769482|アップデート|今週の差分その1| こんにちは。差分ファイル減るどころか増えています…。主な修正は以下の感じ。````です。前回のエントリーも参考になるかと思いますが、画像のアップロードおよびそれに続く一連の処理で、従来だと、画像サイズが大きすぎるとメモリを使い果たして、処理が止まってしまうこともあったと思いますが、それへの対応です。ついでに、環境設定で、アップできる画像の最大サイズを指定する箇所がありますが、ここの単位がKBなのをMBに変えました。時代の流れに合わせないとですね。サーバーによりけりですが、アップロード出来るファイルサイズは、だいたい8MBから15MBぐらいはあると思います。お使いのサーバーでの具体的な値を知りたければ、index.phpの途中辺り(34行目あたり)に、```
if(ADMIN) P('Max size is: '.ini_get("upload_max_filesize"));
```と書いて、ログインすると表示されます。この修正により、設定ファイルのini.inc.phpの書き換えが必要になります。2カ所ですが、ひとつは29行目、``
define('MAX_FSIZE','8');   /* アップする画像のファイルサイズ上限。MBで指定。*/
``で、これに伴い、95行目の``
$maxsize = 1024 * 1024 * MAX_FSIZE;        // 上限サイズをMBからバイトに直しておく
``です。お手数をおかけしますが、よろしくお願いします。参考としてini.inc.phpも添付しておきます。JavaScript関連も、色々修正が入ってます。デバグの消し忘れとか、エディタ関連とか。`` とりあえず取り急ぎ[署名/]` `[file:1208769482_DIFF080421.zip:121.4/]|martin|1|1||| [50] => 1208529144|アップデート|金曜日の差分| こんばんは。差分ばかりで、タイトルを付けるのに苦労しているmartinです。`` 指摘のあった不具合を修正しました。カテゴリーの管理で、見た目はカテゴリー名などが変更されたように見えても、実際のログはそのままでした。ソースを見直しましたが、自分で書いておきながら、なんだか訳の分からない処理をしてたので、ちょっとすっきりさせました。きっと疲れが溜まっているときに書いたコードだったんでしょう。後は、管理画面の「環境設定」→「更新サーバーの管理」での諸々の設定がJavaScriptエラーのせいで動いていなかったようです。これも修正しました。あと、ログインしていないときに、管理者であればコメント欄のテキストエリアをクリックすると、ログインを促すようなダイアログが出るのですが、その際にログイン処理後、コメント欄にフォーカスが行くようにしたつもりでしたが、そうなっていなかったので、これも修正しました。他には、親カテゴリー・子カテゴリーの統合オプションに関して、管理画面での指定後、サイドバーの記事数が選択したモードと一致していなかったので修正しています。`` 添付しておきます。``[file:1208529144_DIFF080418.zip:22.5/]|martin|1|1||| [51] => 1208432178|アップデート|差分です。| こんばんは。今日のやつをアップしておきます。変更は以下の通り。```
    `
  1. 検索モジュールで、デバグ用の出力をそのまま残していました → search.inc.php
  2. `
  3. 静的リンクモードに関して、作成ページへの処理をちょっと修正しました → utils.php
  4. `
  5. バックアップファイルの冒頭にある記事リンクがウェブ上のページにリンクしないような処理を入れ、また静的モードで作成時のカテゴリーリンクの不具合を修正 → archives.inc.php
  6. `
  7. 管理者画面でのバックアップ作成画面にて、ログへのリンクが月毎になっていなかったのを修正 → backup.inc.php
  8. `
`` とりあえず、今日はこれだけです。`[file:1208432178_DIFF080417.zip:45.5/]|martin|1|1||| [52] => 1208343724|アップデート|今日の差分。| こんにちは。今回はちょっと多いです・・・。皆さんからの貴重なフィードバックに対するバグ退治が中心です。他には、これはこれで大事なのですが、このppBlogでのバックアップ形式として、[g]MHTファイル[/g]形式を採用していますが、これを止めました。もともとIEでしか見れなかったし(Firefoxでも大丈夫かな)、そもそもこの形式が個人的にあまり好きでないです。じゃ、なぜこの方式にしたのかというと、数年前の時点で、画像も含めた単一ファイルの生成方法として、小生自身がMHT形式しか知らなかったというのが一番の理由です。画像を含むログは別フォルダを作成してサーバー上でZIP圧縮なりしてダウンロードというのが簡単かなと考えましたが、これだとサーバー依存の部分が大きく汎用性に欠けるかなと。まぁMHT形式も思いっきり汎用性に欠けますが。`` というわけで、新しいバックアップ形式ですが、単なるHTMLファイルです。でも、この単一ファイルの中にアップした写真などの画像も含めることが出来ます。仕掛けは、画像に対するソースを[g]base64形式[/g]で圧縮してIMGタグ内で呼び出すという方法です。```
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABA…" />
``スタイルシートなんかの背景画像も同様に呼び出すことが可能です。```
foo.style.background = "url('data:image/gif;base64,R0lGODlhCgA…')";
`` 数年前は、このテクニックを知りませんで[すやすや/]でもマイクロソフトのIEはこれに対応していないと言われています。実際に試したところ、うまく行ったり行かなかったり。その辺りの違いがイマイチつかめませんが、まぁ、それ以外のモダンなブラウザではすべて問題なく表示できるのでバックアップとしては何ら問題ないと思います。で、具体的な実装ですが、HTMLソースの途中に、このエンコードされたデータが入り込むのは(base64データは概して大きい)、著しくソースの可読性を低下させるので、HTMLソースの一番下でJavaScriptで処理するようにしました。なので生成されたHTMLソースを見れば分かりますが、ソースの下に、エンコードされた画像データがずらっと並んでいます。途中に入り込むよりずっと良いです。画像ファイルに対するドロップシャドウも再現していますが、これはブログでの表示とはちょっと変えてGIFファイルでの影にしています。ファイルサイズが小さくて済むからというのが理由です。まぁ、それなりにきれいに見えます[にこっ/] あ、ちなみにバックアップファイルとしてのアーカイブは、月毎のログ単位で生成されますが、記事に画像ファイルが含まれていなければ、このエンコードされた画像データが含まれることはありません。`` 技術的な話ですが、用意した影のためのGIFファイルは、base64エンコードしたデータをPHPのソースに埋め込みましたが、そのまま埋め込むとPHPファイルサイズが大きくなるため、以下のような工夫をしてサイズを抑えています。```
var bg = "url(¥'data:image/gif;base64,R0lGODlhCgAKAPcAAO3t7f///z'.str_pad('', 253*4, '09PT').'09PSH5BAEAAAEALAAAAAAKAAoAAAgfAAEEEEhwYACDBQkmRHhwoUKGBSEidGhQ4kOKFgcGBAA7¥')";
`` つまり、エンコードされた文字列に'09PT'という4文字が繰り返しで253回連続して現れていたので、この部分をstr_pad()関数で短く纏(まと)めてます。全く関係ないですが、ヒトのゲノム(DNAの束)を構成している塩基配列には、このような繰り返し配列が山ほどあって、この長さには個人差・人種差があり、これが病気の発症に関係していることもあります。``` そろそろ本題に。主な修正点は以下の通り。````` 例によって差分ファイルと、あと、アーカイブ化したログがどんなHTMLファイルになるのかの具体例として、今月のアーカイブ(4月16日時点)へのリンクを張っておきます。HTMLファイルだと、このようにウェブ上でも公開できるので使い勝手が良いです。ダウンロードして、ローカルで見ても画像がちゃんと再現されると思います(あ、冒頭の記事リンクはウェブ上に行きますね…。後で修正しときます)。``[file:1208343724_DIFF080416.zip:134.2/]|martin|1|1||| [53] => 1208011568|アップデート|週末差分アップデート| こんばんは。修正ファイルがまとまった数になって、ちょっと落ち着いたので。今回は、それなりにファイル数があって、しかもキモの設定ファイルであるini.inc.phpも数カ所変わっています。`` まず、廃止にしたppBlog用の定数として、サムネイル画像作成時にサーバー側でドロップシャドウを付けるオプションのTHUMBNAIL_SHADOWとリファラーをメインページに表示するのを定義したREFERRERです。これらは、殆ど使われていないでしょうし。この2つを廃止して新たに2つの定数を追加しました。`` ひとつは、CSSでの画像ドロップシャドウをポラロイド風にするか、普通の写真風にするかを決めるPICTURE_POLAROIDです。デフォルトでは、従来の写真風にしています。もうひとつは、カテゴリーの集計に関してですが、SEE_CAT_HIERARCHYという定数を設けました。これはサブカテゴリーの記事数を親カテゴリーに含めるかどうかの問題ですが、これは各人好みがあるでしょうから、選択できるようにしました。`` アップデートに関しては、この設定ファイルの書き換えをしないと最新のutils.phpに上書きした場合うまく動かないと思います。添付ファイルにセーフモード版に付属しているini.inc.phpを付けているので参考にされて下さい。ini.inc.phpはownerディレクトリにあります。以下に主な修正点を挙げておきます。`````ってとこです。1.7.3のアップデートに関しては、ローカルで設定ファイルのini.inc.phpの書き換えをして、これをownerディレクトリにアップ、その後、すみやかにutils.phpなど該当するファイル群を上書きアップロードして、最後にcacheディレクトリにあるcache.dbをFTP上で削除、あるいは管理画面の「各種ツール」→「エクスプローラー」からcache.dbを削除して下さい。これでトップページにアクセスすれば問題ないかと思います。``[file:1208011568_DIFF080412.zip:155.5/]|martin|1|1||| [54] => 1207573914|アップデート|lib.jsのアップデート| こんばんは。静的出力モードで動作させている際に、トップページ以外からログインしようとすると、``
ppBlog::Bad Request!
``と表示される不具合の報告がありましたので、その修正版をアップしておきます。いくつかのアプローチが考えられますが、lib.jsの書き換えで対処しました。要は、admin.phpに至るパスがトップページ以外だと(静的出力モードの場合)変になるので、JavaScriptで正しいパスを取得してあげようという訳です。具体的には、以下のようなグローバル変数を用意しました。グローバルな変数はあまり使いたくないのですが、まぁ[zzz/]``
scriptPath = o('BASE') ? o('BASE').$.href : window.location.pathname.toString().replace('index.php', '');
`` この修正されたlib.jsを添付しておきます。syntax.js用の記述はコメントアウトしてあるので、必要に応じて参考にされて下さい。あ、後、静的出力モードな方でsyntax.jsを使いたいな、という方は、このスクリプトの呼び出しに、oParts.loadScriptを使うのであれば、単にjs/syntax.jsではなく、フルパスでの記述にして下さい。例えばこのサイトであれば、以下のような感じです。``
oParts.loadScript('http://p2b.jp/js/syntax.js'); /* ちなみに同じドメインでの呼び出ししか出来ません */
`` (エディタの固定モードは、しょっちゅう使うからこれはクッキーに食わせて、次回からモードを復元するようにすると良いな)`` あと、アップロードした画像のドロップシャドウですが、これはIE6での表示が不安定のようなので、以前のバージョンに戻そうかと思っていますが、どうでしょうか・・・。``[file:1207573914_lib.js:20.9/]|martin|1|1||| [55] => 1207468665|アップデート|今日の差分。| こんにちは。とりあえず今回のアップデートです。だいぶ落ち着いて来た感があります[にこっ/] 今回は3つです(おぉー少な)。`` ひとつは、utils.phpで一番肝のファイルですが、IE6でのドロップシャドウが変なのを修正しています。あと、ちょこちょこ。`` 二つ目は、エディタ用のeditor.jsです。初期のテキストエリアの高さが狭い気もするので、ちょっと広げてみました。後、このテキストエリアは可変で自由にサイズを変えることが出来ますが、マウスでエリアを広げたのに、キーボードから入力すると、自動的にサイズを調整してしまう仕様だったので、これをちょいと修正してます。後、ローカルプレビューで、PREタグがあるときにそのPREタグの縦幅が小さく内容が確認しづらかったんで、これも広がるようにしてます。`` 3つめは、modulesディレクトリのedit.inc.phpです。HTML実体参照の文字を1個追加しただけですが。`` とりあえず、こんなところです。`[file:1207468665_DIFF080406.zip:43.4/]|martin|1|1||| [56] => 1207108074|アップデート|今週の差分その3| こんにちは、martinです。こう毎日ブログを更新するのは生まれてはじめての体験です[てへっ/]`` 早速ですが、このサイトで経験していたのですが、ボックス表示でのページ数が妙に少なくなるときがあり(正確にはリスト表示時のそれと一致)、リスト表示に切り替えてクッキーを設定しなおせば元に戻ったりしてました。調べてみると、ppBlog向けのクッキーの制御がちぐはぐでした。クッキーの取得をindex.phpからutils.phpに移したので、もっとシンプルになるはずなんですが、そうなっていなくてadmin.php、ajax.php、comment.inc.phpなどに無駄な処理が残ってました。なので、それらを一掃してます。`` 後、前の記事のコメントにあるように、JavaScript周りのバグで、Ajax経由のコメントフォームが挙動不審だったのを修正しました。管理画面メニューでの作成ページのリンクが適切でない不具合も修正しています。`` で、また管理画面での見栄えの問題ですが、これも前記事のコメントにあるように、admin.cssを修正しています。`` その他の改善点としては、ppBlogでは非公開のコメントを付けることが出来ますが、その際に、非公開にしたコメントには、それと分かるようにちょっとした説明を入れるようにしました。現状、スタイルシートなどで装飾していただけなので、きっと非公開に設定した方は、ほんとに他人のパソコンからは見えないのかちょっぴり不安だったでしょうから。``[file:1207108074_DIFF080402.zip:54/]|martin|1|1||| [57] => 1207054117|アップデート|今週の差分アップデートその2,april-fool-etc| こんにちは。時間が1時間早くなったので早く起きんといかんと思いましたが、その代わりアフター5の時間が長くなるのでやっぱり夏時間が良いやと思っているmartinです。早速ですが、``
    `
  1. ppBlog開発停止のお知らせ
  2. `
  3. ppBlogがGoogleに買収される
  4. `
  5. ppBlogダウンロード1000万件突破!
  6. `
  7. ppBlogエスペラント語版の開発に着手
  8. `
`` ありそうにないことを書かないといけないらしいのでエイプリルフールネタとして挙げてみました。日本じゃ花見かぁ、良いなぁ。`` さて、今日もまた懲りずにアップデートです。これまで日本語文字の、いわゆるマルチバイトに対処するためにそれをエンコードして1バイト化する関数としてbin2asc()とかasc2bin()というのを用意していたんですが、これをなくしました。これだと元がシングルバイトの英数字でも別の文字に置き換わったりとあまり好きじゃなかったんで。`` あとは、見栄えの修正ですが、管理画面用のスタイルシートadmin.cssでの指定が変だったのでこれを修正。あと、テーマテンプレートのBasicですが、先週、IE6でサイドバーが下に落ちちゃうということでposition:absolute;を用いた指定に変えたんですが、これだと、フッターを下に持ってくるのがCSSのみでは事実上無理っぽいので、もとのフロート形式に戻しました。ただ、レイアウト構造は、そんなにややこしくなく、また、CSSでIE6向けの特殊なハックを使いまくっている訳ではないので大目に見て下さい。いわゆるネガティブマージンを使ったシンプルな手法です。ついでに、IE6でリンクバー表示がずれてたりしてるのも修正しました。`` またIE6絡みですが、IE6向けの写真のドロップシャドウ用画像が添付されていませんでした。これはBasicディレクトリにあるImagesディレクトリにあるべきものです(shadow-ie.png)。`` モジュール関連では、上記のasc2binなどをなくしたものに伴う修正やら、検索での気になる挙動などを修正しています。Atom1.0とRSS2.0のフィードについては静的リンクにも対応させました。まぁ、とりあえず今日はこんなところです。` ``[file:1207054117_DIFF080401.zip:103/]|martin|1|1||| [58] => 1206920748|アップデート|今週の差分その1| おはようございます。こちらフランスは、今週から夏時間で1時間早くなりました。。なので日本との時差はちょうど7時間になります。明日から4月で日本だと新年度という感じですが、こちらは別に節目ではないですねぇ。先週末がイースター(復活祭)でしたが、そちらが節目のようです。`` さて、断続的にアップデートをかけていますが、ベータ版なのでご容赦下さい。今回も例によって差分ファイルを添付しています。主な修正点を挙げておきます。``
    `
  1. エディタの固定モードでの顔アイコンやカラーパレットの表示がずれるのを修正。汎用JSライブラリのoParts.jsのoParts.evt.pageYであっさり解決しました。Firefox2.0.0.13、Opera9.26、Safari3.2, IE7の各バージョンで問題なく動きます。
  2. `
  3. エディタのオートセーブ機能の修正。ちゃんと動いていませんで。きちんと動くと、最終ドラフト投稿日時が表示される仕様なんですが。。
  4. `
  5. 作成ページ用のpages.inc.phpを修正。まだ以前のページリストとごっちゃになってる部分がありました。
  6. `
  7. 検索スクリプトsearch.inc.phpの修正。ちょこちょこ気になるところを修正。
  8. `
  9. ブログバー作成用スクリプトの修正。oParts.js未対応の古いままでした。これ、皆さん、使っているのかなぁ。折角なのでこのサイトに付けてみました。ベーシックモードだとサイドバーの一番下にあります。ちなみに、管理画面の「各種ツール」にありますよ。
  10. `
  11. oParts.jsに関しては、toggle()関数がごちゃごちゃしていたのでシンプルに。
  12. `
  13. あとは、記事作成時のローカルプレビューでカテゴリーが表示されないのを修正してます。
  14. `
  15. あと、ログイン状態だと、各記事のタイトルの横にもエディタアイコンが付くようにしてみました。個人的に、長い記事だと、いちいち下までスクロールして編集アイコンをクリックするのがメンドイなと思ったので。
  16. `
  17. その他、見栄えの修正とか。
  18. `
`` この頃は精力的にいじっているので、完成度も徐々に高くなってます[にこっ/]``[file:1206920748_DIFF080331.zip:112.1/]|martin|1|1||| [59] => 1206774878|アップデート|今日の差分| こんにちは、martinです。さて、いくつかアップデートです。ひとつは、まだまだありそうなIE6関連ですが、そもそもコアとなるJavaScriptライブラリのoParts.jsを圧縮していたんですが、何とも間抜けなことにIE向けの[g]conditional comment[/g]までが削られていました。世にあるいくつかの優秀な圧縮スクリプトの中で、エラーもなく動いたものを採用したはずなんですが・・・。で、問題はそう簡単ではなくてじゃ条件コメントを復活させればOKかというとそうでもなく、またしてもIE6のトラップにかかって暫く時間を無駄にしました。結果から言えば、IE6とIE7との区別には以下のようにJScriptエンジンのバージョンで差別するという手法を取っていました。``
oParts.client = {`     w3c : !!window.getComputedStyle,`    MSIE : /*@cc_on!@*/false,`     IE6 : false/*@|| @_jscript_version < 5.7@*/,`     IE7 : false/*@|| @_jscript_version >= 5.7@*/,`   Opera : !!window.opera,`   Gecko : !!window.GeckoActiveXObject,`  Safari : !!(navigator.vendor && navigator.vendor.match(/Apple/))`};
``でもこれは最新のIE6では意図したようには作動しないようです(IE6でもバージョンが5.7になったらしい)。なので以下のようにしました。``
oParts.client = {`     w3c : !!window.getComputedStyle,`    MSIE : /*@cc_on!@*/false,`     IE6 : false/*@||!window.XMLHttpRequest@*/,`     IE7 : false/*@||!!window.XMLHttpRequest@*/,`   Opera : !!window.opera,`   Gecko : !!window.GeckoActiveXObject,`  Safari : !!(navigator.vendor && navigator.vendor.match(/Apple/))`};
`` これもそのうちIE6がネイティブでwindow.XMLHttpRequestをサポートすれば通用しなくなりますが、どうかなぁ。今のところは大丈夫みたいですが。これらの修正などによって、管理画面でのリストメニューがIE6でまるで作動しないという問題が解決しています。`` あとは、記事の投稿に際してオートセーブ機能が付いていますが、このインターフェイスがこちらの意図したようには動いていなかったようで。本来は、オートセーブ機能が動いている際にはタイマーのアニメーションが表示されて、それと分かるという風にデザインしていたんですが。これは単にwrite.inc.phpにあるvisibility: hidden;display: none;に変えるだけで良かったです。`` あとは、アクセス解析には、ユーザーのパソコンの解像度とかをレポートするものも用意してありますが、これが機能していませんでした。ついでなのでスクリプトを見直し、少しコンパクトになりました。`` まだありますが、あとは、カテゴリー管理で、カテゴリーの順序を入れ替えるインターフェイスがありますが、このソートアルゴリズムをちょいと見直し。こういうのは頭を酷使するので疲れました。歳だ[すやすや/]。`` とりあえず今回はこんなところで。この記事を書いていて先ほど気付いたことですが、ツールバーを固定モードにして書いていて、顔アイコンを挿入しようと思ったのですが、スクロールの関係かあるいはposition:fixed;の影響なのか、アイコン一覧が見えなくなりますね(Firefoxですが多分他のブラウザでもそうでしょう)。これは、またの機会に。`` 例によって、差分ファイルを添付しておきます。`` `

[追記 2008/03/29 16:39:56]

`` ユーザーの環境を見てみるスクリプト(view.php)の処理でJavaScriptが無効時の処理に絡んでNoticeエラーが出ますね。修正しておきました。あと、このアップデート後、stat/data/ディレクトリにあるclient_env.logは一度消した方が良いかもしれません。サイズがゼロならそのままで構いませんが。``[file:1206774878_DIFF080329.zip:76.9/]|martin|1|1||| [60] => 1206677758|アップデート|セーフモード版のカテゴリー設定ファイル,old-category-ini-php| こんにちは、martinです。セーフモード版に最初から入っているカテゴリー設定ファイル category.ini.php が古いバージョンのままでした[いやー/] 先ほど入れ替えたやつをアップしました。ついでながら、最新版(v1.7.3)でのカテゴリー設定ファイルが具体的にどんな感じになるかを確認するために、このサイトでの設定ファイルを添付しておきます。アイコンを設定したカテゴリーもあります。`` あと、ppBlogでは常にそうなのですが、FTPソフト経由で何かしらファイルを入れ替えたりしてアップデートした際は、そのままFTPソフトの画面上で、cacheディレクトリを覗いて下さい。そこにcache.dbというキャッシュファイルがあるので、これを削除するのがベターです。これは消しても、自動的に生成されるのでいつ消しても構わないファイルです。仕様変更絡みでエラー表示が出る場合、この古いキャッシュファイルが悪さをしている可能性もありますので。``[file:1206677758_category.ini.php:0.4/]|martin|1|1||| [61] => 1206576913|アップデート|ppBlog1.7.3の差分その4,ppBlog173-diff4| おはようございます。こっちはもうずっと1ヶ月ぐらい雨模様で雨の降らない日はありません(しかもまだ気温5度前後と寒い)。パリってこんなに雨が降る街なんでしょうか。先週末がイースター(復活祭)でした。`` さて、静的リンクモードでのサイドバーに表示されるコメントリンクの扱いをどうしようかなと思っていて、とりあえず落ち着いたものになったのでその差分。この影響でlib.jsも。あと、トラックバックスパムに関して、ほぼすべてのスパムを防げますが、その弾いたスパム内容をメールで知らせる機能(TBスパム通知機能)のオン・オフを管理画面の環境設定から選べる仕様のはずなんですが、その1行が抜けていました。これはownerディレクトリにあるini.inc.phpをいじることになります。差分ファイルにデフォルトのini.inc.phpを含めているので、分かる方は(52行目あたりを参考にして)サーバー上のご自分のini.inc.phpをダウンロードして51行目あたりに``
define('TB_SPAM_REPORT','0');      /* TBにてスパムと認識したTB内容をメールで知らせるか # */
``という1行を挿入して下さい。よく分からない場合は、とりあえずIDとPWD(初期ではadmin、pass)をご自分のに書き換えて、サーバー上のものを上書きすればよいです。この1行が、こちらの環境でも抜けていたので、スパム通知メールがどしどし届いて1日300通ぐらいに(それで気づいのですが)。ここまで数が多いと、スパム通知メールが逆にスパムになるという何ともな結果になるので、この機能はデフォルトでオフにするのを推奨します。上の設定のままであればオフです。`` あとは、静的リンクモードで、静的リンク用のタイトルを指定した後、その記事を編集すると、その静的リンクタイトルが消えちゃうバグ[zzz/]も修正しました(utils_admin.php)。`` あとは、トラックバック表示の細かい修正でtrackback.inc.php。これはmodulesディレクトリのやつを上書きして下さい。``[file:1206576913_DIFF080327.zip:56.9/]|martin|1|1||| [62] => 1206570325|アップデート|ppBlog1.7.3の差分その3-IE6問題,IE6-problem| また^3こんばんは、martinです。どうもIE6でサイト自体が表示されないという報告があったので調べてみました。IE6は、少なくともスタイルシート関連はスルーしようかと思ったのですが、さすがにサイト自体が表示されないのは問題です。で、結果としてBASEタグの位置で挙動が変わりました。個人的な認識ではBASEタグは、ページの出来るだけ頭の方という意識があったので、そうしていましたがこれだとIE6が誤作動を起こすようです。IE6の意味不明な挙動には慣れているのですが、これは初体験でした。IE7やIE8では問題ありません。`` ついでながら、IE6で表示すると、サイドバーが下に落ちちゃうようで、かつベーシックなテーマの割には、色々IE向けのハックを使っていたり、レイアウト構成がちょい煩雑でしたので、思いっきりシンプルにしました。`` Basicテーマの2ファイル添付しておきます。``[file:1206570325_basic.css:32.6/]`[file:1206570325_template.php:6/]|martin|1|1||| [63] => 1206553702|アップデート|ppBlog1.7.3の差分その2,diff-ppblog173-2| またまたこんばんは。静的モードの際、カテゴリーアイコンを登録した後に、カテゴリーアイコンをクリックしてもそのカテゴリー表示にならないバグを見つけました。`` あと、個人のブログの方を最新版に書き換えている最中ですが、カテゴリーのリンク名変更がうまく作動しないバグも発見。可及的に修正しました。とりあえず、この2ファイルを添付しておきます。`` 同一日付の表示が怪しい・・・。[2008/03/26 19:07:08 修正しました]いや、やっぱり変だ。まぁ、ぼちぼち。``[file:1206553702_utils.php:82.8/]`[file:1206553702_category.inc.php:29.3/]|martin|1|1||| [64] => 1206549561|アップデート|ppBlog1.7.3の差分,diff-ppblog173| こんばんは。先日、ppBlog1.7.3のアルファ版をリリースしていましたが、そのアップデートです。差分ファイルを添付しておきます。基本的には対応するファイルを上書きすれば良いです。ベータ版相当になったかなと思います。なので、自動インストール版もアップしてます。`` アルファ版との大きな違いは、カテゴリーのリンク名に好きな英数字を指定出来るようにしたことです。作成したページ名とも併せて、分かりやすいリンク名だと落ち着きますね。`` 後は、検索プログラム(search.inc.php)を結構書き換えました。試験的ですが、各検索にセッション機能を付けて、検索結果が複数ページにわたる場合などは、一時的なセッションファイルから読み出すということをしています。GET送信からPOST送信に変えたんですが、それに対応させようと思い、何となく実装してみました。``[file:1206549561_DIFF080326.zip:117.8/]|martin|1|1||| [65] => 1201049036|アップデート|βアップデート|こんばんは。前回のアップデートに引き続き。今回の修正点は以下。``
    `
  1. テーマ関連操作のJavaScriptの不具合を修正 → theme.inc.php
  2. `
  3. 同様の理由でpage.inc.phpも。
  4. `
  5. 画像管理画面でサムネイル画像がポップアップしなかったのを修正 →admin.php。詳しくは前回記事のコメントにあります。
  6. `
  7. 記事作成のテキストエリアは、マウスドラッグで自由にサイズを変えることが出来ますが、IE7だとサイズを変えた後、文字列を選択出来ないようになっていたのを修正→editor.js
  8. `
  9. アクセス解析画面で、次の200件とかのリンクが効いていなかったのを修正。ついでに、Intel Macは個別にカウントするとか、Windows Vistaがきちんとカウントされるようにしました。Vistaはずいぶん小さめにカウントされていました。その他気になるところ諸々。アイコンをひとつ追加しました。→ view.php
  10. `
`` 例によって、差分ファイルを添付しておきます。theme.inc.phpとpage.inc.phpはmodulesディレクトリに、view.phpはstatディレクトリに。sagool.pngという画像ファイルはstat/iconディレクトリに。editor.jsはjsディレクトリのものとそれぞれ入れ替えて下さい。単なる上書きでOKです。`` 以下余談。このサイトのアクセス解析のブラウザ別をちょいと晒してみます。まだまだ首位ですがIE6のシェアがどんどん落ちてます。実際にはSleipnirとかはIE6エンジンが多いでしょうから、何だかんだ言ってまだ4割はありそうですが。Firefox健闘してますね。夏までにIE6を抜いてくれるといいなぁ。``50.9:760:620:500:408:stat200801:center:1:1:Safariも何気に多いですね。:`` 次は、OS/Platform別のデータ。検索ロボットを除いても良いですが、まぁ傾向を見るために。``60.1:777:647:500:416:stat200801-2:center:1:1:Vistaってあまり出てないのか、それとも別のプラットフォームとしてカウントされているのかな?:1``[file:1201049036_DIFF080123.zip:45.1/]|martin|1|1||| [66] => 1200914894|アップデート|最新ベータ版のアップデート|こんにちは、martinです。配布中のベータ版で、皆さんからのバグ報告分を修正したものをアップしておきます。具体的には``
    `
  1. カテゴリーの順序変更が上手く効かない →category.inc.phpのJavaScriptを書き換えた
  2. `
  3. IE7で画像のポップアップ表示が上手く効かない →lib.jsを修正(イマイチ原因が分からないけれど…)
  4. `
  5. IE7でエディターのツールバー固定モードから復帰する時の挙動が変 →editor.jsを修正
  6. `
``ってとこです。あと、試験的にログインの際に一度設定した自動ログインを解除する「オートログインの解除」というメニューを管理モードに追加しました。oParts.jsもちょいと変更。差分を添付しておきます。``バグのご報告ありがとうございました。``[file:1200914894_DIFF080121.zip:41.2/]|martin|1|1|JavaScript|| [67] => 1199877840|アップデート|2ファイル入れ替え|こんにちは。インストール後、admin.phpにアクセスしてもログイン出来ない(トップページのログインアイコンからは可能)というご指摘を受け、修正したものを先ほどアップしました。JavaScriptを弄ったせいです。あと、oParts.jsもちょこっと弄りました。2つ添付しておきます。`[file:1199877840_admin.php:25.2/]`[file:1199877840_oParts.js:28.3/]|martin|1|1|JavaScript|| [68] => 1199773959|アップデート|ppBlog1.7.1Beta版| おはようございます。とりあえず、ppBlogの最新版を配布します。十分に検証する時間がないのでベータ版です。どちらかというとセーフモード版での希望が多いので、まずはセーフモード版で。いつもは、自動インストール版が先なのですが、考えてみれば、サイトのトップページにこのブログを使いたい場合(このサイトのように)は、セーフモード版の方が都合が良いですね。`` ちなみに文字コードに関してはUTF-8版のみです。EUC-JP版の希望が多ければ、考えなくもないですが、最近では、EUC-JPじゃないと動かないというサーバー(レンタルサーバー)も少ないと思いますし…。セーフモード版なので、ファイルサイズがそれなりにでかいですが、まぁ、JavaScriptなんかは、圧縮するとかなりサイズが小さくなるので、正式版では圧縮してもいいかなと思っています。今回は、デバグしやすいようにそのままで。`` スタイルシート関連では、ぶっちゃけIE6の対策はしてないです。画像のドロップシャドウでちょっといじりましたが。日本でも1-2月にIE7への自動アップデートが適用されるという話をどこかで見た気がしますし、いつ出るか分からないけれど(3-4年後?)IE8はあのAcid Testをパスしたみたいですし、もうそろそろIE6の呪縛から抜け出ても良いでしょう(まぁIE7もまだまだなんですが)。`` というわけで、試用されてバグなど報告していただけたら助かります。``  →http://download.p2b.jp/`` あ、追記ですが、セーフモード版は、ownerディレクトリの中に、ini.inc.phpがありますが、その中にログインIDとパスワードを設定する部分があります(最初の方)。なので、サーバーにアップロードする前にあらかじめ書き換えるのが良いです。アップロードした後で、初期IDと初期パスワード(admin, pass)でログインしてから変更というのも出来なくもないですが。。|martin|1|1|JavaScript|| [69] => 1193698437|アップデート|セキュリティーアップデート(重要)| こんばんは、martinです。このトップページにアクセスしたらJavaScriptのダイアログが表示されてびっくりしましたが、朝仕事前にSafariでのデバグのためにアラート表示をしていて、そのまま仕事に突入したので、放置したままでした。すみません。`` 本題ですが、現行(1.6.4)以下の、すべてのバージョンのppBlogに[w]クロスサイトスクリプティング[/w]の脆弱性がありますので、ppBlogのお使いの方々は、面倒ですが、アップデートをお願いします。お手数を掛けますがよろしくお願いします。基本的には、添付したファイル群の上書きで良いと思います。詳しくは、同梱してあるREADME.txtを参考にして下さい。`` 現状、正式には、1.6.4というのが最新版になるかと思いますが、それ以下のバージョンについて、とりあえず手持ちのバックアップディスクにあった主要バージョンのアップデートファイルを用意しました。バージョン1.4系というのは、スクリプト自体も古めなので、特に強くアップデートを推奨します。`` 今回のアップデートでは、お使いのバージョンごとに対応するアップデータを作ったつもりなのですが、あの主要バージョンが抜けているよと、というのがあればご指摘下さい。`` 以前、ppBlogの検索モジュールで、似たような脆弱性があって、それ以降、開発の際には気を付けていたつもりでしたが。。個人的には非常に残念で、ユーザーの方々には、申し訳なく思いますが、今回のことを肝に銘じて、今後もppBlogの開発は続けていきます。今週中には、最新版のv1.7.0をリリース出来るかと思います。`` なお、具体的にどんなことができるかについて確認したいという方は、ここで実際の手法について公表するのは、適切ではないと考えますので、メール(martin.info.jp以下gmailアドレス)にて問い合わせいただければ、簡単なサンプルを提供いたします。``[file:1193698437_update144.zip:73/]`[file:1193698437_update154.zip:100.3/]`[file:1193698437_update162euc.zip:77.1/]`[file:1193698437_update164utf.zip:80.4/]`[file:1193698437_update164euc.zip:78.6/]|martin|1|1|JavaScript|| [70] => 1185721525|アップデート|v1.6系EUC-JPからUTF-8への変換| こんばんは。まぁ、ある程度予想されたとはいえ自民惨敗ですねぇ。安倍さんは続投の意欲を示していますが、今回の結果には、安倍さん自身の指導力に対する国民の評価も十分反映されていると思いますが…とまぁ政治の話は自分のブログの方で書くとして。`` さて、v1.6系の最新バージョンはv1.6.4の7/29付ですが、プログラムの文字コードとしては、UTF-8版とEUC-JP版の2つを用意しています。本音では、UTF-8一本に絞りたいところですが、(レンタル)サーバーの仕様によっては、EUC-JPじゃないと上手く動かないところもあるようなので暫くは2本立てで行こうかと思います。`` 現状、このサイトは今でもEUC-JPモードですが、v1.6.3からはUTF-8版もリリースしており、個人的にはUTF-8に移行したい人なので、文字コード変換プログラムを書きました。8月に入ったら、このサイトもUTF-8仕様になっていると思います。フォーラムの方でもちょっと書いていますが、ファイル名はuconv.phpです。変換のターゲットとしては、log, comments, trackbacks, owner, pages の5つで、その中のファイルをEUC-JPからUTF-8に変換します。管理者権限でしか動きません。使い方としては、uconv.phpの中にも書いていますが、``
    `
  1. 従来の動いているブログのindex.phpと同じレベルにuconv.phpをアップ。
  2. `
  3. ブログにログインした状態で、uconv.phpにアクセス。
  4. `
  5. 自動的に変換が始まります。上手くいけば1-3秒もすれば、成功の旨のメッセージが表示されます。
  6. `
  7. ownerディレクトリをFTPソフトでのぞいてみると、UTF8というディレクトリが生成されていると思います。
  8. `
  9. この中に、log, comments, trackbacks, owner, pages の各ディレクトリが作られていて、その中に変換されたファイルがあるので、取り敢えずUTF8ごと手元のPCにダウンロードしましょう。
  10. `
  11. ポイントは、もとのEUC-JPのログは、すべてそのまま無傷で残るということです。
  12. `
  13. あとは、新たにアップした移行先のUTF-8モードのブログに、それらをアップすればOKです。
  14. `
  15. その際に、アップしたログファイル群のパーミッションの変更(606へ)を忘れないようにして下さい。
  16. `
  17. 取り敢えずログをアップした状態でトップページにアクセスしても、とくに何も反映されてないように見えますが、ここで適当に記事を新規投稿してみて下さい。
  18. `
  19. 新規投稿の操作で、一気にそれまでのEUC-JP版の状態がUTF-8モードで再現されると思います。
  20. `
  21. あ、PIXディレクトリの中の写真とかは、FTPソフトでダウンロードして、手動で新しいサイトにアップしたりして下さい。。
  22. `
`` 以上のような感じで、UTF-8のサイトを、比較的簡単に作り上げることが出来ると思います。取り急ぎ。``` `[file:1185721525_uconv.php:6.1/]|martin|1|1|JavaScript|| [71] => 1185135114|アップデート|ppBlog1.6.4リリース|こんにちは。久しぶりのリリースです。まずは、UTF-8版とEUC-JP版の自動インストールバージョンをリリースしました。v1.6.3(UTF-8版のみ)からそう大きな変更はありません。修正点は、``
    `
  1. 記事投稿画面でのタグチェック機能の見直し。
  2. `
  3. ユーザーが自分の記事を投稿・編集した際に管理者に通達メールを送るようにした。これはログの保守も兼ねています。
  4. `
  5. サイドバーのトラックバック一覧をなるべく時系列になるようにした。新しい順から。これまでは古い記事にトラックバックしてもサイドバーには表示されませんでした。
  6. `
``てなとこです。v1.6.3をお使いの方は、それぞれjs/editor.js、utils.php/utils_admin.php, cache.phpを上書きすればOKです。一応UTF8版の差分を添付しておきます。取り急ぎ。`[file:1185135114_DIFF070723.zip:45.7/]|martin|1|1|JavaScript|| [72] => 1173808979|アップデート|今日はパイの日| こんばんは。外からなのでファイルのアップロードは頼りない感じです。今日は円周率のπ(パイ)の日だそうで。円周率は3.14159・・・と無限に続きますが、人類が知る数少ない[w]超越数[/w]のひとつでもあります。超越数の集合は有理数全体の集合より高い次元の濃度を持つのに、人類は広大に横たわる超越数のほんの一握りしか知らないし、ある実数が超越数かどうか判定する術も不完全です。数学の未解決問題は山ほどあって興味が尽きませんが、数字というシンボルを持って順序付けをする概念は全宇宙共通だろうと思います。`` さて余談はこれぐらいにして。ppBlogは少しバージョンを上げてv1.6.1からv1.6.2になりました。いくつかのバグを修正したのと、あと、従来よりもMovableType(MT)からのログインポートに、かなりの再現性を持たせたつもりです。個人的にMTは使ったことはないので、とあるユーザーの方からのメールを介したキャッチボールがとても役に立ちました。画像を含んだ記事も取り込めてppBlogの画像データベースに反映できるかもです。`` また、詳しいことは後ほど。|martin|1|1|JavaScript|| [73] => 1172667819|アップデート|v1.6.0とv1.6.1との差分| 昨日のv1.6.0のままでは、IEでJavaScriptエラーが出たので、それの修正版になります。utils.phpも1箇所修正しました。``

追記[2007/3/1 0:15:8]

``「ページ作成」でツールバーを生成したときに、閉じないタグが出てくるバグがeditor.jsにありました。ここからもゲットできます→http://p2b.jp/demos/editor.js``あと、文字色が背景色になるなぁ。今から見てみます。``[file:1172667819_DIFF160161.zip:88.4/]|martin|1|1|JavaScript|| [74] => 1172661812|アップデート|v1.5からv1.6系への移行| こんばんは。昨日、1.6.0をリリースしましたが、手元には既にv1.6.1があったりします[zzz/] IE(インターネットエクスプローラー)の存在を忘れてまして。JavaScriptとCSS(スタイルシート)関連のデバッグには、Firefoxのエラーダイアログを活用しているのですが、とびきりモダンなFirefoxでエラーがないと、ついつい安心してしまって・・・。`` と、言い訳はそれぐらいにしておいて、簡単に1.5系から1.6系へのアップデートについて書いておきます。```` てなとこですかねぇ。次のページにcornerPlayの実際を示します[署名/]|martin|1|1|JavaScript| さて、角丸コーナーですが、これはとりあえず3つのバージョンを用意しています。ひとつは文字通り「角丸」で、あとは「角々」コーナーと「3D」です(3Dは微妙・・・)。指定は、ブロック要素のタグに対して、例えば、前のページの例で言えば、``
<ul class="corner-play">
``と指定しています。指定するだけで、後は cornerPlay() という関数が自動的に認識して角丸コーナーにしてくれます。ボーダーの色や文字の色、サイズ、マージンなどに関してはインライン形式でスタイル指定することも可能です。例えば、```
<div class="corner-play" style="border-color:red; width: 60%;">`かくかくしかじか`</div>
``という指定をすると、`
`Biotinylated histone peptides were synthesized at` Stanford PAN facility or purchased from Upstate Biotechnology. `
``となります。「角々」コーナーの指定ですが、これはクラス名に square というクラス名を追加すればOKです。例えば、以下の場合、```
<blockquote class="corner-play square"` style="background: #ede8e3; margin: 30px auto; border-color: firebrick;">`かくかくしかじか`</blockquote>
`が、`
`

「キリストの墓」発見か?

`

2000年前のエルサレムの墓が、ナザレのイエスとその家族のものである可能性がある`――最新のDNA分析や統計的解析などの調査結果が映像化され、米Discovery Channelにより特別`番組として放映される。

`
`てな具合です。「3D」というのは、ボーダーの明暗を強調したやつで、指定したボーダー色から自動的に3Dっぽく見せます。これは、outset というクラス名を追加することで実現できます。例えば、``
<div class="corner-play outset"` style="background: ivory; width: 400px; margin: 15px auto; border-color: yellow;">`かくかくしかじか`</div>
`は、`
`

3D outset with Colored Border

`

Association analysis, based on linkage disequilibrium between` specific alleles in the candidate loci and nearby genetic markers,`has been proposed to identify genes conferring susceptibility to multifactorial diseases. Using the affected sib-pair method, we previously`mapped four candidate chromosomal regions, 1p32, 2q33-q35, 11p13-p14, and 21q21, for gastric cancer by linkage analysis.

`
`となります。`` で、これらの指定をいちいち書き込むのはメンドイので、「文の整形」プルダウンメニューから選べるようにしています。| [75] => 1172562280|アップデート|ppBlog1.6.0リリース|「うるおい保湿」とか「鼻セレブ」といったティッシュペーパーをすごい勢いで消費中のmartinです。今のところスギ花粉だけですけど。花粉症の方々に処方はするけど、自分のことは放置状態なすがままにしてます[にこっ/]`` さて、ppBlogの最新版をリリースしました。バージョンをちょっと上げて1.6.0に。前バージョンと比べて、管理画面を整備しました。なるべく同じインターフェイスで操作できるようにだとか、なるべく画面の切り替え場面をなくすだとか。`` あと、コアな部分では、ppBlogのJavaScriptでは心臓ともいえるlib.jsもかなり書き換えが入っていると思います。`` とりあえず、通常版を初めからインストールしてみましたが、大きな問題はないようです。今晩は、ネット回線が貧弱なところにいくので、セーフモード版は明日以降にリリース予定とします。|martin|1|1|JavaScript|| [76] => 1170785565|アップデート|モバイル用スクリプト更新| こんばんは。最近、VistaをMacBookにインストールしてみたmartinです。詳しくはwebで検索・・・ではなくて、ブログをどうぞ。`` ちょい前に、vodafoneの3G携帯(902T)のユーザの方から、モブログで画像が投稿できないという相談を受けまして、ppBlogに標準装備の解析用デバッグメールを送っていただき、原因が分かり解決したようなので、mob.phpの最新版をアップしておきます。なお、現行バージョンで問題なく画像や動画がアップできる方はスルーして良いかと思います。ただ、アップする画像の拡張子が大文字の場合(FOO.JPGなど)は、スクリプトの方で小文字に変換する処理を新たに入れています。FOO.JPGはFOO.jpgになります。これは個人的に、拡張子が大文字だと気持ち悪いという、なんでもない理由からなんですが。。`` 自分のケータイからも投稿できません、という方は、小生のメアド(martin.info.jp以下Gmail)宛にデバグメールを添付していただければ解決するかもです。``

追記[2007/2/9 5:26:25]

`` バージョンアップが近いので添付ファイルは外しておきます。|martin|1|1|JavaScript|| [77] => 1163730976|アップデート|バグ:あるモードで非公開記事が見えてしまう|こんにちは、martinです。ご無沙汰してます。なかなかブログをいじる時間がありませんが、早急に対処すべきバグの報告があったので告知しておきます。`` 次のような症状が見られます。``
カテゴリーモードのボックス表示において非公開の記事が見えてしまう
``というものです。これを修正するには、utils.phpの1108行目から始まるget_articles_by_category関数内に1行追加します。``
`function get_articles_by_category($cat, $start=0, $length=100000, $rsort=FALSE){ // 指定したカテゴリの記事を配列で返す` global $LOGS;` $LINES = array();` $count = 0;` for($j = 0, $l = count($LOGS); $j < $l; $j++){`  if(empty($LOGS[$j]) || !is_file($LOGS[$j])) continue;`  $fp = @fopen($LOGS[$j], "rb");`  if($fp){`   while(!feof($fp)){`    $line = fgets($fp);`    if(strpos($line, "|$cat|")){`     if(!empty($line) && $count++ >= $start){`      $LINES[] = rtrim($line).NL;`     }`     if(($count - $start) >= $length) break 2; // level 2!`    }`   } # while-loop`   fclose($fp);`  } # $fp` } # for-loop` if(ADMIN==FALSE) $LINES = preg_grep("{^¥d{10}¥|}", $LINES);` if($rsort) return array_reverse($LINES);` return $LINES;`}`
``として下さい。``
if(ADMIN==FALSE) $LINES = preg_grep("{^¥d{10}¥|}", $LINES);
``という1行を追加しています。`` 今までよく顕在化しなかったなぁと思いますが、ご報告して下さった方に深謝します[署名/]`` あ、utils.php添付しておきます。`[file:1163730976_utils.php:66/]|martin|1|1|JavaScript|| [78] => 1162388546|アップデート|js/lib.jsのアップデート他| こんばんは、martinです。近頃、iTunes Music Storeで[w]鬼束ちひろ[/w]の「月光」を購入しました(200円)。以前、深夜に放送されていた[g]トリック[/g](再放送?)の主題歌に使われていて気になっていた曲です。何回聴いても飽きませんねぇ。``` さて、バージョン1.5.4に添付していたjs/lib.js(このファイルの1行目にあるタイムスタンプ`が $ 2006/10/25 17:13:47 なもの)で、リスト表示モード(Ajaxモード時)での記事表示が出来ないという報告がありました。調べてみると、動的にエレメントを生成する関数で不具合を見つけました。それ以前のlib.jsではちゃんと動いていたんですが、スピード重視のチューンナップを施した際に、必要な部分まで削ってしまったようです。具体的には、839行目あたりが、``
if(parent) parent.appendChild(el);
``な方は修正が必要です。次のようにします。``
if(parent) parent.appendChild(el); else d.body.appendChild(el);
``` ちなみに、(この修正を行った上で)「リスト表示」を選び、リスト表示されたタイトルをクリックすると、ブログの画面はそのままで、記事だけを閲覧できる独自のダイアログボックスが出現します。このボックスに記事を表示させる仕組みですが、前後の記事は、Ajaxを利用して記事の内容だけを読み込んでいるので、ページ全体を書き換える手間がなく、スムーズな記事のナビゲートが可能になっています。また、この使い方に抵抗がある場合は、utils.phpの6行目にある、``
define('LIST_AJAX_MODE', 1);      // リスト表示でAjaxモードを有効にするなら 1 を指定
``の「1」を、「0」もしくは「FALSE」に指定すると、Ajaxモードが無効になり、リスト表示された記事タイトルをクリックすると、記事が単独表示されます。この場合は、ページ全体を書き換えるので、ページデザインによっては(アフェリエイト用の外部スクリプトを複数設定しているとか)、読み込みに時間がかかることもあるかもしれません。そこは、好きな方を選ばれて下さい。`` js/lib.jsを添付しておきますが、ついでに、まだ試験的ですが、記事の個別表示の際に、コメントとトラックバックを統合して表示させるように改良したutils.phpも添付しておきます。試して見たい方はどうぞ。このサイトで使っています。既存のutils.phpを上書きすれば良いです。あと、コメントフォームの画面でもトラックバックのURLが表示されるようにしたmodules/comment.inc.phpも添付しておきます。``[file:1162388546_comment.inc.php:20.6/]`[file:1162388546_utils.php:67.5/]`[file:1162388546_lib.js:37/]|martin|1|1|JavaScript|| [79] => 1162028271|アップデート|Trackback.phpのアップデート|こんばんは、martinです。`トラックバックスパム対策にて、trackback.phpをアップデートしたのですが、正規表現で不備があったので、その修正版をアップしておきます。変更点は、昨日のコメントにもありますが、trackback.phpの56行目あたりを、```
$jp_pattern = '{(`    (?:¥xA4[¥xA1-¥xF3])+| # Hiragana`    (?:¥xA5[¥xA1-¥xF6])+ # Katakana`)}x';
```としています。最後にパイプ(|)が入っていたのですが、これだと、何でもすり抜けてしまいます。ほんとは、この正規表現の後に半角カタカナのやつも入れていたのですが、これは不要だろうと考えて削除して、その前のパイプが残ってしまいました。`` あと、アクソン付きのアルファベット(フランス語)なんかも、たまにすり抜けるようですね。。これは、69行目を```
if(preg_match('{^[¥x20-¥x7E[:alnum:]]+$}', $target)){
```とでもしたら良いですかねぇ。他言語のときはイマイチ知識不足。。最初の修正を入れていれば、その時点でアクソン記号のやつも弾きそうな気はしますが、いかがなもんでしょう。`[file:1162028271_trackback.php:6.4/]|martin|1|1|JavaScript|| [80] => 1161829811|アップデート|差分アップデート・・・| こんにちは。昨日、久しぶりにアップしたのですが、コメントが付かないなど基本的なところでミスってました。うーむ、情けない[すやすや/]`` トラックバックは、デフォルトでは、トラックバックしてきた相手にこちらのリンクがあるかどうかのチェックを入れてみたのですが、この仕様はサーバー依存なところもあるので、デフォルトではオフにしました。使えるところでは有効にしてよいと思います。``` 現時点での差分を添付しておきます。```

追記

`[2006/10/26 20:4:46] コメントモジュールで、英数字のみの場合のフィルターが抜けていたので、修正しています。modules/comment.inc.php です。`` `[file:1161829811_DIFF061026.zip:87.8/]|martin|1|1|JavaScript|| [81] => 1161790423|アップデート|ppBlog1.5.4に|こんばんは。地元ソフトバンクホークスは3年連続プレーオフで敗退。まぁ、昨年はロッテが久しぶりということで、今年こそはと思ったのだけれど、今年はロッテでも西武でもなく、日ハムじゃないですか。まぁ、久しぶりのようだからこのまま日本一になって欲しいと思うmartinです。ホークスが日本一になったときは、そりゃ嬉しかったからなぁ。北海道も盛り上がるだろうな。``` という訳で、久しぶりにバージョンアップしました。ネットを見渡すと、ブラウザではIE7の正式版(今は英語版だけかな)が出たし、今日(25日)はFirefox2.0がリリースされ、タイミング的にはいい塩梅です[はてさて/]``` 今回はマイナーアップですが、メインはトラックバック(以下TB)スパム対策です。このブログでも週末になると、海外からのTBスパムの数がすごいことになります。それなりに、弾く仕組みは用意していたつもりなんですが、個別記事ごとのTBの許可設定などが無効であったバグがありましたし、そのあたりの修正も含めて、新たなギミックを追加しました。``` 新しい仕組みとしては、TBしてきた相手のサイトに、こちらのサイトのリンクが含まれていなければ、つまり、TB上での相互リンクが成立しなければTBを受け付けない、というものです。これはまだ試験的な実装になりますが。一応、エキサイトブログから試しにTBを発射してみたんですが、エキサイト側のブログに、こちらのドメインのアドレスが含まれていれば(文中で言及していれば)TBを受け付け、リンクという形で言及がなければTBを受け付けなかったことを確認しています。これは、trackback.phpの17行目で有効、無効の指定が出来るので、まともなTBも弾いてしまうようなら、この部分を次のようにして下さい。``
define('CHECK_REFERRED', FALSE);
``仮にこの部分でTBを弾かなくても、TBのサマリー文に平仮名やカタカナが含まれていなければ却下という設定も出来るので、かなりのTBスパムが防げるのでは思っています。`` ` あと、目玉というわけではないのですが、最近の投稿ビデオブームを受けて、YouTubeやGoogleVideo、マイクロソフトのSoapboxビデオへのリンクを簡単に貼れる記法を追加しました。YouTubeの場合、次のように指定します。``
[yt:(ビデオのID):横幅:縦幅]
``同じく、GoolgeVideoは、ytの部分がgvになります。Soapboxならsbです。横と縦のサイズは整数で指定しますが、これは省略できます。また、横だけ指定だと自動的に縦も計算して表示します。数字の省略は出来ますが、2つのコロン(:)は必ず記入して下さい。`` 具体例を次のエントリーで示します。あと、いつものように差分ファイルを。|martin|1|1|JavaScript|| [82] => 1156860188|アップデート|1.5.1からのアップデート|一つ前のバージョンである1.5.1からのアップデートについて述べておきます。今回、修正を加えたファイルは、基本的に以下のもの。```` このうち、trackback.phpは、修正と言うほどのものでもないので、現在ので問題なくトラックバックを受信出来ているならスルーしていいです。基本的には、残りのファイルを上書きします。index.phpやutils.phpに関しては、独自に手を加えていることもあるでしょうから、ファイル比較が出来るエディタなどで、差分だけを追加すれば良いと思います。個人的には、エディタは[g]Uneditor[/g]というフリーのソフトを使っていますが、かなりオススメです。PHPやJavaScriptのキーワード別色分け表示などは勿論のこと、正規表現での検索・置換機能も当たり前、ファイル比較も簡単に出来ます。これほどの高機能のソフトがフリーで手にはいるのですから使わない手はありません。`` 閑話休題。``今回のアップデートのメインは、作成したページの常時表示を可能にしたことです(「オントップ機能」と読びます)。「ページ作成機能」を用いてページをまだ作成していない方は、上記ファイルを上書きするだけで特にそれ以上のことは必要ないです。そうでなくて、ページ作成をしていて、サイドバーのメニューボックスにページへのリンクをしている方は、上記ファイルを上書きした後にちょっとした「操作」が必要になります。具体的には、``
    `
  1. 管理画面から、「ページ管理」をクリック
  2. `
  3. それまでに作成したページ一覧が表示されますが、この画面で「オントップ」という項目が増えています
  4. `
  5. 特にオントップにしなくても、まずは適当にどれかページを選んで、セレクトボックスから「モード1」か「モード2」を選んでください
  6. `
  7. これで選択したページが「オントップ」に設定されますが(このときにowner/pagelist.ini.phpとキャッシュファイルの書き換えを行います)、この機能を使わないときは、もう一度セレクトボックスから「—」を選んで下さい。「オントップ」機能が解除されます。
  8. `
``ということをすれば1.5.1からのアップデートは完了します。`` JavaScriptに関しては、主にIE6向けの修正が殆どでした。個人的にはIE7RC1(注:動作確認用として。ブラウズするときはFirefoxですよ)を使っていて、IE6での動作確認をきちんとしていなかったのですが、久しぶりにアクセス解析を見てみると、IE6系のブラウザシェアは未だに軽く8割以上じゃないですか[うーむ/] 無視できません。。`` 追記。当直室からこの記事を書いています。先ほどから雷雨とともに、時々停電になり部屋が真っ暗になります。。びびりますがな。|martin|1|1|JavaScript|| [83] => 1156771341|アップデート|ppBlog1.5.3になりました|こんばんは。久しぶりにppBlogを弄ったので、以前指摘された不具合が、まだ残ってる気もしますが、とりあえずダウンロード出来ます。`` バージョン1.5.1と比して大きな変化は、「ページ作成」機能で作成したページを、トップページに表示させるように指定出来るようになったことですかね。とりあえず2つのモードを用意しました。ひとつは、トップページ(index.php)にアクセスしたときに表示させるモード、もうひとつは、常時表示モードです。常時表示モードなんかは、サイトのメンテナンス中などのときに使えそうですね。`` この機能を使うことで、より柔軟なブログツールになるかなぁ? ppBlogでは、初めての実装になるので、いつものことながらバグはあるとは思いますが。。`` ちなみに、この記事は、MacBookクロにインストールしたWindowsXPから書き庫してます(BootCamp最新版)。AirMacも作動し、ラボで快適に無線LANしてます。マックノートでWindowsがサクサク動くなんて、夢のようです[署名/]|martin|1|1|JavaScript|| [84] => 1153925666|アップデート|アップデータ-ppBlog| こんばんは。個人的には、久しぶりのアップデートかなぁと思いましたが、そうでもなかったmartinです。`` 大きめのバグがありました。コメント数がゼロなのに、コメント数が1個と表示されることがあります。おそらくコメントスパムを弾いたりした際に、生成されていた空のコメントファイルが消されずに、残っているからだと思います。なので、そのあたりの処理を入れました(→comment.inc.php)。このバグが発動するのは、最初のコメントがスパム関連だったときのタイミングだと思うので、そう頻出ではないと思いますが、詰めが甘いですね[涙/]`` あとは、テーマの追加周りを変えました。テーマの追加インターフェイスは、以前から、どうもスマートじゃないなぁと思っていました。ゴチャゴチャしてましたしね。テーマファイル群を、なるべくppBlogの管理画面からアップロードしようと目論んでいたからだと思いますが、何だかんだいって、FTPソフトで、テーマフォルダをサクッとアップロードした方が早いですよね。なので、まず、テーマフォルダを丸ごとアップロードしていただいて、その状態で、管理画面から「テーマの追加」を選ぶと、自動的にアップしたテーマディレクトリが認識される、という流れにしました。「テーマ切り替えバー」に表示するテーマ名(日本語OK)を設定する手順があり、全自動というわけには行きませんが、だいぶマシになったと思います(→theme.inc.php/admin.php)。`` 他には、殆ど使われていない気もするブロッグバー作成モジュールですが、カラーチャートの指定が古いままだったので、修正しました(→blogbar.inc.php)。使いこなせば、それなりにアクセントになるかなと思っていますが、まずは、自分のサイトで使わないといけませんね。。`` JavaScript周りでは、lib.jsで、気になるところを微妙に調整。あとは、editor.jsでのローカルプレビュースクリプトも少し整備。`` 大体、こんなところでしょうか。例によって添付しておきます。`[file:1153924114_DIFF060726.zip:72/]|martin|1|1|JavaScript|| [85] => 1153394604|アップデート|mob.phpアップデート au 1XWINに対応| こんばんは。au使いのユーザーの方から、モブログ投稿が出来ないということで、モブログのデバッグモードファイルを送付していただき、対応出来た様なので、mob.phpの最新版を添付しておきます。ちなみに、今回新たに対応したであろう機種は``
`
    `
  1. A5518SA au CDMA1X機(三洋)
  2. `
  3. W41H au CDMA1X WIN機(日立)
  4. `
`
``の2種です。情報を下さったユーザーの方に、この場を借りてお礼申し上げます。``[file:1153394604_mob.php:11.8/]|martin|1|1|JavaScript|| [86] => 1153262873|アップデート|タグ機能、モブログ、ローカルプレビュー周り| おはようございます。タグ機能関連で不具合があったのでそれのフィックス版です。あと、モブログに関して、ケータイの機種によっては、タイトルが取得できなかったり、添付ファイルつきの投稿が上手く出来ないなどの症状があり、とりあえず原因が分かった所のfixと、ローカルプレビュー周りの正規表現を少しいじってみました(my_parser関数)。`` ここでひとつ、みなさんにお願いがあるのですが、ケータイからの投稿が上手くいかないという方は、管理画面のモブログの設定のところで「デバッグモードを有効にする」をオンにして投稿すると、デバッグモードとなり、ownerディレクトリに、デバッグ用のテキストファイルが作成されるので、これをinfo@p2b.jpもしくはmartin.info.jp@gmail.com宛てに添付していただければ、可及的な対処が可能になると思います。こればかりは、実際にケータイが出力する文字列を見てみないと何ともしがたい部分なので。。生成されるファイルには、本来ならば、送信元のメールアドレスが記載される部分があるのですが、これは自動的にfoo@example.comに置換するような処置を入れています。お手数ですが、ご協力いただけると助かります。`` 例によって、差分ファイルをば(7月17日版から18-19日にかけての修正含む)。|martin|1|1|JavaScript|| [87] => 1153003130|アップデート|ppBlog1.4系〜1.5RC1系からの移行について| おはようございます。ppBlog1.5.1は7/16版が最新です。7/14との差分ファイルを添付しておきます。`` さて、1.4系〜1.5RC1系からの移行手順を書いておきます。記事ログ自体の記録フォーマットは変わりません。ログ系のフォーマットでは、コメントログの保存形式が変わっていますので、これはコメント変換プログラム[cm15up.php]を利用する必要があります。配布中の最新版のppBlogをダウンロードして解凍後、[g]FFFTP[/g]などのFTPソフトを使って、アップロードするわけですが、この際に新たにディレクトリを作成して新規インストールするか、それとも現行の1.4バージョンを上書きインストールするかの2通りあります。PHPのプログラムにある程度精通していて、かつppBlogにも慣れている([にこっ/])方なら、上書きインストールでも良いと思いますが、バックアップや不測の事態のことも考えると、新規インストールが無難かもしれません。以下では、新規インストールでの手順を書いておきますが、上書きインストールでも基本的にやることは同じです。`` 無事、新規にインストールが終了したとして…、```` 大体、こんな感じでよいと思います。アクセスログの移行に関しては、アクセスログの文字コードも違いますし(UTF-8に統一)、考えてないです。悪しからず。なにぶん、1.4系から離れて久しいので、移行手順について何か見落としがあるかもしれません。気付かれた方はフォローお願いします。`` 最後になりますが、7/14版からの差分ファイルを添付しておきますね。ご指摘があった分の修正です。mob.phpの調整、moby.phpからの記事削除が出来ない件、cssファイルの修正、atom1.0/rss2.0の出力調整をしています。`[file:1152997575_DIFF060716.zip:22.1/]|martin|1|1|JavaScript|| [88] => 1152886966|アップデート|ppBlog1.5.1 リリース|こんばんは。バージョン1.5.1の公式アナウンスです。`` 何とか、ちゃんとアナウンス出来ようなものになりましたので、ここにppBlogの最新版をリリースします。バグが完全になくなることはないでしょうが、ふつうにブログを実践する分には問題となるようなことはないかなと思っています。`` 1.5のβ版を出してから、随分と時間が経ち、最初にいつリリースしたかも忘れてしまいました。。1.5系正式版で、β版との主要な違いを述べておきます。```` てなところでしょうか。あと、ppBlogのJavaScriptの心臓部分であるlib.jsは、かなり細かいところまでいじくっています。基本的に、Safariを含めたモダンなブラウザで、JavaScriptエラーが出ることはないかなと思っています。Safariへの対応には苦労していたんですが、MacBooKのクロを購入してからは、動作確認が簡単に取れるようになりました[にこっ/] というか、このために買ったようなものですから。一応、時代遅れのバギーなIE6でも確認は取っていますが。。`` 明日は、1.4系からの移行についての記事を書いて、あと、マニュアルも更新して…とすることが山積みですが、まぁ、ボチボチと。`` 今日は金曜で、0:30分からNHKで[g]Samurai7[/g]が始まります。まぁアニメなんですが、映像のきれいなこと。あの「七人の侍」をモチーフに作られた時代劇ロボット活劇(?)です。サッカーのワールドカップで中断していたようですが、今夜はありそうなので、それに間に合うように、今から帰宅します。ではでは。` |martin|1|1|JavaScript|| [89] => 1151321675|アップデート|ppBlog1.5RC2最終版| ワールドカップのサッカーボールが,どうもゴレンジャーのマスクに見えてしまうmartinです。黒いゴーグルのようだからクロレンジャーということになるのかな。そういえば,とうとうMacBookのクロを注文してしまいました。これからは,1つのノートに複数のOSが入ってるなんてのが当たり前になっていくのかな。` ` 前置きはこれぐらいにして。なんだかこれから忙しくなりそうな感じなので,いい加減ppBlogのRC2も最終版にして,次のリリースを正式版とします。正式版でバグが見つかっても,それはマイナーアップデートでカバーしていくということで。`` 前回のリリースが6/22でした。そのリリースでmoby.phpを大幅に書き換えたんですが,共有ユーザのことを忘れていまして,6/22版のままでは管理者以外の共有ユーザも記事の編集が出来てしまいますので,これは最新版で上書きして下さい。moby.phpとmoby_admin.phpはセットです。`` あと,モブログ関連では,自分のブログにSO902iから投稿して分かったのですが,タイトル文字が空白で区切られていると,タイトルの前半部分しか投稿に反映されなかったのと,あと,本文に文章がなくて写真のみ添付というパターンでも上手く投稿できなかったので,その辺りを修正しています。`` ppBlogには,星の数による段階評価(以下スター評価)を簡単に挿入できるボタンも用意してあるんですが,あまり使われていないせいか,先日になって初めて,これに関する不具合が見つかりました。星の数を10個以上に設定すると上手くプロンプトダイアログが動きませんで。あと,1つの記事にスター評価は1つの場合しか想定していなかったのですが,複数のスター評価を付けれる(←こういう表現はもうそろそろ正しい日本語として定着したかなぁ,「付けることが出来る」って書くと長いから)ようにしました。こんな感じで。[stars:7/10] これは,editor.jsをいじっています。[stars:3/5]`` 同じJavaScriptでいくと,角丸コーナースクリプトあたりをちょっと変更しています。js/lib.jsです。角丸コーナースクリプトは,class="corner-play"というクラス名をもつ任意のブロックを自動的に角丸化するスクリプトですが,インラインでボーダーの色を指定できるようにしました。例えば,次の記述は,``
<div class="corner-play" style="border-color:red;">` これは角丸コーナーのデモ`</div>
``ppBlog上では,自動的に,``
` これは角丸コーナーのデモ`
``となります。ちなみに次のように,幅や背景色を一緒に指定してもOKです。``
<div class="corner-play"` style="border-color:gold; width: 230px; background:whitesmoke;">` これは角丸コーナーのデモ`</div>
``
` これは角丸コーナーのデモ`
`` さらに言っておくと,引用を表すHTMLタグであるBLOCKQUOTEclass="quoted" というクラス名を指定すると,これは引用符付きの角丸コーナーとなります。例えば,次の指定だと,``
<blockquote class="quoted">` <p style="font:italic 500 16px/1.5 Times New Roman;">` These boots are made for walking, and that's just what they'll do`one of these days these boots are gonna walk all over you.`—Nacy Sinatra</p>`</blockquote>
``
`

` These boots are made for walking, and that's just what they'll do`one of these days these boots are gonna walk all over you.`—Nancy Sinatra

`
`` ppBlogでは,これらを自動的にやってくれるので楽チンですね。あ,中には,別にこんな効果は必要ないよという方もいると思います。その際は,js/lib.jsの最後の方825-826行目にあたりを``
//roundedStyle(d);`//roundedStyle(d, true);
``とコメントアウトすればOKです。`` JavaScript関連が長くなってしまいました。あと,大事な変更点としては,「排他的ログイン」というのを実装してみました。これは,管理者を含む共有ユーザーがログイン中は,ほかのユーザーは,管理者といえど別のパソコンからでもログイン出来ないというものです。これを解除するには,明示的にログアウト処理を行うか,あるいはセッションの有効期限が切れれば自動的に解除となります。デフォルトではこの機能はオフになっています。この機能のために,owner/ini.inc.phpに定数が1つ追加になりました。あまり定数は追加したくないので,定数追加はこれが最後でしょう。EXCLUSIVE_LOGIN という定数がそれです。`` 他,個人的に気になるところはちょくちょく手直しをしています。例えば,PHP5.1.3からは,TRUEFALSE,NULLが本当の定数として扱われるようです(参照→PHP 5.1.3の地味なパフォーマンスチューニング)。なので,プログラムソース上で目に付いたTruetrueは,大文字に直したりしてます。いや,やっぱり定数は大文字というのが落ち着くので。すべてを書き直したわけではないんですが。。`` 長くなりましたが,例によって,エクスプローラー上でみて,6/22以降に更新のあったファイルを軒並みピックアップしたものを添付しておきます。ふぅ。[署名/]``[file:1151321675_DIFF060626.zip:132.4/]|martin|1|1||| [90] => 1150909660|アップデート|moby.phpは大幅更新|こんばんは,martinです。`` 前々回あたりで,キモの関数集であるutils.phpを一般表示用と管理者用の2つに分割しましたが,同じことがモバイル機器からのアクセス用であるmoby.phpにも言えるなぁと思ったり,ほかにも修正・改善すべき点がありましたので,moby.phpは大幅刷新となりました。結果,一般表示向けのmoby.phpmoby_admin.phpとの2つに分かれています。moby.phpはファイルサイズも小さくなり(25%減ぐらい),モバイル向けとしてはベターな選択ではと。`` これまでのmoby.phpでは,ppBlog本体では有効な対コメントスパムの仕組みを導入していなかったので,これもコメントスパム関連設定が効くように修正しています。ナビゲーション周りのインターフェイスも微妙に変えています。`` また,moby.phpの修正に伴い,編集や削除処理をutils_admin.phpと共通化させたので,utils.phpやutils_admin.phpも変更があります。`` 他は,write.inc.phpedit.inc.phptabindexを加えたり,js/lib.jsのcomment_in_situ関数を修正したりしてます。`` 皆さんからの貴重なフィードバックにより,RC2の完成度としては,かなりプラトーに達してきた感があります。ここで大きなバグがないようなら,そろそろ正式版のリリースとしても良い頃合かなと思っています。感謝です。`` 一応,修正のあったファイル群をまとめて添付しておきます。`` ここからは余談ですが…,サッカー,なかなか厳しいものがありますね。「ブラジルに2点差以上で勝つことが最低条件っ!」と至るところで言われているので,それだけで良いような気分になりますが,これってオーストラリアがクロアチアに勝たない場合という条件下での話なんですよね。オーストラリアが勝った時点で,日本が5−0で勝とうがアウトのようで。`` そもそもサッカーは狩猟採集民族向きのスポーツと思うわけで。サッカーボールなんてのは,まさに仕留めるべき獲物です。日本人は農耕民族だろうから,キビキビ動かないといけないスポーツは苦手なんじゃないでしょうか。体格がそういう風には出来ていない。バスケットボールしかりです。日本人は,野球みたいな,のんびりとやれるスポーツが向いているに決まっています。`` あー,でも日本には決勝トーナメントにぜひとも進んでもらいたいなぁ。絶対盛り上がるだろうに。2年後ならまだしも,4年後って長いですよね。。そろそろ巻先発で。`` あ,あとここまでの2試合,日本にいるとどうも都合の良い時間に試合が行われるなぁと思った方も多いのではないだろうか。自分は,午後10時からなんてタイミング良いなぁと思ってました。以下に挙げるリンクが参考になるかもしれない。事実がどうなのかは,当事者のみぞ知るところであるが,こういう情報って,ブログがあればこそ,ネット上で瞬く間に広がるんですよね。一昔前では考えられないことです。いい時代に生きているものです[署名/]` →W杯 クロアチア対日本 0-0 日本苦戦の戦犯は…|martin|1|1|JavaScript|| [91] => 1150775303|アップデート|いくつか修正|

追記[2006/6/20 22:39:28]

`trackback.phpですが,utils_admin.phpをインクルードする記述が抜けていました。ローカルから,この記事にテストのPINGを打って,消そうとしてエラーが出たので気づきました[いやー/] 8行目あたりに``
include_once('utils_admin.php');
``の追加をお願いします。</追記ここまで>``ppBlogでは,複数のページにわたる記事を簡単に作成できますが,2ページ目以降に画像を挿入すると,画像パスのスラッシュが投稿処理の際に抜けるために,画像がきちんと表示されないというご指摘がありました。これはutils_admin.phpの101行目あたりを``
$extended = str_replace("/$id".'_', "/${_id}_", $extended);
``とされて下さい。スラッシュがひとつ抜けていました。あと,強制改行をオンにしていると,タグのLIDT,DDの後に<br />が入るようなので,これは,utils.phpの602行目あたりを``
$blockLevel = 'div|pre|ol|ul|dl|li|dt|dd|form|blockquote|fieldset|table|tr|td|p|center|object|h[r123456]|!';
``とすればよいと思います。ブロックレベルのタグに追加しました。`` あとは,細かいとこですが,stat/view.phpにて,相手ホストが適切なURLを返さない場合にNoticeレベルのエラーが出ることがあるようなので,その辺りを回避しています。`` 他には,テーマディレクトリの画像でinfo2.pngが抜けていました。これはトップレベルのImagesディレクトリにもあると思うので,それをコピーなどされて下さい。あ,あと,modulesディレクトリ中にgallery2.inc.phpがあると思いますが,これはバックアップ用に取っておいたのをそのままにしていました。これは削除されて構いません。` ` 最後に,トラックバックのスクリプトで,NGワードなどにひっかかったIPアドレスをブラックリストに登録する仕組みを入れてあるのですが,IPアドレスの変数をきちんと設定していませんで。これも修正しています。なお,ソースを見れば分かりますが,ブラックリスト入りのIPアドレスなどをメールで知らせる処理も入れていますが,これはコメントアウトしています。試されたい方は,コメントアウトを外して有効にしましょう。もっとも,スパム業者は,IPアドレスは偽装したり返さないことがあるので,IPアドレスはいつも取得出来るわけではないですが。`` 以上,修正のあったファイルを添付しておきます(utilsadmin.phpはutils_admin.phpです)。``[file:1150775303_utilsadmin.php:27.5/]``[file:1150775303_utils.php:59.3/]``[file:1150775303_view.php:32.9/]``[file:1150775303_trackback.php:5.5/]|martin|1|1|JavaScript|| [92] => 1150687665|アップデート|ppBlog更新情報|こんにちは。ちょくちょくアップデートしていますが、やや大きめのアップデートになったのでアナウンスしておきます。`` ファイル構成でちょっと変わったのが、utils.phpを2つに分割したということです。utils.phpでは使い回しの関数群を主に定義しているのですが、一般向けのものと管理者専用のやつとが混在して、しかもppBlogの多機能化に伴い、かなり肥大化していました。なので、一般表示向けと管理者向けのやつを分割して、スリム化させました。ppBlogは動作の軽快さが売りのひとつですが、そういう観点からもこれは妥当な処置だと思います。アップデートに関しては、これまでのutils.phpがutils.php(一般向け)とutils_admin.php(管理向け)の2つに分かれましたので、その両方をアップロードして、これに伴いadmin.phpだとか、modules内のファイルも更新する必要があります。個々のファイルを各自でカスタマイズしていないのであれば、とりあえず、FTPで全部上書きというのが一番ラクかもしれません。`` あと、大事な変更点として、ppBlogでの定数を新たに3つ追加しましたので、これはini.inc.phpに追記する必要があります。具体的には、``
`
    `
  1. サイドバーのタグエリアに表示させるタグ数の上限を設定するTAGS_ENTRY
  2. `
  3. コメント受付自動オフの設定定数COMMENT_AUTO_SUSPEND
  4. `
  5. 上記コメント受付自動オフが有効の際の、その猶予期間設定値COMMENT_APPEND_SPAN
  6. `
`
``です。参考として、セーフモード版に付けているini.inc.phpを添付しておきます。下2つのコメント関連の定数は、まぁ、コメントスパム対策の一環です。たまにえらく古い記事に、記事内容とは全く関連のないスパムコメントがついたことのある方もいると思います。そういうときに、この設定が効いてくると思います。初期値では、無効にしていますので適宜必要な方は管理画面で有効にされると良いです。この際に、3つ目の定数で、そのコメント受付自動オフが発動するまでの期間を設定できます。初期値では90日(日指定)としていますが、まぁ365日とかでもいいかもしれませんね。``[file:1150687665_ini.inc.php:9.4/]|martin|1|1|JavaScript|| [93] => 1149518909|アップデート|RC2の最新版|こんばんは。なかなか正式版に移行出来ないでいますが、皆さんのご指摘により、バグが減っているのは確実です。先週の6月3日にマイナーアップデートを出しましたが、それの最新版です。前回同様、6月3日よりファイルの更新日付が新しいやつを列挙します。`````です。相変わらず多いですが、前回よりは減っているのが救いです[zzz/] ドラフト投稿時の画像データベースの挙動を整理した結果、画像関連のPHPファイルは軒並み修正されています。``` あと、モバイル関連で、共有ユーザの投稿名が反映されない点や、モブログの設定がきちんと反映されない点などを修正しました。モブログ関連は、チェックが不十分なので、まだ不具合はあるかもしれません。。``` comment.inc.phpの修正は、エンターキー(リターンキー)による改行をそのまま反映させた点です。これまでは、連続する改行は改行ひとつに丸めていましたが(荒らし対策)、まぁその辺はそのままで良いかなと。そういう意見もありましたので。``` バックアップ関連では、MHTファイルの出力に、リサイズされた画像をエンコードして収めるようにしています。ローカルと自分のサーバーでのテストでは、複数の画像もきちんと再現されたのですが、これはどうでしょうかね。皆さんのご報告があれば幸いです。``` jsファイルは、AJAX経由でコメントを読み込んだときに、フィルターにかけた文字がそのまま表示されて、表示が崩れてしまうのを修正しました(多分)。あとは、複数ページにまたがる記事をAJAX経由で読み込んだ際に、読むべき記事がきちんと視野に入るように、scrollIntoViewメソッドを用いて、``
oContent.scrollIntoView(false);
``みたいな処理を入れたりしてます(OperaとかSafariは大丈夫かなぁ)。``` しかし、この調子だと、正式版は・・・まだまだですね。|martin|1|1|JavaScript|| [94] => 1149281114|アップデート|ppBlog1.5RC2 final?| おはようございます。現時点でのppBlog最新版をアップしておきます。5月29日版からの差分を、更新日時で見て29日より新しいやつを列挙してみると、以下のような感じです。```` ふう、書くだけでも大変だ。一番大きな変更は、utils.phpにあるmy_glob()関数の振る舞いです。スピードアップのために、月々のログファイルの配列をひとつのファイルにまとめて、読みに行かせているのですが、どうもそのあたりが挙動不審なときがあるようで、見直しました。あとは、js/lib.jsImagePathの間違いなども修正しています。`` 仕様変更としては、これまで記事の新規投稿・編集はindex.phpにポストしていたのですが、考えてみれば、わざわざindex.phpに飛ばす必要はなく、管理画面であるadmin.phpに飛ばすべきです。なのでそうしています。これに伴い更新PINGの成功メッセージは、管理画面で目にすることになります。`` あとは、画像アップ関連でも修正すべきところは修正し、より完成度は高まったのではと。なお、暫定的ですが、画像ファイルのアップロードに関しては、日本語を含むファイルもアップ可としています。さすがに日本語のままでは、何かと不都合なので、プログラム側でアップロードした画像ファイル名は適宜変更していますが。`` アクセス解析に関しては、IPアドレス及びホスト名の取得あたりをスピードアップ・簡潔にしてます。ここで時間をロスするのもどうかと思うので。あと、6月のアクセス解析を見て気付いたんですが、先月分への解析リンクが表示されていませんで。これはログ分割に伴うバグなのでこれも修正しています。`` JavaScriptに関しては、先の記事にあるように、Firefox向けの修正だったり、イベント関連関数のブラッシュアップだったりします。editor.jsもちょいと変更。という感じです。`` RC2になって、マイナーアップデートが続いていますが(汗)、もう今回あたりを最後にして、次回は正式版とする予定です。ほんとは、「タグ機能」なんかも付けてみたいなとは思ったのですが。どのようにすれば良いか構想はありますので、リクエストもあるようなら正式版に間に合わせてもいいかなと思っています。` ` なお、私事で恐縮ですが、この土日は、医局旅行がありますので、週末はネットから離れます。ちなみに山口県の大谷別荘というところに行くらしいです。久しぶりにテニスでもして羽を伸ばそうと思います。11時集合なので、ちょっと仮眠を取っておかないと。ではでは■|martin|1|1|JavaScript|| [95] => 1148852384|アップデート|ppBlog1.5RC2 再度|おはようございます。`先週の5月23日にRC2を出して、皆さんからバグフィックスを含め色々なフィードバックを得ることが出来ました。情報を下さった皆さんに感謝します。指摘を受けた部分は、出来る限り修正をしたつもりですが、まだ見落としや、新たなバグは当然あると思います。今回のリリースは、仕様としてまだ流動的な部分もありますが、かなり正式版に近いものになります。前回リリースからの変更点を挙げておきます。``

[追記:20:50PM]

` jsスクリプトを lib.js.php にしたんですが、このlib.jsに画像パスを渡す方法を思いついたので、lib.js.phplib.jsにします。コロコロ変えて申し訳ありません。どういう解決法にしたかというと、スクリプトタグ<script>にID属性を与えて、そのIDをテーマIDにすれば、lib.jsを最後に呼び出すとして、ID名は``
d.getElementsByTagName("script")[d.getElementsByTagName("script").length-1].id
``で取得できますね。うー、何でもっと早く思いつかなかったのか。てな訳で、今日DLされて該当される方は、utils.phpの141行目あたりを``
$DIVISION['script'] .= '<script type="text/javascript" id="'.basename($theme_dir).'" src="js/lib.js" charset="'.strtolower(ENCODE).'"></script>';
``とされて、admin.phpの89行目も同様に、``
`<script type="text/javascript" id="'.basename($theme_dir).'" src="js/lib.js" charset="'.ENCODE.'"></script>
``として、で、最後に、js/lib.js.phpの中身、9行目を``
var ImagePath = d.getElementsByTagName("script")[d.getElementsByTagName("script").length-1].id+'/Images';`
``としてjs/lib.js.phpjs/lib.jsに改名されて下さい。ほんと申し訳ないです。。`

---追記ここまで---

``
    `
  1. js/script.jsjs/lib.js.php になった。名前と拡張子が変わりました。が、中身は普通のjsファイルです。PHP化しているのはテーマ画像ディレクトリまでのパスを取得するためです。出来れば*.jsのままでいい方法があればと思ったのですが、思い浮かびませんで[いやー/] 今後、基本的に画像はテーマ指向になり、出来る限り各テーマで画像は用意することになります。
  2. `
  3. 非公開コメントの機能をとりあえず実装してみた。これは前回からありましたが、まだ仕様も固まっていないようなシロモノでした。現時点で想定していることは、管理者はすべてのコメントが見れるのは当然として、非公開を指定したユーザも、ブラウザのクッキーが有効であれば、自分の非公開コメントは見ることが出来る。また、もし、管理者が非公開コメントにレスすると、そのレスは非公開した者も見ることが出来て、他の人には見えない、というものです。こういう機能は、あればあるで結構使えるなというのが率直な印象です。
  4. `
  5. 前回のエントリーにも書いていますが、記事作成画面での文字色・背景色のフルカラー化。角丸ボックスのリニューアル。
  6. `
  7. アマゾンアソシエート関連ファイルの添付。前回、添付し忘れていました。。ついでに、サーチメニューのカテゴリーに「ホーム&キッチン」という項目を追加して、ちょっと弄ってます。
  8. `
`` 以上が主要なものでしょうか。あと、細々と至る所、書き換えていますので、基本的には、前回リリース版を使われている方は、ownerディレクトリと投稿・コメント・トラックバックログディレクトリ以外のすべてのPHPファイルは上書きされることを強く推奨します。あと、index.phpと同じレベルにあったImagesディレクトリのいくつかの画像はテーマディレクトリのImagesディレクトリに移ったりしています。`` 正式版を100%とすると、完成度は89−93%というところでしょうか。。|martin|1|1|JavaScript|| [96] => 1148321712|アップデート|RC2ダウンロード再開| 前日リリースしたやつの既知のバグを修正したものをアップしてます。綴りの間違いだったり、パスの設定が変だったり、皆さんのご指摘で助かっています[涙/]` ` 個人的には、画像ファイルのキャッシュ生成をどういうタイミングでするかに腐心していましたが、ようやく「これで良いかなぁ」って感じになりました。なので、画像キャッシュが絡んでくるファイル群は、昨日のやつと結構変わっています。utils.phpは当然として、あと、upload.phpとかinsertImage.phpとか、imager.inc.phpとか、gallery.inc.phpとか。これまでは、画像ファイルと、動画ファイルとは、同じキャッシュに含めていましたが、これからは、画像は画像のみ、それ以外のメディアファイルは、データベースとなるキャッシュを別に分けていこうと思います。これは、ポッドキャストなどを見据えてのことです。これからは、動画や音声ファイルのアップロードも増えていくでしょうから。` ` で、まずは、画像のキャッシュ生成を考えていたので、それ以外のメディアファイルのキャッシュ生成は、正式版までに概要を固めていこうと思います。`` おー、そろそろ寝ないと。|martin|0|1|JavaScript|| [97] => 1148306784|アップデート|とりあえず小休止| ダウンロードして、設置してくださった皆さん、ほんとに報告ありがとうございます。`自分でも新規にインストールして検証したはずだったのに、インストールファイルを入れ違えてアップしていたり、何ともトホホなことしてますねぇ[すやすや/] とりあえず、ここまでの不具合を修正してから、またDLを再開しようと思います。これは深夜には再開できるはずです。他にも個人的にいくつか気付いた点がありますので、そのあたりも修正して。`` しかしながら、ひとりで検証するのとはスピードが全然違いますねぇ。報告して下さる方々には頭が上がりません。励みになります。というわけでダウンロードはしばしお待ちを。|martin|1|1|JavaScript|| [98] => 1148270263|アップデート|ppBlog1.5RC2 アップ。| こんにちは。ほんとは早朝にアップする予定が、立て続けに所用が入りお昼になりました。`RC2=Release Candidate 2ということで、正式版ではありませんが、これのバグフィックスをもって正式版になると思います。1.5系は1.5βに始まり、RC1まで来ていましたが、それらよりはバグは減ったと思います。また、細かいチューニングにより1.5系では最速かなぁと。` 
[追 記]アップしたてにDLされた方。utils.phpとupload.phpとdownload.phpのそれぞれに一箇所ずつATTACHEDという部分があればAFFIXEDに変えて下さい。
``` とはいえ、画像キャッシュの生成アルゴリズムは煮詰まっていませんで、まだまだ改良の余地があります。目処は立っているので、皆さんからのフィードバックも得ながら、早めの正式版リリースを果たしたいですね。`` RC2からインストーラーが付きましたので、インストール作業としては、プログラム自体のアップロード及び、いくつかのディレクトリのパーミッションの設定が主体となります。一番時間が掛かるのが、このアップロード作業だったりしますが、まぁこれはFTPソフトで、さくっとドラッグして気長に待ちましょう。`` パーミッションの設定が済めば、あとはinstall.phpにアクセス、IDとパスワードを聞いてくるので、適切なやつを入力してsubmit、上手く行けば1秒もかからずにインストール完了です。`` RC2でのポイントをいくつか挙げておきます。```` もうお昼が終わりそうなので、とりあえずこの辺で。続きは今夜にでも。あ、コメントログ変換スクリプト添付しときます。[file:1148270263_cm15up.php:1.3/]|martin|1|1|JavaScript|| [99] => 1130252903|アップデート|ベータ版アップデート|だいぶ仕上がってきた感じの1.5です。まだ、未実装のものもありますが。今回では、前回のアップデート時に指摘されていたものを中心にデバッグを行いました。`` ここにきて、やや大きめの修正がありました。それは、各テーマディレクトリにあるテンプレートファイルtemplate.phpの中での記述です。これまでは、「最近のエントリー」や「コメント」などのエリア表示の設定は、環境設定から行っていたのですが、今回のバージョンからは、各テーマにより柔軟性を持たせようと、template.phpでエリア表示指定も行うようにしました。各テーマによって表示させたいエリアが違ってくることもあるでしょうから。これまでは、各テーマでのエリア関連のタグの記述は、例えば「最近のエントリー」エリアは``
<div id="recently">%_RECENTLY:Recently:block_%</div><!--#recently-->
``のような感じでした。%で囲まれた中に2つのコロン(:)があって、真ん中の「Recently」がエリアでのタイトル表示になり、次のblockというのが、ボックスを展開した状態で表示させるか(block)、それとも閉じた状態で表示させるか(none)を表していました。今回はこれにもうひとつコロンを最初に加えて、この「最近のエントリー」エリアの場合は、``
<div id="recently">%_RECENTLY:1:Recently:1_%</div><!--#recently-->
``みたいになります。エリアでのタイトル表示「Recently」の前に、このエリア自体の表示・非表示を指定する10を指定します。ボックス展開のon/offを指定していたnone/blockはそれぞれ、01に変更になります。今回のバージョンアップでは、従来のこの部分を変更しないときちんと表示されません。この変更は、お使いのエディタでやってもよいでしょうし、また、従来どおり、オンラインで管理画面の「テーマの編集」から編集してもいいです。ちなみに、エリアボックスでのタイトル「Recently」を日本語表示にしたいなら、``
<div id="recently">%_RECENTLY:1:最近のエントリー:1_%</div><!--#recently-->
``とすればいいです。簡単ですね。あ、たしか配布中のやつは、この「最近のエントリー」エリアが「非表示」の設定(0)になっていたと思うので、動作確認も兼ねて表示させるように編集してみて下さい。で、この変更により、これまでownerディレクトリにあるキモの設定ファイルini.inc.phpでのエリア関連の設定値はなくなっています。`` あとは、細かいところでは、アクセス解析関連で、ぼちぼち出てた次世代ウェブ技術「[g]Web2.0[/g]」指向の新鋭ブラウザ(ベースはFirefox)Flockのトラックもキャッチするようにしています。なのでこのFlockアイコンも追加してます。`` 何だか、AjaxのコメントボタンがMacOSX Safariで再び利かなくなったという報告もあるようで、帰宅したら確認してみます。。`` あ、それからひとつ前の書き庫にある「画像ギャラリーでのドロップシャドウ」にも対応しています。これは環境設定で「サムネイルでのドロップシャドウを・・・」というところでon/offの設定が可能です(いや、ドロップシャドウなんお 別に興味ないよという方もいらっしゃるでしょうから)。画像ギャラリーでのサムネイルにはPIXディレクトリにあるs1ディレクトリの中の画像が使われます。で、既存のサムネイルに、新しくこの効果をつけてみたいという方は、以下の手順で可能です。まずは[g]FFFTP[/g]などのFTPソフトの画面で``で作業は終わりです。この状態でブロッグのトップページを開いて、「ギャラリー」アイコンをクリックして画像ギャラリーを開いてみると、一番最初は、サムネイルをガガガッと作成していくので、ちょいと間があるかもしれませんが、2度目からは影付きサムネイルがすでに出来上がっているので、サクッと表示されると思います。`` 今回の修正ファイルを添付しておきます。`[file:1130252903_DIFF1025.zip:88.2/]|martin|1|1|JavaScript|| [100] => 1130032426|アップデート|23日2回目のアップデート|こんにちは。とりあえず、今朝のアップしたやつでバグ報告のあったところで、手直ししたやつです。修正したところは、コメント数の取得と、Ajaxモードでのコメント内リンクをきちんとリンクになるようにした点です。`` まだ、カテゴリーのソート関連でバグがあるようですが、これはまた午後からのときに見てみます。修正した3点のファイルを添付しておきます。`[file:1130032426_comment.js:1.4/][file:1130032426_script.js:18.6/][file:1130032426_utils.php:73.6/]|martin|1|1|JavaScript|| [101] => 1130010675|アップデート|23日1回目のアップデート|何か機能を追加したり、新しく関数を追加すると決まって虫がいますね。すみません。`` 今日は日曜でまぁまぁ時間があると思うので、まだ未実装なprofile.inc.phpinstall.phpを添付出来たらと思っています。その前にデイリーアップデートです。`` 前回のアップデートでは、なんと新規エントリーに対してコメントが付けられませんで。これはコメントフォーム自体が表示されないというやつで、ひどいバグですね[いやー/] ベータ版なので許して下さい。`` あと、カテゴリーのソートも変な指定になっていたせいで、別のカテゴリー記事(カテゴリー名が一部重複するような場合)も表示されるのを修正しています。他には、Ajaxモードでコメントを読み込むと、ログインしていても、コメントレスボタンや編集ボタンが表示されなかったんですが、これは表示された方が良いにきまっているので、そうしました。`` おかげさまで、だいぶ煮詰まってきた感じはあります。前回との差分ファイルをまとめたやつを添付しておきますね(目下、「続きを読む」で表示させると添付ファイルは見えないので、タイトルをクリックして個別に記事を表示させて下さい。)。?inc.phpのやつはモジュールディレクトリのやつです。script.jsはjsディレクトリのものです。`` あと、こちらで把握しているバグは、Ajaxで続きを読み込むと、添付ファイルが表示されないとかですかね。今日のお昼ごろに直しておきます。[file:1130010675_dff10231.zip:50/]|martin|1|1|JavaScript|| [102] => 1129911011|アップデート|早速ですが…|先ほど、ベータ版その5を出したのですが、コメントモジュールの修正で不具合がありました。test_ip()という関数を新しく追加したのですが、それの戻り値の処理が違ってましたね。修正したやつを添付しておきます。[file:1129911011_comment.inc.php:15.1/]|martin|1|1|JavaScript|| [103] => 1129905904|アップデート|ベータ版その5|こんばんは。この期に及んで、まだ色々変更を加えているmartinです。でも、よりよりツールを提供したいので、それなりにこだわりたいです。`` 今回、それなりに大きな変更点があります。主にモジュールでの変更ですが、統計にカウントしないIPの設定をしやすくしました。ppBlogでは、特定のIPからのコメントやトラックバックを除外できるようになっていますが、そのモジュールと統合して管理画面の「IPコントール」の項目に組み入れました。ついでに、「記念日の設定」ですが、これまでは、中途半端に、config.inc.php モジュールに組み込まれていたのですが、これもanniv.inc.phpとして独立したモジュールとしました。`` あと、アクセス解析もちょいと修正を加えて、検索エンジンでのソートを2項目に分けました。ひとつは従来通りの、「どんなキーワードでこのサイトにやってきたか?」でソートしたもの、もうひとつは「各検索エンジンのシェア」をグラフ表示させたものです。前者の「キーワード」ソートですが、何だか似たような検索語がズラッと表示されていたりしてたので(ppBlogとかppblogとかPPBLOGとか)、少し整理して表示させるようにしました。また、このときにBiglobeExciteのアイコンがないことに気付き、この2つを追加してます。このスクリーンショットを載せておきます。グーグルのシェア、凄すぎです。`
`33.4:828:426:500:257:stat:center:1:1:ppblogでの検索が多いですねぇ。当たり前か。:`15.5:726:273:500:188:stat2:center:1:1:グーグルのシェア、驚異の9割超えです!!:`
` そういえば、管理画面のレイアウトというか、その裏側のタグをいじったりしたせいでいろんなモジュールが更新されています。見た目はそう変化はないです。|martin|1|1|JavaScript|| [104] => 1129627642|アップデート|ppBlog1.5β版その4|昨日は、プレーオフ決戦でホークスが負けてしまい、すっかりやる気を失せてしまったmartinです。まぁ、ロッテは31年ぶりでしたっけ?確かに今季のロッテはいいチームでしたから良しとしますか。ホークスだって、かつては万年Bクラスで、それこそ今では王監督のもと常勝軍団になっていますが、王監督も当初は、連敗続きでファンに卵を投げつけられたことだってあるんですよ。それがこんなに強くなって。でも、また日本一になって欲しいなぁ。プレーオフ制度が始まってどうもねぇ。。[うーむ/]`` まぁ、言い訳はこれぐらいにして。さて、β版のアップデートです。前回の不具合を修正しました。前回のβ版では修正して余計に変になってしまった部分もあったりして、すみませんでした。今回手直ししたファイルは以下のようになっています。```` 今回の大きな進歩は、カテゴリーアイコンの管理がきちんと出来るようになったことです。今までは、手動で設定すれば反映されるというものでしたが、管理画面から画像のアップロードなども行えるようにしています。`` そろそろベータ版を脱却して、Recomended Releaseも視野に入れますね。`` 最後になりましたが、バグのご指摘をしてくださっている方々、ほんとに助かりますし、感謝しております。`` 余 談`こんな記事がありますねぇ。えぇ、見直しちゃって下さい。` →プレーオフの方式見直し示唆|martin|1|1|JavaScript|| [105] => 1129235201|アップデート|ベータ版その3リリース|みなさんの貴重なアドバイスを元に、ベータ版のその3を先ほどリリースしました。修正されたファイルは以下の感じです。```` utils.php では、ちょこちょこ修正が入りました。作成中の関数があったり、記述がダブっていたりと。他にも多数。`` mail.inc.php は、実際のメール送信関数をコメントアウトしていたのでそれを消しただけです。`` search.inc.php は、そのうち肥大化するであろうログファイルを考慮した設計にしましたが、うまくいくかどうか。`` スタイルシートでは、ドラフトモードの記事を指定する新たなクラス(.draft)を設けました。IE以外の先進ブラウザでは、:before を用いた``
.draft:before {`  content: "未公開の記事です";`  color: crimson;`  font-size: 11px;`  padding-left: 1em;`}
``をきちんと解釈してくれますが、時代遅れなIEは、これを解釈できないので、IEだけPHPスクリプトの方で、分岐させています。やれやれ。`` あと、まだ詳しく書きたいのですが、また後ほどに。。|martin|1|1|JavaScript|| [106] => 1128968557|アップデート|ppBlogベータ版その2|ダウンロードサイトはhttp://download.p2b.jp です。昨日は書き忘れてました。すみません。`` このサイトのスクリプトもppBlog最新版で動いているのですが、自分でコメントをしようと思って、こちらが意図した動きでなかったのを修正しています。具体的には、```` これら関連で、utils.php, admin.php, ajax.php, modules/comment.inc.php, js/comment.js をいじりました。ヘッドラインモードは、今回からの新機能で、まだ細かい詰めが出来ていませんが、個人的にお気に入りです。Ajaxモードだと、その場で気になる記事は読み込めますし、表示する記事の数をボックスモードより気楽に増やせます。`` これからはアップごとの時間帯をIDみたいにダウンロードサイトのzipファイルに付けますので、差分の目安になるかと思います。`` 今回のバージョンからは、PHPのNoticeレベルのエラー(通常はサーバー側で非表示の設定のことが多い)も、可能な限り退治しています。それだけに修正が山ほどあって大変でしたが、長い目で見れば、今のうちからコツコツ対応するのが良いでしょう。`` あまり使われていない気もする記事のページング機能も、テキストエリアにページを表示させたり、他にもにょごにょごやって、大分使いやすくなったと思います。`` ちょっと寝ますね。おやすみなさい。|martin|1|1|JavaScript|| [107] => 1128928524|アップデート|ppBlog1.5β版をアップしてみた|ご無沙汰してます。ppBlogの最新ベータ版をダウンロードできるようにしています。これは飽くまでベータ版なので、まだ不具合やら不備やら何やらあるので、インストーラーは付いていません。どちらかというと開発者向け(?)なので、[g]FFFTP[/g]などのftpソフトを使ってアップした後は、手動で各パーミッションを変更して下さい。`` パーミッションの設定は、従来のように書き換えが発生するディレクトリなら777もしくは707、同様にファイルなら666か606、というのが一般的です。`` ディレクトリの構成などは基本的にそのままです。変わったところと言えば、スマイリーディレクトリを独立させたぐらいです。今までppBlogをいじった方なら、そう問題はないと思います。`` あと、大きな変化と言えるのは、テーマディレクトリにあるtemplate.htmltemplate.phpに変わってます。添付してあるアンプルを見れば大体分かるかもです。こちらの方が何かと都合が良いので。`` 試験的にAtom1.0のフィードもはくようにしています。いきなりエラーが出ますが、時間がないので今夜にでも。`` まだ、各種モジュールの隅々まで行き届いていませんが、何とか動かせるレベルかなと思いアップしました。また、後ほど。|martin|1|1|JavaScript|| )
ppBlog official

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

記事投稿時のスピードアップ

category-icon

 こんばんは、martinです。久しぶりの更新です。寒い日が続きなかなか暖かくなりませんが、春はすぐそこだと思います。今は横浜に住んでいますが、余震はここ1-2日はちょっと落ち着いてきた感じがします(油断は出来ませんが)。原発問題がはやく解決されること、そして被災地の一日でも早い復興をお祈りしつつ。

 さてマイナーアップデートです。フォーラムの方で、記事の更新にやたらと時間がかかるというご報告があり、調べてみると、カテゴリー数が多いとその傾向が顕著になることが判明しました。記事投稿時の処理でカテゴリー毎の記事数を更新するというのがあるのですが、その処理がボトルネックになっていました。これを解決するために、category_id.ini.phpという定義ファイルを新たにownerディレクトリに作成するようにして、そこからカテゴリー別の記事情報を取得するようにしました。

 utils_admin.phpcache.phpを更新すればアップデートされます。上記category_id.ini.phpファイルはなければ記事投稿時に自動的に作成されます。初回時は、このファイルを作成するのに時間がかかりますが、一度作成されると次回以降はスムーズに記事投稿処理が進むと思います。

 この2つのファイルを添付しておきます。

添付ファイル: cache.phpattachedIcon  utils_admin.phpattachedIcon 

 


— posted by martin at 12:43 am   commentComment [5]  pingTrackBack [0]

photoeffect.jsの更新

category-icon

 こんばんは、martinです。久しぶりの更新です。アップした写真をお洒落に見せるスクリプトがIE9βでは動かないとのご指摘があったので、IE9βでも動くようにアップデートしました。既存のものをそのまま置き換えるだけで良いと思います。

 IE9βでは、念願のCANVAS要素がサポートされています。なので、IE8以下では従来のようにVMLを利用、IE9以上であれば他のモダンブラウザと同じようにCANVAS要素で描画するようにしています。

IMG_0906
モネの睡蓮の池。ジヴェルニーにて。
IMG_0954
女性がダンスしているようなシルエット。
IMG_0955
植物ってほんと知らない名前ばかり
IMG_0929
ミニ唐辛子みたいな花。大きさは1-2cmってところ。
IMG_0960
同じ赤系でも色々ある。

 最新版のphotoeffect.jsを添付しておきます。

添付ファイル: photoeffect.jsattachedIcon 

 


— posted by martin at 07:54 am   commentComment [4]  pingTrackBack [0]

アクセス統計解析の最新版

category-icon

 こんばんは、martinです。

 自分のところで使っているアクセス統計解析の最新版を添付しておきます。ppBlogには、それなりに高機能なアクセス解析機能が付いています。たまに「リンク元」とかを見るのですが、それなりの頻度で怪しげなサイトからのアクセスログが残っていることがあります(お金の融資とかキャッシングとかカジノとか)。こういうのは、きっとアクセス解析をしている人をターゲットにして、意図的にアクセスログを残しているんだろうなぁ、と邪推してます(どのサイトから訪ねてきたのかな?という心理をうまく突いている)。

 現状では、URLの文字列にわかりやすいキーワードが含まれていれば、管理画面→「アクセス解析」→「統計カウント除外」→「除外キーワード」と辿(たど)っていって、そこでログに残さないように特定文字を指定出来ます。例えば、自分のブログでは、casinoとかpokerとかcashという単語を除外キーワードに指定しています。

 これはこれで効果はあるのですが、URL短縮化をされると対処できません。最近は、短縮URLGというのが流行っているようでtwitterとかでよく使われているとか。これは確かに便利な側面もあるのですが、WikipediaLink にもあるように、要は、何処に飛ばされるか分からないリダイレクト仕様なので、フィッシング詐欺なんかに簡単に悪用されます。

 なので、「リンク元」の画面でそのリンクをクリックする前に、ちょっと「ググッてみる」というギミックを付けてみました。単に「Googleで検索」というリンクをつけただけですが、何気に便利かなと思います。怪しげなURLだったりしたら、まずはググってみましょう。金融関係だったり、やたら他サイトのアクセスログが検索結果に出てきたりすると、「クロ」なのかぁと判断して、そういうサイトはスルーしましょう。

shot
短縮URLで一体なんのサイトか分からない。こういう時は、右側の「g」アイコンをクリック。

 添付ファイルを展開すると、view.phpというPHPファイルとg-link.pngという小さな画像があります。view.phpはstatディレクトリのものと入れ替え(例によって、もとのview.phpはバックアップをとっておいて下さい)、g-link.png画像はstatディレクトリにあるiconディレクトリへアップロードしましょう。

 うまく行けば、上に示した画像のように「リンク元」解析でURLの右側に小さな「g」アイコンが現れます。これをクリックすると、そのURLにアクセスするのではなく、グーグルでURL自体を検索します。

 何かありましたらコメントをどうぞ。

関連リンク

短縮されたURLの元のアドレスを教えてくれるサイト→http://knowurl.com/Link百式さんLink 経由で知りました)
添付ファイル: latest-stat.zipattachedIcon 

 

— posted by martin at 11:43 am   commentComment [0]  pingTrackBack [0]

複数ファイルアップロード等のための差分

category-icon

[追記 2010/05/26 17:13:22]

 oParts.jsでのデバグ消し忘れとIE8でlib.jsでエラーが出ていたのを修正。添付しておきます。

 こんばんは、martinです。HTML5に対応したブラウザ(Firefox最新版やSafari, Chromeなど)では、画像などのファイルアップロード時に複数のファイルを一括して選択・アップロード出来ます。

 ppBlogでも、それを可能するための差分ファイルを添付しておきます。ppBlogの次期バージョンはv1.9.0を予定していますが、それに先行する形で、とりあえず試されたい方はどうぞ。

 また、この差分アップデートを適用すると、ローカルストレージ(localStorageG)を利用した記事データのローカル保存のモードも有効になります(これはIE8も対応)。これは、書きかけの記事を、お使いのブラウザの保存機能を用いて、サーバー側ではなくローカルのPCに保存するものです。以前、(オフラインで書いていて)ほぼ書き上げた記事の投稿に失敗した経験があって、それで「オートドラフト」機能とは別につけてみようと思いました。従来の「オートドラフト」機能は、サーバーサイドに記事データを保存する点が「ローカル保存」と異なる点です。

 この新機能の利点は、インターネットに接続されていない環境でも、あらかじめ記事画面さえ開いていれば、オフラインで記事を書き続けて、とりあえずローカルに保存しておける点です。何かの間違いでブラウザ画面を閉じてしまっても、一度「ローカル保存」しておけば、再度ブラウザ画面を開いた際に、「保存履歴」から記事を復元することが可能です。
shot1
「ローカル保存」のボタンと「保存履歴」のボタン。
shot2
「保存履歴」ボタンを押したときの挙動
 添付ファイルの内容は以下の通りです。
  • utils.php
  • upload.php
  • modules/write.inc.php
  • modules/edit.inc.php
  • Images/progressbar.png
  • css/edit.css
  • css/admin.css
  • js/lib.js
  • js/oParts.js
  • js/editor.js

 それぞれ既存のファイルを上書きすれば良いかと思います。もとのファイルのバックアップは取っておいて、いつでも元に戻せるようにしておきましょう。自分のサーバー環境では、複数ファイルアップロードは問題ないようですが、サーバー環境はいろいろなので何か不具合とかあればご報告お願いします。

添付ファイル: multiple_upload.zipattachedIcon  lib.jsattachedIcon  oParts.jsattachedIcon 

   


— posted by martin at 08:26 am   commentComment [14]  pingTrackBack [0]

Firefoxに伴うアップデート

category-icon

 こんばんは。普段はブラウザとしてFirefoxを使っています。で、先ほどブログの方で記事を投稿したら、Firefoxだけ(厳密にはGeckoエンジンブラウザ)に読み込ませるツールチップのスクリプトが動作していないことに気付きました。

 Firefoxは、画像などで多用されるTITLE属性内の改行や改行コードを無視します。実は仕様としては正しい振る舞いです。でも、TITLE属性の改行が有効な方がブラウザの使い手には優しいと思うので、ppBlogでは、FirefoxでもTITLE属性内の改行が有効になるようなスクリプトを用意しています。

 で、その読み込ませる際に、次のようにしています。

 if(client.Gecko) oParts.loadScript(baseURL + 'js/firefoxtooltip.js');

 このブラウザ判定は、window.GeckoActiveXObject でやっていたんですが、これがいつの間にやら認識されなくなったようです。実は、今日Firefoxの自動アップデートがありバージョンが3.5.6になりました。で、リリースノートを見てみると、どうやら

http://www.mozilla-japan.org/security/announce/2009/mfsa2009-71.html

が関係している模様。でも、これで認識しなくなるのかなという疑問もありつつ、この部分を修正しました。最新のoParts.jsを添付しておきます。

添付ファイル: oParts.jsattachedIcon 

— posted by martin at 03:55 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
Created in 0.0280 sec.
prev
2012.2
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