shcemaの提供されていないCakePHP製AppのDB定義を更新する方法

CakePHP1.2.5ベースで開発されているCMSのcroogoですが、
DBのテーブル定義等はdumpされたsqlが提供されているのみで、
インストール時にはそのSQLを直接MySQL(phpMyAdmin経由)で実行するようになっています。
インストール時はそれで十分でしたが、開発元でテーブル定義が変更された場合に
アップデートスクリプトが提供されていないため、SQLエラーが発生してしまいました。
そこでリポジトリの変更を追わずに差分だけをインストール済みのCroogoに適用する方法を考えました。
Read the rest of this entry »

No Comments

CakePHP 1.2 複数appでデータベース接続の設定を共有する

管理画面と公開側、それぞれ別app(サブドメインでアクセスを分けるなど)にした場合、
データベースの設定は、それぞれapp/config/database.phpにあるので、別々に設定しなければならない。
これを1つにまとめてしまう方法。

app/config/database.php

< ?php
config('../../database_common');
class DATABASE_CONFIG extends DATABASE_CONFIG_COMMON{
}

database_common.php (appやcakeと同階層に設置)

< ?php
class DATABASE_CONFIG_COMMON {

var $default = array(
'driver' => ‘mysql_log’,
‘persistent’ => false,
‘host’ => ‘localhost’,
‘login’ => ‘cake’,
‘password’ => ”,
‘database’ => ‘cake’,
‘encoding’ => ‘utf8′
);
}/

No Comments

ShellからQdmailを使用してメール送信を行う方法

shellクラスの外側でControllerとQdmailを読み込んでおく

App::import(“Core”,”Controller”);
App::import(“Component”,”Qdmail”);

function send(){
$this->Qdmail = new QdmailComponent();
$this->Qdmail->Controller = new Controller();
//このへんはお好みで
$this->Qdmail->to($this->_from); //送信元に送り返す
$this->Qdmail->from($this->_to); //fromは元宛先アドレス
$this->Qdmail->subject(__(‘auto reply’,true));

//テンプレートに渡したい値は$contentsに詰め込む
//mail_regist.ctpをrenderしてメール本文に使用する
$this->Qdmail->cakeText($contents,”mail_regist”);
$res = $this->Qdmail->send();

//以下略
}

No Comments