









2010年 2月 10日
メルマガをWordPressでできないか?ということについて、以前に調査していたのだが、やりたいことに該当する方法ではなかったので、オープンソースのメルマガ発行ソフトのPHPListを使うことにしようかと思って調査したのでメモ。ちなみにWordPressとPHPListを繋ぐPHPList Form Integrationというプラグインがあるのでこれを使う予定。
参考にさせていただいたサイト
ではいきまーす。
- まずはここからPHPListの日本語化されたものをダウンロード。
http://www.d-ip.jp/download/pivot/entry.php?id=14
- ダウンロードしたファイルを解凍し、public_html直下にあるlistsディレクトリをWordPressと同じディレクトリに入れる。
- lists/config/config.phpを修正する。インストールするデータベース名、データベースユーザ名、パスワードなどを修正。ここはWordPressと同じものでOK!!あとPLUGIN_ROOT_DIRが原因でエラーが出てたので、コメントアウトしておいた(この辺りはよくわかってない)。TESTの値も0にしておく(そうしないとメール送れないので。後で0にしてもよい。)
- PHPがsafe modeで動いてると問題があるかもね!というメッセージが出続けるので、CGIモードで動かすために、lists/admin/.htaccessに以下を追加する。
AddHandler application/x-httpd-phpcgi .php
- CGIモードで動くとphp.iniの情報が変わってしまうので、独自に設定するためにlists/admin/以下にphp.iniを作成する。
magic_quotes_gpc = On
register_globals = Off
session.auto_start = Off
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
# /tmp以下にセッションファイルが作れないというエラーが出たので、
# 自分のディレクトリ直下にtmpを生成しておくこと
session.save_path = "/virtual/********/tmp"
- http://自分のWordPressのドメイン/lists/admin/にアクセスし、PHPListをインストールする。
- 管理者のパスワードを変えておく。
- インストールが問題なく終わったら、サンプルでインストールされているリスト(メルマガのこと)をアクティブにしておく(WordPressのプラグイン経由でPHPListを使うため)。
- CORESERVERのcronを使ってメルマガ配信するために、シェルスクリプトを作成する。名前はphplist.shとした。
#!/bin/sh
wget -q -O - 'http://自分のWordPressのドメイン/lists/admin/index.php?page=processqueue&login=管理者名&password=パスワード' >/dev/null
このファイルは/virtual/********/phplist.shに置いた。実行権限を与えておくこと(705)。
- CORESERVERのcronに/virtual/********/phplist.shを登録する。
普通のサーバのcronならば、
*/15 * * * * /virtual/********/phplist.sh
でよいと思うのだが、CORESERVERでは分に入力できる文字列が2文字までみたいなので、*/15と入力できなかった!やっていいのかどうかはわからないが、4行分使って、
0 * * * * /virtual/********/phplist.sh
15 * * * * /virtual/********/phplist.sh
30 * * * * /virtual/********/phplist.sh
45 * * * * /virtual/********/phplist.sh
と設定しておいた。
これで15分毎にチェックされ、キューに入っているメルマガが15分毎に配信されるはず。
さっきまで試していたことなので、だいたい合っているはず。
WordPressのプラグインであるPHPList Form Integration
の設定については後でまた書きたいと思う。










2010年 2月 4日
MBFpdfでバグを発見した!!バージョンは1.0b。
["](ダブルクォーテーション)が出力できないというものだ。
$l+=$ascii ? $cw[$c] : $hwkana ? 500 : 1000;
上のソースの$cw[$c]の$cにダブルクォーテーションが入ってるのだが、
undefined index ” と言われてしまう…。
そこで、$cwをprint_rで表示してみたら、
array(…,[\"] => 500, …);
という記述を発見。ダブルクォーテーションあるけれど、バックスラッシュでエスケープされてるじゃないか!?まあこれが正しいと仮定した場合、$cw["]は定義されていないわけだから、$cが["]の場合、$c = ‘\”‘;にしてしまえばいいんじゃないかと思ったので、mbfpdf.phpに手を入れることを決意!!
MBMultiCellメソッドを修正。
//Get next character
$c=$s[$i];
// 以下3行を追加
if($c === '"'){
$c = '\"';
}
その後、MBWriteメソッドを修正。
行番号は、上記の作業後なので、この付近と思ってください。
//Get next character
$c=$s[$i];
// 以下3行を追加
if($c === '"'){
$c = '\"';
}
こうしたところ、ダブルクォーテーションがPDFファイルに出力できた。
コメント