簡體   English   中英

在SuiteCRM中包含PHP和JS文件

[英]Include PHP and JS files in SuiteCRM

我使用的是SuiteCRM 7.4.3,需要在整個項目實例中包含兩個文件(一個PHP文件和一個JS文件)。 在這種情況下,最佳做法是什么? 我應該在哪里復制源文件以及在哪里包含它們?

SuiteCRM使用自己的TimeDate類,從外觀上你需要擴展來創建自己的(這個JalaliDate)。 老實說,我不知道如何在不影響核心SuiteCRM的情況下實現這一點。

但是,您需要查看的文件包括/ TimeDate.php(這是Suite用於所有時間格式化的類)。 我們總是建議您嘗試使所有內容升級安全,即一切都在自定義文件夾中 - 但是,從它的外觀來看它不會。

但是,當我將其他應用程序的SDK包含在custom / include /中時,我通常會這樣做,然后每當我需要它時,我都會從那里鏈接它。

如果您需要使用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);
    }
}

我有一個依賴於moment.js的要點,以便在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));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM