@GraemeMac
- You can’t change field ‘age_years’ because it isn’t data, it’s function.
- The function get_age_years call aumaticly for field ‘age_years’ when the form listview creat. If you add standard field birthday into editview form of Contacts module and select date for person, you will see result in listview.
- You can make some fields for one module wich use spesial function and this function can read data from external data source.
Example: custom/modules/Contacts/metadata/editviewdefs.php whith field ‘birthdate’:
<?php
$viewdefs ['Contacts'] =
array(
'EditView' =>
array(
'templateMeta' =>
array(
'form' =>
array(
'hidden' =>
array(
0 => '<input type="hidden" name="opportunity_id" value="{$smarty.request.opportunity_id}">',
1 => '<input type="hidden" name="case_id" value="{$smarty.request.case_id}">',
2 => '<input type="hidden" name="bug_id" value="{$smarty.request.bug_id}">',
3 => '<input type="hidden" name="email_id" value="{$smarty.request.email_id}">',
4 => '<input type="hidden" name="inbound_email_id" value="{$smarty.request.inbound_email_id}">',
),
),
'maxColumns' => '2',
'widths' =>
array(
0 =>
array(
'label' => '10',
'field' => '30',
),
1 =>
array(
'label' => '10',
'field' => '30',
),
),
'includes' => array (
0 =>
array (
'file' => 'include/javascript/tiny_mce/tiny_mce.js',
),
),
'useTabs' => false,
'tabDefs' =>
array(
'LBL_CONTACT_INFORMATION' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
'LBL_PANEL_CONNECTS' => array(
'newTab' => false,
'panelDefault' => 'expanded',
),
'LBL_PANEL_ADVANCED' =>
array(
'newTab' => false,
'panelDefault' => 'expanded',
),
),
),
'panels' =>
array(
'lbl_contact_information' =>
array(
0 =>
array(
0 =>
array(
'name' => 'first_name',
'customCode' => '{html_options name="salutation" id="salutation" options=$fields.salutation.options selected=$fields.salutation.value} <input name="first_name" id="first_name" size="25" maxlength="25" type="text" value="{$fields.first_name.value}">',
),
1 =>
array(
'name' => 'last_name',
),
),
1 =>
array(
0 =>
array(
'name' => 'phone_work',
'comment' => 'Work phone number of the contact',
'label' => 'LBL_OFFICE_PHONE',
),
1 =>
array(
'name' => 'phone_mobile',
'comment' => 'Mobile phone number of the contact',
'label' => 'LBL_MOBILE_PHONE',
),
),
2 =>
array(
0 =>
array(
'name' => 'title',
'comment' => 'The title of the contact',
'label' => 'LBL_TITLE',
),
1 => 'department',
),
3 =>
array(
0 =>
array(
'name' => 'account_name',
'displayParams' =>
array(
'key' => 'billing',
'copy' => 'primary',
'billingKey' => 'primary',
'additionalFields' =>
array(
'phone_office' => 'phone_work',
),
),
),
1 =>
array (
'name' => 'birthdate',
'label' => 'LBL_BIRTHDATE',
),
),
4 =>
array(
0 =>
array(
'name' => 'email1',
'studio' => 'false',
'label' => 'LBL_EMAIL_ADDRESS',
),
),
5 =>
array(
0 =>
array(
'name' => 'primary_address_street',
'hideLabel' => true,
'type' => 'address',
'displayParams' =>
array(
'key' => 'primary',
'rows' => 2,
'cols' => 30,
'maxlength' => 150,
),
),
1 =>
array(
'name' => 'alt_address_street',
'hideLabel' => true,
'type' => 'address',
'displayParams' =>
array(
'key' => 'alt',
'copy' => 'primary',
'rows' => 2,
'cols' => 30,
'maxlength' => 150,
),
),
),
6 =>
array(
0 =>
array(
'name' => 'description',
'label' => 'LBL_DESCRIPTION',
),
1 => '',
),
7 =>
array(
0 =>
array(
'name' => 'assigned_user_name',
'label' => 'LBL_ASSIGNED_TO_NAME',
),
),
),
'lbl_panel_connects' => array (
0 => array (
0 => array (
'name' => 'bf_connects',
'type' => 'collection',
'displayParams' => array (
'collection_field_list' => array(
array(
'name' => 'title',
'displayParams' => array (
'size'=>'20%',
),
),
array(
'name' => 'address_link',
'displayParams' => array (
'size'=>'25%',
),
),
array(
'name' => 'attribute',
'displayParams' => array (
'size'=>'5%',
),
),
array(
'name' => 'date_start',
'displayParams' => array (
'size'=>'10%',
),
),
array(
'name' => 'description',
'displayParams' => array (
'size'=>'30%',
),
),
),
),
),
),
),
'LBL_PANEL_ADVANCED' =>
array(
0 =>
array(
0 =>
array(
'name' => 'lead_source',
'comment' => 'How did the contact come about',
'label' => 'LBL_LEAD_SOURCE',
),
),
1 =>
array(
0 =>
array(
'name' => 'report_to_name',
'label' => 'LBL_REPORTS_TO',
),
1 => 'campaign_name',
),
),
),
),
);
P.S.
Change small bug in listview.
Old code:
'customCode' => '{$EMAIL1_LINK}{$EMAIL1}</a>',
New code:
'customCode' => '{$EMAIL1_LINK}',