6

SuiteCRM 7.4.3を使用しており、プロジェクト インスタンス全体に 2 つのファイル (PHP ファイルと JS ファイル) を含める必要があります。この状況でのベストプラクティスは何ですか? ソース ファイルをどこにコピーし、どこにインクルードすればよいですか?

4

2 に答える 2

0

JavaScript ファイル SuiteCRM を使用する必要がある場合は、「スクリプト タグ」を吐き出すカスタム ビューを使用できます。

class CustomModuleViewSomething extends ViewEdit
{
    function display(){
        $this->ev->process();
        $scripts = array();
        $scripts[] = '<script src="javascript1.js"></script>';
        $scripts[] = '<script src="javascript2.js"></script>';
        $scripts[] = '<script src="javascript3.js"></script>';
        echo $this->ev->display($this->showTitle) . implode($scripts);
    }
}

JSで日付を処理するためにmoment.jsに依存する要点があります。これは、クライアント側の日付で日付を処理する必要がある場合に便利です。

/**
 * returns js Date() from a date that is in the users format
 * @depends momentjs library
 * @param datestr
 * @returns {*|Date}
 */
function toDate(datestr) {
    var $format = "", $splitformat = ["","",""], $dbformat = ["","",""];
    // Get user preferences date format
    $format = cal_date_format
    $format = $format.toUpperCase();
    $format = $format.replace('%D', 'DD')
    $format = $format.replace('%M', 'MM')
    $format = $format.replace('%Y', 'YYYY')

    // return js date
    return moment(datestr, $format).toDate()
}

日付を処理するより良い方法は、customController でアクションを作成することです。

class CustomModuleController extends SugarController {
    function action_save() {
        global $timedate;
        $field = "date_entered";
        $timedate->fromString($this->bean->$field);
        $this->bean->save(!empty($this->bean->notify_on_save));
    }
}
于 2016-03-25T15:11:24.867 に答える