カスタムフィールドでアップするファイル名をアップ元のファイル名にする
facebookのどこか(あそこだけど)でファイルをアップするのにファイル名を元のファイル(アップする前のファイル)の名前のままアップしたい的な話が出ていたので、Hookでやる方法をとりあえず書いてみる。
まずはconfig.server.phpのHOOK_ENABLEはONに。
define('HOOK_ENABLE', 1);
で、php/ACMS/User/Hook.php を開いて、とりあえずサンプルどおり
public function beforePostFire($thisModule) { $moduleName = get_class($thisModule); switch($moduleName) { case 'ACMS_POST_Entry_Insert': case 'ACMS_POST_Entry_Update': // ここに処理をかくぞ! break; } }
まではOK。
問題はその中の処理をどう書くかだけど、とりあえずどんな値があるのかvar_dumpしてみるといい。
var_dump($thisModule->Post);
で見てみたら、なんだか _aryField に hogehoge@filename とかがいるので(カスタムフィールド名 hogehoge の場合ね)
$thisModule->Post->_aryField['hogehoge@filename'][0] = 'pdf/'.$_FILES['hogehoge']['name'];
を入れることでできるんじゃねーの?・・・自己責任でやってみてね。
一応完成形
public function beforePostFire($thisModule) { $moduleName = get_class($thisModule); switch($moduleName) { case 'ACMS_POST_Entry_Insert': case 'ACMS_POST_Entry_Update': $thisModule->Post->_aryField['hogehoge@filename'][0] = 'pdf/'.$_FILES['hogehoge']['name']; break; } }
ね。