[Vtigercrm-developers] Fwd: [2.] Strange behavior of ModTracker in a Custom module vtiger 6.1 - there is a BUG

Vic Cekvenich vic.cvc at gmx.com
Sun Aug 17 22:00:47 GMT 2014



-------- Original Message --------
Subject: 	[Vtigercrm-developers] [2.] Strange behavior of ModTracker in 
a Custom module vtiger 6.1 - there is a BUG
Date: 	Wed, 16 Jul 2014 11:32:54 +0200
From: 	Holbok István <holbok at gmail.com>
Reply-To: 	holbok at gmail.com, vtigercrm-developers at lists.vtigercrm.com
To: 	vtigercrm-developers at lists.vtigercrm.com 
<vtigercrm-developers at lists.vtigercrm.com>



Dear Vtiger Team,

I have found a *bug *in the vtiger 6.1 SVN 14164.
The bug is related to the issue mentioned my letter of 14, July, here is 
below with screenshoots, and easy to handle.

The ModTracker should not be notify the change in the field of *Modified 
Time*, and the Created Time also should be displayed right in any Custom 
module.

The cause of the issue is a very simply and stupid thing.

Here is the sample code of the creation entity module, form the page:
http://community.vtiger.com/help/vtigercrm/developers/extensions/examples/entity-module.html
         $mfield3 = new Vtiger_Field();
         $mfield3->name = 'ModifiedTime';
         $mfield3->label= 'Modified Time';
         $mfield3->table = 'vtiger_crmentity';
         $mfield3->column = 'modifiedtime';
         $mfield3->uitype = 70;
         $mfield3->typeofdata = 'T~O';
         $mfield3->displaytype= 2;
         $block->addField($mfield3);

The field name 'ModifiedTime' uses *uppercase *and *lowercase *letters 
also. For the SQL is indifferent because the SQL is case *insensitive 
*relating to the field names or table names.
But the array keys are case sensitive things in PHP.
Ref.: http://php.net/manual/en/function.array-key-exists.php (look at 
the comments) or look at this post
http://stackoverflow.com/questions/1511230/php-array-are-array-indexes-case-sensitive

So, using the field name 'ModifiedTime' and 'modifiedtime' are two 
different things for the handling programs.

*.../modules/ModTracker/ModTrackerHandler.php will fail in the line 
33-34 due to the uppercase / lowercase confusion.*
                     foreach($delta as $fieldName => $values) {
                         if($fieldName != 'modifiedtime') {

Perhaps many of the Custom modules uses the field name 'ModifiedTime' 
(as it was suggested in the sample code) and the tabid=34, PBXManager 
also uses in the table vtiger_field uppercase / lowercase name.

*Solution:*
*(1) Using lowercase field names in all vtiger consequently. It is the 
most easiest way to repair code.**It is may suggestion.*


(2) Using lowercase conversion in every place where SQL field names are 
appearing as an array key. It is quite difficult to check all the code 
and change all appearances.

Affected standard modules:
PBXManager

An other question to this issue, with Type of Data:
  $mfield3->typeofdata = 'T~O';

Here is T~O in the sample code.
Looking the table vtiger_field inside, all other fields 'modifiedtime' 
have typeofdata= DT~O.

Is it a typo or intentionally was changed the typeofdata in the sample code?

The above mentioned issue with both side (field name and typeofdata) is 
valid for the other system field '*CreatedTime*' / '*createdtime*' also

Kindest regards:
Istvan


-------- Eredeti üzenet --------
Tárgy: 	Strange behavior of ModTracker in a Custom module vtiger 6.1
Dátum: 	Mon, 14 Jul 2014 15:45:14 +0200



Dear Vtiger Community,

There is a strange behavior of ModTracker in a Custom module vtiger 6.1 
module record summary view.
Here is the Modtracker data in Contacts module, with right data:


And here is the Modtracker data in my Custom module with totally strange 
data show:


Is there any idea what is the cause of it?

Kindest regards:
István



-- 
üdvözlettel:

*Holbok István*

+3670-342-0900
*e-mail:* holbok at gmail.com
*SkyPe:* holboki




-------------- next part --------------
_______________________________________________
http://www.vtiger.com/


More information about the vtigercrm-developers mailing list