change date process maker to persian date ( jalali

2019-02-19 15:48发布

问题:

I want to change dates shown everywhere in processmaker to another format(Persian calendar). I have my custom class to format dates. What is the best way to override the default function which returns the formatted date? I just found the CurDate method in the G class. Changed it's returned value but dates are still shown in gregorian format. Is there any other method for formatting dates?

I prefer an OOP solution to override the default function instead of hacking the core, if possible.

Thanks.

回答1:

http://processmakerplus.com/

For daynaform in PM2.x

1.Add jalali.js(Download) file to path \opt\processmaker\gulliver\js\widgets\pcal

2.Change the maborak file in path \processmaker\gulliver\js\maborak\core\maborak.js changed setup calendar like this

 Calendar.setup({
        inputField: id,
        ifFormat: mask,
        dateType: 'jalali',
        button: id + "[btn]",
        bottomBar: true,
        showsTime: showTIme,
        opacity: 1,
    });

maborak.js

3.In path\processmaker\gulliver\system\class.headPublisher.php and in function printHeader () you must add jalali.js file to header dynaform like this $this->addScriptFile("/js/widgets/pcal/jalali.js");class.publisher.php

For other place like current date top of the home page must in path processmaker\workflow\engine\skinEngine\skinEngine.php and in function _default() replace

$smarty->assign('udate', G::getformatedDate(date('Y-m-d'), 'M d, yyyy', SYS_LANG)) with

include_once("includes/inc.jdf.php");
$smarty->assign('udate', jdate('d F Y'));   

For dynaform in PM 3.x

1.Add bootstrap date picker file(Download) to path processmaker\workflow\public_html\lib\pmdynaform\libs\datepicker\jalali

2.Add address this file to external lib

/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.js,/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.css,/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.fa.js

3.Add input(id=txt_dateSabt) to dynaform and create data picker with this java script code $("#txt_dateSabt").find("input").datepicker();

Sample dynaform with jalali date picker