[Vtigercrm-developers] How to have an empty DateTime field in Detail View?

nilay khatri nilay.spartan at gmail.com
Mon Mar 26 09:37:00 GMT 2018


Hi Alan,

yes you have to take care of the time part as well.

We needed a similar datetime field in Helpdesk module so we did override
date, time and datetime in Helpdesk. See if that couldbe of any help:

HelpDesk/uitype/DateTime.php
class HelpDesk_Datetime_UIType extends Vtiger_Datetime_UIType {
public function getDisplayValue($value) {
if(empty($value))
return null;
if($this->hasTimeComponent($value)) {
return self::getDisplayDateTimeValue($value);
}else{
return $this->getDisplayDateValue($value);
}
}
public function hasTimeComponent($value) {
$component = explode(' ', $value);
if(!empty($component[1])) {
return true;
}
return false;
}
}

Date.php:

class HelpDesk_Date_UIType extends Vtiger_Date_UIType {
/**
* Function to get the display value in edit view
* @param $value
* @return converted value
*/
public function getEditViewDisplayValue($value) {
if (!empty($value)) {
return parent::getEditViewDisplayValue($value);
}
return $value;
}
} Time.php:

class HelpDesk_Time_UIType extends Vtiger_Time_UIType {
/**
* Function to get the display value in edit view
* @param $value
* @return converted value
*/
public function getEditViewDisplayValue($value) {
if(!empty($value)){
return parent::getEditViewDisplayValue($value);
}
return '';
}
/**
* Function to get the calendar event call duration value in hour format
* @param type $fieldName
* @param type $value
* @return <Vtiger_Time_UIType> - getTimeValue
*/
public function getDisplayTimeDifferenceValue($fieldName, $value) {
$userModel = Users_Privileges_Model::getCurrentUserModel();
$date = new DateTime($value);
$dateTimeField = new DateTimeField($date->format('Y-m-d H:i:s'));
$value = $dateTimeField->getDisplayTime();
return $value;
}
}


On Mon, Mar 26, 2018 at 2:47 PM, Alan Lord <alanslists at gmail.com> wrote:

> Bump
>
>
> On 12/03/18 11:47, Alan Lord wrote:
>
>> This is on vtiger 6.3
>>
>> I have added a new DateTime column to a custom module and want to display
>> the value in DetailView only, e.g. displaytype 2.
>>
>> If the row's value is NULL I want the field to show nothing. But
>> irrespective of what UIType I try (5, 6, 70) if the database row is empty,
>> the field in DetailView shows NOW(). I do not want this.
>>
>> I think it is down to the constructor of the DateTimeField class but If I
>> tweak this to make $value = NULL or '' I still get the Time part(?), and
>> I'm not sure if this will break anything else either?
>>
>>
>> TIA
>>
>>
>> Al
>>
>
>
>
> _______________________________________________
> http://www.vtiger.com/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20180326/75efc17d/attachment-0001.html>


More information about the vtigercrm-developers mailing list