Oct 31
どこかに書いとか無いと忘れそう…
  • マルチ・サブカテゴリのプラグイン
  • WPテーマ SandBox の移植
  • ここのスキンに使ってるやつの配布用パッケージ
  • NP_CustomURLの書き直し
  • ThickBox使ったアイテム編集bookmarkletプラグイン
  • jQuery で NP_QuickEdit みたいなやつ
  • PHP Classes で見つけた PDO wrapper の検証
  • 本家のスキンサイトみたいなやつを作るプラグイン
  • プラグイン・イベントのドキュメント
いまんとここんだけ
なんだ、書いてみると案外少ないや
PDO のは半分終わったし
php4 のサポートが年内で終わるらしいけど、完全移行にはもうちょっと時間かかりそうだしねぇ

OpenID を使ってログインすることができます。
Identity URL:



Oct 30
一応完成
まだ実験も何もしてませんが…
明日から仕事場のサーバに上げて3.31共々実験開始

参考までにNP_Pingとの相違点
  • 登録済みのpingサーバに、日本向けのものを追加
  • HTTPの非同期通信を使用して多数のサーバに同時にリクエストを送信(php4でソケット関数が使用できない場合は同期通信)
  • アイテム編集時に『pingを送信しない』選択が可能
  • 『未来の日付の記事が有効になったとき~』のオプションが『いいえ』に設定されている時はechoしない
  • NP_SendPingと同じように、送信するpingサーバを追加できる
  • NP_SendPingと同じように、『更新時に送信するブログのURI』を設定できる
  • 『weblogUpdates.ping』と『weblogUpdates.extendedPing』を区別して、『weblogUpdates.extendedPing』の時には3,4番目のパラメータも送信する
  • 『weblogUpdates.extendedPing』の4番目のパラメータ要のフィードのURIも設定可能(設定しない場合は example.com/xml-rss2.php?blogid=ブログのID)
  • 各オプションをブログ別に設定出来る様に createOption を createBlogOption に変更
*追加するpingサーバが extendedPing に対応している場合は『http://rpc.weblogs.com/rpc2,ex』の様に、URIの後に『,ex』をつけると extendedPing のフォーマットで送信します
登録済みのpingサーバ一覧
  1. Ping-o-matic
  2. weblogs.com
  3. Technorati.com
  4. Google Japan
  5. Yahoo! Japan
  6. Pingoo!
  7. Goo
  8. Blog360
  9. Ask.jp
  10. Blogrolling.com
  11. Blo.gs
  12. Weblogues
  13. Blogg.de
*『Pingoo!』『Blogg.de』はユーザー登録が必要、『Weblogues』はフランス国内のブログからのpingのみ受付です
ということで、人柱になってやろうと言う酔狂な方はCVSまで

OpenID を使ってログインすることができます。
Identity URL:



Oct 30
system("start /b c:\php\cli\php c:\index.php > nul"  );
でできるそうな(参考:橋本雄の技術ブログ Hashimoto Labs)
ただ、『c:\php\cli\php』の場所を見つける方法ってあるんでしょうか?
『php』だけじゃ起動しないよね?パス通ってないから
並列処理でping打つと笑っちゃうくらい早く終わるけど、それは今までが時間がかかりすぎてただけで別に一瞬で終わる訳じゃなく、レスポンスの遅いところはやっぱり遅いわけで…
timeoutを15秒に設定してると最大15秒は待つ事になるから、サイトを開いていきなりページ移動したくなってもその間は動かない
JustPostedイベントを発生させるcheckJustPosted()関数が実行されるのが、スキンのパース完了直後(globalfunctions.phpの993行目)だから、アクセスしたとたんに動かなくなるわけじゃないけど、『$this->sendPings($data['blogid']);』で呼び出しちゃったら『echo』はやっぱりみてるページに表示されません?
一応、JustPostedイベントの時は非表示モードで動くようにしたけど…
いっそユーザーエージェントまで見てクローラーぽかったら非表示モードで実行、管理エリアへのアクセスだったら表示モードで実行、ブログへのアクセスで人間が見てそうだったら実行しないようにするのはどうだろう?
でも一応バックグラウンドモードは残しとこう。使えるサーバだとこの上なく便利だし

OpenID を使ってログインすることができます。
Identity URL:



Oct 28
『アイテムの日付を未来に設定して投稿した後、日時がアイテムに設定したものに達した時に、"バックグラウンドで”更新pingを送信します(可能な場合)』
これ、ユーザーに選択させるんじゃなくて(選択肢は残してもいいけど)、スクリプト側で exec() が実行可能かどうかと、使用しているサーバのOSがWindows系かどうかを判断させた方がよかないだろうか?
オプションを『バックグラウンドで送信する』に設定しても、不可能な場合は元の値に戻すようにして、『フォアグラウンドでの送信』設定の場合は eventJustPosted() での仕事は $this->justPosted に true を代入するだけにして、その後にくる event_PostSkinParse() で echo せずに送信するようにすれば、けっこうバックグラウンドっぽくなるんじゃないかと
しかし…、どこかで割り切る必要はあるのかなぁと… No Comments yet.

OpenID を使ってログインすることができます。
Identity URL:



Oct 27
どこを探しても exec() または system() で CLI版に渡す事しか見つからない…
gopear.php なんかの事もあるからさすがに CLI版をインストールしていない環境というのはまず無いだろうけど、世の中にある格安、もしくは無料のレンタルサーバって普通に exec() 使えるんだろうか?
そもそも Windows環境だと、
exec("php $DIR_PLUGINS/ping/ping.php " . $data['blogid'] . " &")
だと何も起きないはず
最近 IIS サーバの数がかなり増えてきてるはずですが(参考)、切り捨てちゃっていいんでしょうか?
いっそのことウィンドウポップアップさせてそっちでping飛ばすとか、別ウィンドウ出すならjavascript使った方が速そうとか、色々考えて頭の中が五里夢中
そもそも JustPosted イベントとか、「そんなの cron にやらせろよっ!」って思っちゃうんですが、いかがなもんでしょ?

OpenID を使ってログインすることができます。
Identity URL: