2008/01

wp-mixipublisher:テスト

2008/01/24 木曜日 - 20:01:31 by decama

この記事がポストされれば問題ないはず。

ならば修正もされるはず。

どちらもOK。
久しぶりにここを更新するようになって、気がついたらmixiへの書き込みが出来なくなってた。どうやらmixi側の修正にプラグインが対応できてかったのが問題みたいだったけど、その修正対応版でもなぜか動かない。
ソースを追っかけてみて、post_idを直接指定してプラグインファイルを実行させれば書き込めることは確認取れたので(前3件の記事をmixiに投稿してみた)、要はpublishToMixiに記事IDを渡してやればいいはず。
saveHandler, publishHandler からの executePublishToMixi が publishToMixi を呼び出してるのかと思ったらそうじゃなかった。
どうやら、executePublishToMixi でチェックさせた後で、 mixipublisher_isEnableSelfExecute から publishToMixiを呼んでる。
ところが、現行のWordPress(2.3.2)はpost_idをgetで投げてないから、 ここでコケる。
post_idをpostedに修正したら動くかな?と思ったけど、新規投稿はいけるけど、投稿済み記事の更新がダメだった。
なので、 executePublishToMixi から直接 publishToMixi を呼び出すように修正。

function executePublishToMixi($postId, $isModify=false) {
        if(in_array($postId, $this->_publishedId)) {
            return false;   //falseを返すように修正
        }
        $settingVO = $this->getWpSetting();
        if(!$settingVO->getParam('user_id')) {
            return false;  [...]

Akelos:同時並行でサイト構築テスト中

2008/01/23 水曜日 - 01:33:48 by webmaster

CakePHPを始めたのはいいんだけど、いまいちキレイにまとまらない。深い階層の配列を書かなきゃいけないことが多いし、DBアクセスは楽かも知れないけれど、準備にかかる手間が多すぎて、「こんなんだったらSQL直接書いてスクラッチしたほうが早いんじゃ・・・」って思っちゃう。
メンテナンスの手間とかを考えたら、導入するメリットはあるんだろうけども。
CakePHPも「とりあえず触ってみないとわからんだろ」との勢いもあって始めてみたので、その勢いでもう一つ触ってみる。
Akelosってのがなんとなく気になったのでこれを使ってみようと思う。
インストール~チュートリアルでいきなりひっかかるし、Call-time pass-by-referenceのWarningの嵐でメゲそうだけど、まずは全体像が見えるまでやってみよう。

CakePHP:Smartyを使う

2008/01/21 月曜日 - 18:34:59 by webmaster

テンプレートで<?php echoとか書きたくなかったので、Smartyを使えるようにしたい。
Smarty View for 1.2
ここを参考にsmarty.phpを作成。htmlヘルパークラスやformヘルパークラスに配列でパラメータを渡さなきゃいけないときにどうするか、って問題があって、assign_assocっていうsmarty用のプラグインを使えばいいんだけど、配列を文字列で渡すのがちょっとキモチ悪い。直接渡せないかとおもってヘルパークラス(basics.phpからaとaaとprを持ってきた)を作ってみたけど、Smartyはオブジェクトのパラメータにオブジェクトがあるとパース出来なかった。
せっかくヘルパークラス作ったのでヘルパークラスメソッドをassignすることで自分としては納得するしかないかな。

CakePHP:モデルのバリデーション

2008/01/21 月曜日 - 17:54:33 by webmaster

何ヶ月ぶりかの更新だったりする・・・(笑)
CakePHPでサイト構築をしようと思って始めてみたので、自分用のメモ。
Modelのvalidateプロパティでバリデーションの指定が出来るけど、formヘルパークラスで出力してるエラーメッセージの指定もここで出来る。
ブログチュートリアルではこう書いてあるけど、

var $validate = array(
    'title' => VALID_NOT_EMPTY,
    'body' => VALID_NOT_EMPTY,
);

こんな風にも書ける。

var $validate = array(
    "title" => array(
        "rule" => VALID_NOT_EMPTY,
        "message" => "タイトルが未記入です。",
    ),
    "body" => array(
        "rule" => VALID_NOT_EMPTY,
        "message" => "本文が未記入です。",
    ),
);

$validation.phpで定義されているValidationクラスのメソッドでバリデーションすることも出来る。

var $validate = array(
    [...]