Hi,
I'm trying to design a field management plugin (mainly to hide fields directly from interface because users wanted it). The way I'm planning to achieve this is self-speaking by the screenshot (I based it on objectDetail.php and replaced every field by an input text containing $_fieldsAttributes matching). As you can see, it's basic and not very intuitive, so it will be restricted to the wise of administrator 🙂
In the screenshot, you can see projects fields. However I was not expecting to see so many hidden fields. Some are needed such as idProject from ProjectPlanningElement, but a lot of them are not even translated/in database/redundant (done/cancelled)/weird (invoice???). My guess is that these fields were deleted from an old version of ProjeQtOr, so could I help you make a list of these fields so you can remove them upstream? Otherwise, I keep my ears open to know their purpose.
Thank you,
Fields management is a good idea.
See the fields management in VtigerCRM, if you want inspiration.
I believe you can trust $_fieldsAttributes matching.
So, check $_colCaptionTransposition, it allows to change the name of the caption.
I would see your contribution soon.
Most hidden fields are "de-normalized" data, inserted for technical purpose.
For instance, in PlanningElement you'll see many references to item it is linked to : "refName", "reftType", "refId", "idle", ...
They are dupplicated to ease acces. For instance, PlanningElement is used to display are calculate planning, and de-normalization make it possible to have quick access to data without having to fetch several tables (refType / refId can refer to any table ...)
So it is not so easy to determine which field should be displayed.
In general, I would say : don't change most of existing fields attributes, unless you completely understand the attribute.
You screen should just ADD new attibutes, in very restrictive way : add "hidden", "readonly", "required".
Don't touch others. For instance the "noImport" attribute muste never be changed. This could lead to serious inconsistance of data.
Since it's based on objectDetail, it already handles the caption transposition. Sort order is handled by the order of public variables in the model so it would be too complex to add such feature like VtigerCRM given the time I have to do it and the complexity to integrate it in a future version of ProjeQtOr if my contribution is not added to the community version of ProjeQtOr. So I will make it work this way and maybe it can be improved later by babynus if they want to.
My question is only about the default hidden fields and their purpose.
Yes, I understand the ref things, but what about validatedStartFraction?
As for security, indeed you can insert whatever you want, but I will probably check if every values of the array by explode(',', $valueOfInput) are allowed values at least. A "add" new attribute would be too long to design given the time I have, that's why only administrator will have access to this feature and I will explain to them.
all the "xxxxStartFraction" fields represent when, in the day the activity starts. 0 means it starts at the beginning of the day, 0.5 means that it starts right in the middle of the day...
So it is only for planning purpose, and should not be displayed.
