我正在使用SuiteCRM 7.4.3,需要在整个项目实例中包含两个文件(一个 PHP 文件和一个 JS 文件)。在这种情况下,最佳做法是什么?我应该在哪里复制源文件以及在哪里包含它们?
问问题
1227 次
2 回答
3
SuiteCRM 使用它自己的 TimeDate 类,从外观上看,您需要扩展它来创建自己的(这个 JalaliDate)。老实说,我不知道如何在不大规模影响核心 SuiteCRM 的情况下实现这一点。
但是,您需要查看的文件是 include/TimeDate.php(这是 Suite 用于其所有时间格式的类)。我们始终建议您尝试确保所有内容升级安全,即所有内容都在自定义文件夹中 - 但是,从外观上看并非如此。
但是,当我包含其他应用程序的 SDK 时,我通常会做什么,我将它放在 custom/include/ 中,然后每当我需要它时,我从那里链接它。
于 2016-02-17T12:57:51.997 回答
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));
}
}
于 2016-03-25T15:11:24.867 回答