I have a client that wants a date field to default to 60 days from today.
The current default list in Studio lists: yesterday, today, tomorrow, next week, next monday, next friday, two weeks, next month, first day of next month, three months, six months, next year
I found the TemplateDate class in modules/DynamicFields/templates/Fields/TemplateDate.php file which contains
function __construct() {
parent::__construct();
global $app_strings;
$this->dateStrings = array(
$app_strings['LBL_NONE']=>'',
$app_strings['LBL_YESTERDAY']=> '-1 day',
$app_strings['LBL_TODAY']=>'now',
$app_strings['LBL_TOMORROW']=>'+1 day',
$app_strings['LBL_NEXT_WEEK']=> '+1 week',
$app_strings['LBL_NEXT_MONDAY']=>'next monday',
$app_strings['LBL_NEXT_FRIDAY']=>'next friday',
$app_strings['LBL_TWO_WEEKS']=> '+2 weeks',
$app_strings['LBL_NEXT_MONTH']=> '+1 month',
$app_strings['LBL_FIRST_DAY_OF_NEXT_MONTH']=> 'first day of next month',
$app_strings['LBL_THREE_MONTHS']=> '+3 months', //kbrill Bug #17023
$app_strings['LBL_SIXMONTHS']=> '+6 months',
$app_strings['LBL_NEXT_YEAR']=> '+1 year',
);
}
If I add
'60 Days' => '+60 days',
to that list, it shows in Studio however this is not upgrade safe.
So, I created
custom/modules/DynamicFields/templates/Fields/CustomTemplateDate.php
class CustomTemplateDate extends TemplateDate
{
function __construct() {
parent::__construct();
$this->dateStrings["60 Days"] = '+60 days';
}
}
custom/modules/DynamicFields/templates/Fields/Forms/date.php
include /custom/modules/DynamicFields/templates/Fields/CustomTemplateDate.php
function get_body(&$ss, $vardef){
$td = new CustomTemplateDate();
$ss->assign('default_values', array_flip($td->dateStrings));
return $ss->fetch('modules/DynamicFields/templates/Fields/Forms/date.tpl');
}
and custom/include/SugarSmarty/plugins/modifier.default_date_value.php
include /custom/modules/DynamicFields/templates/Fields/CustomTemplateDate.php
function smarty_modifier_default_date_value($defaultValue) {
global $timedate;
$td = new CustomTemplateDate();
return $timedate->asUser(new SugarDateTime($td->dateStrings[$defaultValue]));
}
However, when I run a Quick Repair and Rebuild, neither the date.php nor the modifier.default_date_value.php files get replaced by their custom versions and Sugar keeps calling the stock files.
What did I do wrong or forget to do?