Extrafields
Extrafields
Extrafields allow to add others datas to Dolibarr standard database schema. Introduced in version 3.2, extrafields are now implemented in businesses object :
- Thirdparties & contacts & users
- Events
- Customer Invoices
- Proposal
- Products & services
- Member & member type
- Orders
- Projects & project tasks (since 3.4)
Technical implementation
Each object have his table in database to store values of extrafields.
Datatables extrafield tables models is : llx_BaseTableNAme_extrafields (
rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp, fk_object integer NOT NULL, import_key varchar(14)
)
Display page have to include : require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
Load extrafield array in object : $extrafields = new ExtraFields($db); $extralabels=$extrafields->fetch_name_optionals_label(ObjectClassName);
Load extrafield into object : $object->fetch($rowid); $object->fetch_optionals($rowid,$extralabels);
[[Before call $object->create or $object->delete :]] $ret = $extrafields->setOptionalsFromPost($extralabels,$object);
Inside edit page to display extrafields : // Other attributes $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) {
print $object->showOptionals($extrafields,'edit');
}
Inside view page to display extrafields : // Other attributes $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$act,$action); // Note that $action and $object may have been modified by hook if (empty($reshook) && ! empty($extrafields->attribute_label)) {
print $object->showOptionals($extrafields);
}