Изменить создатель даты на персидскую дату ( jalali) или добавить сборщик даты jalali
Я хочу изменить даты, отображаемые везде в Processmaker, на другой формат (персидский календарь). У меня есть свой собственный класс для форматирования дат. Каков наилучший способ переопределить функцию по умолчанию, которая возвращает отформатированную дату? Я только что нашел метод CurDate в классе G. Изменено возвращаемое значение, но даты по-прежнему отображаются в григорианском формате. Есть ли другой способ форматирования дат?
Я предпочитаю решение ООП, чтобы переопределить функцию по умолчанию вместо взлома ядра, если это возможно.
Благодарю.
1 ответ
Для дневной формы в PM2.x
1.Add jalali.js
( Скачать) файл к пути \opt\processmaker\gulliver\js\widgets\pcal
2. Измените файл maborak в пути \processmaker\gulliver\js\maborak\core\maborak.js
изменил календарь настройки, как это
Calendar.setup({
inputField: id,
ifFormat: mask,
dateType: 'jalali',
button: id + "[btn]",
bottomBar: true,
showsTime: showTIme,
opacity: 1,
});
3. В пути\processmaker\gulliver\system\class.headPublisher.php
И в function printHeader ()
Вы должны добавить файл jalali.js в заголовок dynaform, как это $this->addScriptFile("/js/widgets/pcal/jalali.js");
class.publisher.php
Для другого места, как текущая дата, верхняя часть домашней страницы должна находиться в пути processmaker\workflow\engine\skinEngine\skinEngine.php
И в function _default()
замещать
$smarty->assign('udate', G::getformatedDate(date('Y-m-d'), 'M d, yyyy', SYS_LANG))
с
include_once("includes/inc.jdf.php");
$smarty->assign('udate', jdate('d F Y'));
Для динаформ в PM 3.x
1. Добавить файл выбора даты начальной загрузки ( Скачать) в путь processmaker\workflow\public_html\lib\pmdynaform\libs\datepicker\jalali
2. Добавьте адрес этого файла во внешнюю библиотеку
/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. добавить вход (id=txt_dateSabt
), чтобы dynaform и создать сборщик данных с этим кодом сценария Java $("#txt_dateSabt").find("input").datepicker();
می تونید رآیند رو کاملا اتوماتیک کنیدبرای
مثال در ورژن
3.3.6-9
می توانید به شکل ر عمل
نیدفایلر ررب
\apps\processmaker\htdocs\workflow\public_html\lib\pmdynaform\build\js\PMDynaform.js
عبارت زیر را پیدا کنید
ExternalLibraries.prototype.setExternalLibreries = function (i) {
(خط 1808)
ExternalLibraries.prototype.setExternalLibreries = function (i) {
var that = this, link;
**if(i==0)that.libs.push({url:'/lib/pmdynaform/libs/datepicker/jalali/mrb_init.js'});**
if (that.libs && i < that.libs.length) {
تا یک ایل اوا اسکریپت به صورت اتوماتیک لود بشه
محتوای این فایل باید به صورت ر باشد
console.log("mrb-init-jalali");
{
var imported = document.createElement('script');
imported.src = '/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.js';
document.head.appendChild(imported);
}
{
var link = document.createElement("link");
link.rel = "stylesheet";
link.href = '/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.css';
document.head.appendChild(link);
}
{
var imported = document.createElement('script');
imported.src = '/lib/pmdynaform/libs/datepicker/jalali/bootstrap-datepicker.fa.js';
document.head.appendChild(imported);
}
var init_function = function(){
try{
var I = $('[id*="_date_"]');
for(i=0;i<I.size();i++)
{
$(I[i]).find('input').datepicker();
$(I[i]).find('input').value='11';
}
I = $('[id^="date_"]');
for(i=0;i<I.size();i++)
{
$(I[i]).find('input').datepicker();
$(I[i]).find('input').value='11';
}
I = $('[id$="_date"]');
for(i=0;i<I.size();i++)
{
$(I[i]).find('input').datepicker();
$(I[i]).find('input').value='11';
}
}catch(error){}
}
setTimeout(init_function,100);
setTimeout(init_function,1000);
setTimeout(init_function,5000);
و آدرس اون به شکل زیر هست
/lib/pmdynaform/libs/datepicker/jalali/mrb_init.js
منا سایر فایل های مربوط به تقویم فارسی هم باید کنار این فایل رار بگیرند، یعنی داخل همین پوشه
حالا هر ایتم متنی که آی دی اون شامل عبارت های زیر باشه تقویم ارسی میشه
*_date , *_date_* , date_*