我正在修改Vtiger CRM环境并将其语言从英语更改为波斯语。现在我想用另一个日历替换Vtiger的日历(它的系统是Gregorian)。您可以在下面看到这两个日历的图像:
已在Vtiger中使用的公历:
我想在波斯语Vtiger中使用的日历:
我相信我应该在/var/www/html/vtigercrm/jscalendar
中使用我的日历组件,但我不知道如何用新的日历替换格里高利历。如果你帮助我,我非常感谢。
答案 0 :(得分:1)
您可以在Persian窗口小部件周围编写adapter,它实现与original Calendar对象相同的界面(objectmethods, not UI)。然后vtigercrm可以与适配器进行交互,就好像它是原始适配器一样,适配器会将所有调用转换为波斯小部件所需的任何内容,并转换所有响应。那calendar.js
也patches the Date prototype。从快速浏览一下,看起来不清楚MVC pattern;窗口小部件的作用类似于视图和控制器,<input>
- 元素的行为类似于模型。但是,既然用户看到它,它也是一个视图。这将我们带到
由于日期<input>
- 元素既是模型又是视图,日期的波斯语表示被POST了,您需要在服务器或上处理翻译,您需要更改它onload 从 Gregorian和onsubmit 到 Gregorian。
如果您执行后者,内部vtiger将只知道Gregorian,您将必须在显示日期的所有地方进行更改。
您可以尝试调整服务器模型vt_DateTime
。如果vtiger在任何地方都会使用它,那么你就会完成....但是我再次沿着兔子洞走下去了,看起来vtiger并没有这样设计......你可以清理设计并提交一个补丁,您可以找到以“格式”开头的所有功能和方法,或者您只需在bugtracker中发布功能请求。
无论如何,在检查代码之后,我确信这远远超出了StackOverflow的答案。