1

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

已在 Vtiger 中使用的公历: 公历

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

阳历

我相信我应该使用我的日历组件,/var/www/html/vtigercrm/jscalendar但我不知道如何用新日历替换公历。如果您能帮助我,我将不胜感激。

4

1 回答 1

1

调整日期选择器小部件

您可以围绕您的波斯小部件编写一个适配器,该适配器实现与原始日历对象相同的接口(对象方法,而不是UI)。然后 vtigercrm 可以与适配器交互,就好像它是原始的一样,适配器会将所有调用转换为波斯小部件期望的任何内容并转换所有响应。这也修补了 Date 原型。乍一看,似乎没有明确的MVC 模式;小部件的作用类似于视图和控制器,而元素的作用类似于模型。但既然用户看到它,它也是一个视图。这让我们calendar.js<input>

内部表示

由于 date<input>元素既是模型又是视图,因此日期的波斯表示形式会被 POST,您需要在服务器上处理翻译,或者将其 onload公历和 onsubmit更改公历。

如果你做后者,内部 vtiger 将只知道公历,你必须在所有显示日期的地方进行更改。

您可以尝试调整看起来像服务器模型的东西vt_DateTime。如果 vtiger 会在任何地方使用它,你就完蛋了......但是我又去了兔子洞,看起来 vtiger 不是这样设计的......你可以清理设计并提交一个补丁,你可以找到所有以 'format' 开头的函数和方法,或者你可以在bugtracker中发布一个功能请求。

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

于 2014-04-09T16:43:36.220 回答