我正在修改Vtiger CRM环境,并将其语言从英语更改为波斯语。现在,我想用另一个日历替换Vtiger的日历(其系统为公历)。您可以在下面看到这两个压延机的图像:

已在Vtiger中使用的公历:


我想在波斯Vtiger中使用的太阳历:



我相信我应该在/var/www/html/vtigercrm/jscalendar中使用我的日历组件,但是我不知道如何用新的日历组件来代替。我非常感谢您的帮助。

最佳答案

调整日期选择器小部件

您可以在波斯小部件周围编写adapter,该小部件实现与original Calendar对象相同的界面(对象方法,而不是UI)。然后,vtigercrm可以像原始适配器一样与适配器进行交互,并且适配器会将所有调用转换为波斯小部件期望的内容并转换所有响应。那calendar.js也是patches the Date prototype。乍一看,似乎没有明确的MVC pattern;小部件的作用类似于视图和控制器,而<input>元素的作用类似于模型。但是由于用户看到了它,所以它也是一个视图。这带给我们

内部代表

由于日期<input>元素既是模型又是视图,因此日期的波斯表示形式都会过帐,您需要在服务器上处理翻译,或者将其在加载时从Gregorian和onsubmit更改为Gregorian。

如果您选择后者,则内部vtiger将只知道公历,并且您将必须在显示日期的所有地方进行更改。

您可以尝试调整服务器模型vt_DateTime的外观。如果vtiger可以在任何地方使用它,那您就可以完成...。但是我又往下钻了几口,看来vtiger并不是那样设计的...您可以清理设计并提交补丁程序中,您可以找到所有以'format'开头的函数和方法,也可以在bugtracker中发布功能请求。

无论如何,在检查了代码后,我确定这肯定超出了StackOverflow的答案。

09-30 17:59