在SuiteCRM中包含PHP和JS文件

时间:2016-02-17 08:37:38

标签: javascript php php-include suitecrm

我使用的是SuiteCRM 7.4.3,需要在整个项目实例中包含两个文件(一个PHP文件和一个JS文件)。在这种情况下,最佳做法是什么?我应该在哪里复制源文件以及在哪里包含它们?

2 个答案:

答案 0 :(得分:3)

SuiteCRM使用自己的TimeDate类,从外观上看,您需要扩展以创建自己的(此JalaliDate)。老实说,我不知道如何在不影响核心SuiteCRM的情况下实现这一目标。

但是,您需要查看的文件是include / TimeDate.php(这是Suite用于所有时间格式化的类)。我们总是建议您尝试使所有内容升级安全,即一切都在自定义文件夹中 - 但是,从它的外观来看,它不会。

但是,当我包含其他应用程序的SDK时,我通常会将其放在custom / include /中,然后在需要时我将其链接到那里。

答案 1 :(得分: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);
    }
}

我有一个依赖于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));
    }
}