ひびろぐ ver.2

Google検索したときの見た目を考慮してブログ名を変更してみた。馬鹿かと阿呆かと。

Archive for the ‘つくったもの’


プレゼンテーション配信?ソフトウェア(未完成)

だいぶ前に基本形だけ作って熟成していたんだけど、まともに完成させる時間的余裕がない&&気が付いたら某所で名指しされていたので思想と概要だけ晒しておく。不満があるのでやるならまともに再実装したいんで。

(more…)

ファイルアップローダ兼ダウンローダを作ってみた

自分の要求にちょうど良く合っているものが見つからなかった……というか探すのがだるかったので作ってみた。


とりあえず要求というか目指したものというかそういうのを書いておこうと思う。機能というより思想を文章化しているのでちょっと長いのは仕方がない方向で。

(more…)

Wp-MixiPublisher サイトデザインリニューアル対応版 記事更新(修正)対応版

投稿済みの記事を修正する機能が働いていなかったので修正。

完璧に動作するかはちと怪しいですが、まぁ。

うまく動かないよって人にはデバッグ出力垂れ流し版とか差し上げてもいいですが、それを使ったとしても原因がちゃんと特定できて直せるとは限りませんのでアシカラズ。


ちなみに記事の修正が出来なかった理由は、記事修正のステップが変わったから。かな?前の仕様を覚えていなかったので確証がありません。というか、私はこのプラグインに修正投稿機能があったことに気がついていませんでした。ダメじゃん。


あ、ちなみにこの下のリンクはmixiにマルチポストするときに腐ると思いますのでアシカラズ。正規表現ちゃんと読んで修正するしかないけどめんどい。

Wp-MixiPublisher サイトデザインリニューアル対応版 記事更新(修正)対応版

Wp-MixiPublisher 2007/10/01のmixiサイトデザインリニューアル対応版を勝手に作ってみた

勝手に改造した。ベースは1.0.0 RC2。


2007/10/01のmixiサイトデザインリニューアルに伴い、Wp-MixiPublisherが動かなくなりました。

しょんぼりなので頑張って強引に直してみた。


まず、各種設定のWp-MixiPublisherのページでMixiPublisherの有効状況が有効にならないという問題を確認。

これは、mixiの設定(http://mixi.jp/edit_account.pl)の「日記・ブログの選択」で「ミクシィ日記」が選択されていることを確認している部分(isEnabledMixiDiary関数)がこけてしまっていることが原因。Wp-MixiPublisherのソースを読むと、

PHP:

  1. if(strpos($content, '<select name=diary_host><option value=1 selected>') !== false) {


とやって判定している。

mixiのソースを読むと、

HTML:

  1. <dt>日記・ブログの選択 <span class="necessaryItem">*</span></dt>
  2. <div class="editItem01">
  3. <select name="diary_host">
  4. <option value=1 selected>ミクシィ日記
  5. <option value=2>楽天広場
  6. ...


といった内容。……改行が誤認されているのか?「"」はいいのか?

ひとまず暫定的に

PHP:

  1. if(strpos($content, '<option value=1 selected>') !== false) {


を通して有効になるようにしてみた。

私の環境では他にoption value=1がないので誤爆していませんが、設定如何によっては誤爆するかもしれません。

これで各種設定のWp-MixiPublisherのページでMixiPublisherの有効状況が有効にならない問題は解決。しかし投稿できない


投稿できないのは、根本的には各種要素がXHTMLにちゃんと対応したことが問題の模様。

投稿確認画面の処理に正規表現を用いているんだけど、こいつが誤爆してる。

もっと具体的にぶっちゃけると、

HTML:

  1. <input type="hidden" name="diary_title" value="ほげほげ" />


に対する

PHP:

  1. preg_match_all('/<input type=["\']?([^<>\s]*?)["\']? name=["\']?([^<>\s]*?)["\']? value=["\']?(.*?)["\']?>/is', $result, $match, PREG_SET_ORDER);


の問題。

おそらく修正前のmixiではinputタグを閉じていなかったのでこの正規表現でOKだったんだけど、閉じを誤爆してvalue要素が狂ってしまって各種name/value対応が狂ったのが原因。(興味がある人は、確認画面のソースを覗いてname/valueの対応を考えて見ましょう。)

っつーわけで、正規表現を適当に修正。

PHP:

  1. preg_match_all('/<input type=["\']?([^<>\s]*?)["\']? name=["\']?([^<>\s]*?)["\']? value=["\']?(.*?)["\']?\/>/is', $result, $match, PREG_SET_ORDER);


以上をもって投稿が可能になりました。適当に修正したファイルをアップしておきます。

AuthorとかVersionとかは勝手にちょこっといじりました。怪しいので今後適当に直します。元々がGPL2っぽいので、それを変えていないから多分問題は起きない……かな?


以下、1.0.0 RC2をベースに勝手に改造したファイル。置き換えれば動きます。phpファイルをそのままzip圧縮しただけなので、解凍するときは注意。

wp-mixipublisher.php 2007/10/01 mixiサイトデザインリニューアル対応版

追記:改造元にフッターを先に表示する改造が施されていたのを忘れていました。(他にもどこかいじったっけ?もう覚えてないぞ。)というわけで修正版UP。バージョン表記を1.0.0 RC2 +aに適当に変更。

wp-mixipublisher.php 2007/10/01 mixiサイトデザインリニューアル対応版 修正版