Index: branches/5.2.x/core/units/custom_data/custom_data_event_handler.php =================================================================== diff -u -N -r14585 -r14628 --- branches/5.2.x/core/units/custom_data/custom_data_event_handler.php (.../custom_data_event_handler.php) (revision 14585) +++ branches/5.2.x/core/units/custom_data/custom_data_event_handler.php (.../custom_data_event_handler.php) (revision 14628) @@ -1,6 +1,6 @@ createCustomFields($event->MasterEvent->Prefix); } - function scanCustomFields($prefix) + /** + * Returns list of custom fields for a given $prefix + * + * @param $prefix + * + * @return Array|bool + * @access protected + */ + protected function scanCustomFields($prefix) { static $custom_fields = Array (); @@ -107,44 +115,52 @@ * Fills cloned cdata config with data from it's parent * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterConfigRead(&$event) + protected function OnAfterConfigRead(&$event) { $main_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); - if (!$main_prefix) { - return false; + if ( !$main_prefix ) { + return ; } $custom_fields = $this->scanCustomFields($main_prefix); - if (!$custom_fields) { - return false; + if ( !$custom_fields ) { + return ; } // 2. create fields (for customdata item) - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields', Array()); - $field_options = Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'db_type' => 'text', 'default' => ''); + $fields = $this->Application->getUnitOption($event->Prefix, 'Fields', Array ()); + $field_options = Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'db_type' => 'text', 'default' => ''); + foreach ($custom_fields as $custom_id => $custom_params) { - if (isset($fields['cust_'.$custom_id])) continue; - $fields['cust_'.$custom_id] = $field_options; - $fields['cust_'.$custom_id]['force_primary'] = !$custom_params['MultiLingual']; + if ( isset($fields['cust_' . $custom_id]) ) { + continue; + } + $fields['cust_' . $custom_id] = $field_options; + $fields['cust_' . $custom_id]['force_primary'] = !$custom_params['MultiLingual']; } + $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); } /** * Creates "cust_" virtual fields for main item * * @param string $prefix + * @return void + * @access protected */ - function createCustomFields($prefix) + protected function createCustomFields($prefix) { $custom_fields = $this->scanCustomFields($prefix); - if (!$custom_fields) { - return false; + if ( !$custom_fields ) { + return; } - $calculated_fields = Array(); - $virtual_fields = $this->Application->getUnitOption($prefix, 'VirtualFields', Array()); + $calculated_fields = Array (); + $virtual_fields = $this->Application->getUnitOption($prefix, 'VirtualFields', Array ()); $cf_helper =& $this->Application->recallObject('InpCustomFieldsHelper'); /* @var $cf_helper InpCustomFieldsHelper */ @@ -153,16 +169,16 @@ foreach ($custom_fields as $custom_id => $custom_params) { $custom_name = $custom_params['FieldName']; - $field_options = Array('type' => 'string', 'default' => $custom_params['DefaultValue']); + $field_options = Array ('type' => 'string', 'default' => $custom_params['DefaultValue']); // raises warnings during 4.3.9 -> 5.0.0 upgrade, no fatal sqls though if ( $custom_params['IsRequired'] ) { $field_options['required'] = 1; } - $calculated_fields['cust_' . $custom_name] = 'cust.l' . $this->Application->GetDefaultLanguageId() .'_cust_' . $custom_id; + $calculated_fields['cust_' . $custom_name] = 'cust.l' . $this->Application->GetDefaultLanguageId() . '_cust_' . $custom_id; - switch ($custom_params['ElementType']) { + switch ( $custom_params['ElementType'] ) { case 'date': unset($field_options['options']); $field_options['formatter'] = 'kDateFormatter'; @@ -178,7 +194,7 @@ case 'select': case 'multiselect': case 'radio': - if ($custom_params['ValueList']) { + if ( $custom_params['ValueList'] ) { // $is_install check prevents 335 bad phrase sql errors on upgrade to 5.1.0 $field_options['options'] = $is_install ? Array () : $cf_helper->GetValuesHash($custom_params['ValueList']); $field_options['formatter'] = 'kOptionsFormatter'; @@ -187,7 +203,7 @@ break; default: - if ($custom_params['MultiLingual']) { + if ( $custom_params['MultiLingual'] ) { $field_options['formatter'] = 'kMultiLanguage'; $calculated_fields['cust_' . $custom_name] = 'cust.l%2$s_cust_' . $custom_id; } @@ -201,9 +217,9 @@ $custom_fields[$custom_id] = $custom_name; } - $config_calculated_fields = $this->Application->getUnitOption($prefix, 'CalculatedFields', Array()); + $config_calculated_fields = $this->Application->getUnitOption($prefix, 'CalculatedFields', Array ()); foreach ($config_calculated_fields as $special => $special_fields) { - if ($special == '-virtual') { + if ( $special == '-virtual' ) { continue; }