Contact Form 7の文面をfilterでいじる

WordPressを使ってお問合せフォームといえばContact Form 7というぐらいに定番になっているかと思いますが,単純なお問合せフォームでも色々と条件分岐したり,置換してみたりしたいことが出てきます。
条件分岐や置換の部分をPHPで書けば良いのですが,さてそのフィルタをどこに入れようかと,ソースを追いかけると,ちゃんと用意されておりました。

contact-form-7/includes/class.php 内の compose_mail 内で

$components = compact(
  'subject', 'sender', 'body', 'recipient', 'additional_headers', 'attachments' );
$components = apply_filters_ref_array( 'wpcf7_mail_components',
  array( $components, &$this ) );
extract( $components );

というのがありましたので,テーマ内のfunctions.phpにこんな感じで追加

add_filter('wpcf7_mail_components', 'my_mail_filter',10,2);
function my_mail_filter( $components, $cf7) {
  $lines=explode("\n",$components['body']);
  $newbody='';
  foreach($lines as $l){
    //行毎に分解して処理する感じのコード
    //例えば半角カナを全角に変換とか
    $newbody.=mb_convert_kana($l,'aKV')."\n";
  }
  $components['body']=$newbody;
  return $components;
}

あとは自分の関数内で書き放題ということで。

起動時に特定フォルダを別ドライブとして扱う(Win2k3)

とある事情によりCドライブ1本だけでインストールしていたWindows Server 2003がありまして、こちらにDドライブが欲しいと言うことになりました。物理的な増設はナシでできないかということで、substコマンドで適当なディレクトリをDドライブ扱いにしてやります。

> subst.exe D: C:\DATA

Windowsでフォルダをドライブに見せる&ドライブをフォルダに見せる。 – ..たれろぐ..

これをバッチファイルにして起動時に実行するようにすればOK!…のはずなんですが、実行されません。
タスク・スケジューラでシステム起動時にタスクを実行する - @IT

ログオン時であれば実行されるのですが…

結局元の要求が起動時でなくてログオン時で良いということで、ログオン時設定で問題ありませんでしたが、本当はできれば起動時に適当なアカウント扱いで実行されて欲しい。
なんとかならんもんなのかなーこれ。上記はadministratorユーザーで動いてますが、別のシステムアカウントなら動いたりするのかな…

VMware ESXi上に元々OEMだったWindowsをインストールする

OEM版Windows(Server)は物理マシンのOEMIDを見てインストールOKかNGかを判別します。
じゃぁ物理マシンに直接じゃなくてVMware ESXiをはさんだらどうなるかというと,そのままだとNGです。

IBM OEM版Windows Server 2008メディアを使用して、仮想マシンにインストールする方法

データストアからVM定義ファイル(.vmx)を引っ張ってきて最後に

SMBIOS.reflectHost = TRUE

を追加してやれば物理マシンのOEMIDを参照するようになるそうで。

これでOEM版のCD/DVDからインストールができるようになります。

他にもvmxファイルで色々設定できます。
仮想マシン定義/BIOS – VMware Player Wiki*

HDMIキャプチャでUstream

この度義弟が結婚式を挙げるということなんですが,義祖父母が都合により行けないため,なんとかネットで中継できないもんかと言われまして,じゃぁやってみるかと準備。

2013-04-12 17.55.05

機材・接続
Victor GZ-HM240-S
↓ mini HDMI~HDMI
BlackMagicDesign UltraStudio Mini Recorder
↓ Thunderbolt
MacBook Air

【小寺信良の週刊 Electric Zooma!】第598回:激安HDMIキャプチャ、BMD「UltraStudio Mini」 -AV Watch
この記事を見て,これだな,と。

ソフトウェアのインストールも問題無く,環境設定からSDIじゃなくてHDMIを指定,フレームレートを合わせてやって(1080i/59.97)無事に使えました。
ブラウザからUstreamに繋ぐとフレームレートの設定がうまくできないので,Ustream Producerから接続してやればOKです。

screenshot20130412

Xiデータ通信経由で繋げてみましたが,とりあえず都内LTEでは余裕のようです。
結婚式の現地ではどうなることやら…

最近のテレビ(今回はPanasonicのVIERA)はUstreamがそのまま見られたりするのでまぁ便利ですねー。