libpng.lib作成

用意するモノ
・libpngソース PNG (Portable Network Graphics) Home Site
・zlib.libを作成時にあったモノ一式
・Visual C++2008 Express Edition(64-Bit Targets適用)

ダウンロードしたlibpngを展開。
コマンドプロンプトを開き、展開したlibpngフォルダまで移動。

vc用のmakefileをコピー。

F:\desktop\lpng1238>copy scripts\makefile.vcwin32 .\makefile

MSVCR80.DLLを使いたくないのでmakefileを編集。
19行目

19
20
#CFLAGS = -nologo -DPNG_NO_MMX_CODE -MD -O2 -W3 -I..\zlib
CFLAGS = -nologo -DPNG_NO_MMX_CODE -MT -O2 -W3 -I..\zlib

lpngフォルダと同じ階層にzlib.libを作ったときのzlibフォルダ*1を置いておく。
Visual C++ ツールセットを有効にしてnmake。

32bit
F:\desktop\lpng1238>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
 
64bit
F:\desktop\lpng1238>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.
 
F:\desktop\lpng1238>nmake

libpng.lib完成。
もう一度nmakeする場合は、nmake cleanしてからすること。

脚注

  1. フォルダ名をzlibに [戻る]

zlib.lib作成

用意するモノ
・zlibソース zlib Home Site
・Visual C++2008 Express Edition(64-Bit Targets適用)

ダウンロードしたzlibを展開。
コマンドプロンプトを開き、展開したzlibフォルダまで移動。

vc用のmakefileをコピー。

F:\desktop\zlib123>copy win32\Makefile.msc .\Makefile
.\Makefile を上書きしますか? (Yes/No/All): y
1 個のファイルをコピーしました。

MSVCR80.DLLを使いたくないのでMakefileを編集。
30行目の”-MD”を”-MT”に変更。

30
31
#CFLAGS = -nologo -MD -O2 $(LOC)
CFLAGS = -nologo -MT -O2 $(LOC)

Visual C++ ツールセットを有効にしてnmake。

32bit
F:\desktop\zlib123>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
 
64bit
F:\desktop\zlib123>"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat"
Setting environment for using Microsoft Visual Studio 2008 Beta2 x64 tools.
 
F:\desktop\zlib123>nmake

zlib.lib完成。
もう一度nmakeする場合は、nmake cleanしてからすること。

朝の良く動いてない頭で

Microsoft Visual Studio 2008 Express Editionをインストールしてみた。
実は2008インストールしてなかったんだ。

あと、Download details: Windows SDK for Windows Server 2008 and .NET Framework version 3.5も忘れずにインストール。

Visual C++ 2008 Express Edition And 64-Bit Targets « Jens’ Blogもインストール。
64ビットexeが作れるようになった。

リソースファイルを手打ちで書くのは面倒なので、ResEdit Resource Editor – free resource editor for Win32入れておくかな。

で、何作るよ?

<textarea> には初期値となるテキストを指定しておきましょう。

Another HTML-lint gatewayでチェックすると個別ページで

「<textarea> には初期値となるテキストを指定しておきましょう。」

っていわれる。
入力用フォームなら初期値とか要らない気がするんだが、何かしら文字を出しておくのも悪くないかなと思って初期値を入れてみることにした。

1
2
3
    <p>
        <textarea name="comment" id="comment" cols="45" rows="10" tabindex="4">コメントして下さい。</textarea>
    </p>

テーマのcomments.phpに上記のように初期値を追加。
これで、100点だ。

しかし、このままだとボタンを押されると「コメントして下さい。」の文字が送信されてしまう。
そこの制御はJavascriptさんに任せることにします。

上の検索フォームで使ってるソースを流用。*1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(document).ready(function(){
  var defmsg = 'コメントして下さい。';
  $('#comment').blur(function(){
      var $$=$(this);
      if($$.val()=='' || defmsg==$$.attr('value')){
        $$.css('color', '#7F7F7F').val(defmsg);
      }
    })
    .focus(function(){
      var $$=$(this);
      if(defmsg==$$.attr('value')){
        $(this).css('color', '#000000').val('');
      }
    })
    .parents('form:first').submit(function(){
      var $$=$('#comment');
      if(defmsg==$$.attr('value')){
        $$.triggerHandler('focus');
      }
    }).end()
    .blur();
});

これで、フォームがアクティブになると「コメントして下さい。」の文字が消え。
かつ、初期値のままでは投稿できないようになりましたとさ。

脚注

  1. jQueryを使用 [戻る]

_wp_unfiltered_html_comment

WordPressにログインした状態のコメントフォーム内のid属性値に”_wp_unfiltered_html_comment”ってのがある。

id値はアンダーバーから始まっちゃダメだろ…

まぁ、別に何か問題があるというわけではないんだが、FirefoxにHtml Validatorをインストールしてると警告マークが付いて気になってしょうがない。

というわけで、最初のアンダーバーを取って”wp_unfiltered_html_comment”にする。

dw2009071802 550x265  wp unfiltered html comment

プラグインが使ってるかもしれないから、一応Grepした方がいいよ。

Another HTML-lintで100点を目指せ

現状

dw2009071701 550x364 Another HTML lintで100点を目指せ

すでに、「よくできました。」である。
もうゴールしても良さそうな点数だけど、気になるので修正。

プラグインと動作チェック

HTTPのエラーログに大量のエラーが…

[Mon Jul 13 20:19:42 2009] [error] [client 203.135.231.85] next, referer: http://www.dazzlingworld2.com/

<!–nextpage–>を使ったページを表示するだけで出るようで、何でこんなのが出るのか半日ほど調べたけど分からず。
おかげで仕事も手に付かず。
でも、仕事中にもしかしてと思い当たる。

もしかして、PHPにエラーログ吐かせる命令があるのではないか。と。

で、実際にあってビンゴです。
error_log();
ってのらしい。

サーバー内を”error_log(‘next’)”でgrepしてみると一件出てきた。
Table of Contents Generatorっていう見出しから目次を作るプラグインの中にありました。

Table of Contents Generator的にはnextpageは使って欲しくないのだろうか?
確かに、目次のリンクが切れそうではあるが…

error_log(‘next’);をコメントにすれば良いんだろうけど、プラグイン自体使わなさそうだから停止しとくかな。

コンフリクト!

昨日辺りから、フィードが500エラーを返してて何でだろうと色々調べてみると、昨日入れたExec-PHPが問題だったらしい。

Exec-PHP単体で動かしてる分には良かったんだけど、”Syntax Highlighter for WordPress”と同時に使用すると、フィードでPHPを実行しようとしてるみたいで。*1
さらに、フィードではSyntax Highlighterも動かないから[php]も置換されずにそのまま出てるわけで…
“eval()’d code on line 20″とか’[‘が多いとかいうエラーが出てました。

フィードでPHPを動かす必要性はあまりない。
てことでExec-PHPで実行される前に[php]~[/php]をオミットすることにする。

exec-php/includes/runtime.php

1
2
3
4
5
6
7
8
9
10
11
function eval_php($content)
{
    // to be compatible with older PHP4 installations
    // don't use fancy ob_XXX shortcut functions
    $content = preg_replace('/\&#x5b;php&#x5b;^&lt;&gt;#x5d;*\&#x5d;(.*\r\n)+\&#x5b;\/php\&#x5d;/i', "", $content);
    ob_start();
    eval("?&gt;$content&lt;?php ");
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}

空白に置換するんじゃなくて、何かしらの文字列にした方がいいかもねぇ。
「PHPソース省略」とか。
あと、PHPだけじゃなくてHTMLソースも消した方がよさそう。*2

脚注

  1. 記事は’<’が文字実体参照に置換されるから問題ない [戻る]
  2. 今回対応したのが、後で問題になりそうな気がするなぁ… [戻る]

色々テスト

目的

プラグインテスト

その1

文章に注釈を付けます。*1
括弧の前に半角スペースがいるのか…

その2

見出しを拾って目次を作る*2
たぶん使わない。
スタイルはセルフサービスかよ。

その3

amazonテスト。
画像サイズ大は無理があるな…

結論

なんにせよ。CSS書かないといけない。*3

脚注

  1. WP-Footnotes [戻る]
  2. Table of Contents Generator [戻る]
  3. めんどくせ [戻る]
上へ参ります。