気づいたら、ここだった

考えているようで、考えなしに生きてるので、気づいたらこんなことになてってた私のブログ

カスタムフィールドでアップするファイル名をアップ元のファイル名にする

a-blog cms ネタです。

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;
        }
    }

ね。