Index: branches/5.2.x/core/kernel/utility/formatters/multilang_formatter.php =================================================================== diff -u -N -r14588 -r14596 --- branches/5.2.x/core/kernel/utility/formatters/multilang_formatter.php (.../multilang_formatter.php) (revision 14588) +++ branches/5.2.x/core/kernel/utility/formatters/multilang_formatter.php (.../multilang_formatter.php) (revision 14596) @@ -1,6 +1,6 @@ LangFieldName($field_name); - //substitude title field + //substitute title field $title_field = $this->Application->getUnitOption($object->Prefix, 'TitleField'); if ($title_field == $field_name) { $this->Application->setUnitOption($object->Prefix, 'TitleField', $lang_field_name); @@ -85,7 +85,7 @@ $fields = $this->Application->getUnitOption($object->Prefix, 'Fields', Array ()); $virtual_fields = $this->Application->getUnitOption($object->Prefix, 'VirtualFields', Array ()); - // substitude real field + // substitute real field if (array_key_exists($field_name, $fields)) { $tmp_field_options = $fields[$field_name]; $tmp_field_options['master_field'] = $field_name; @@ -116,9 +116,10 @@ $object->SetFieldOptions($field_name, $object_fields[$field_name], true); } elseif (array_key_exists($field_name, $virtual_fields)) { - // substitude virtual field - $calculated_fields = $this->Application->getUnitOption($object->Prefix, 'CalculatedFields'); + // substitute virtual field + $calculated_fields = $this->Application->getUnitOption($object->Prefix, 'CalculatedFields', Array ()); $calculated_field_special = array_key_exists($object->Special, $calculated_fields) ? $object->Special : (array_key_exists('', $calculated_fields) ? '' : false); + /* @var $calculated_fields Array */ $tmp_field_options = $virtual_fields[$field_name]; $tmp_field_options['master_field'] = $field_name; @@ -138,7 +139,7 @@ $virtual_fields[$translated_field] = $tmp_field_options; $object->SetFieldOptions($translated_field, $tmp_field_options, true); - // substitude calculated fields associated with given virtual field + // substitute calculated fields associated with given virtual field foreach ($calculated_fields as $special => $special_fields) { if (!array_key_exists($field_name, $special_fields)) { continue; @@ -178,8 +179,10 @@ $object->SetFieldOptions($field_name, $virtual_field_options, true); } - //substitude grid fields - $grids = $this->Application->getUnitOption($object->Prefix, 'Grids', Array()); + // substitute grid fields + $grids = $this->Application->getUnitOption($object->Prefix, 'Grids', Array ()); + /* @var $grids Array */ + foreach ($grids as $name => $grid) { if ( getArrayValue($grid, 'Fields', $field_name) ) { // used by column picker to track column position @@ -207,8 +210,10 @@ } $this->Application->setUnitOption($object->Prefix, 'Grids', $grids); - //substitude default sortings - $sortings = $this->Application->getUnitOption($object->Prefix, 'ListSortings', Array()); + // substitute default sortings + $sortings = $this->Application->getUnitOption($object->Prefix, 'ListSortings', Array ()); + /* @var $sortings Array */ + foreach ($sortings as $special => $the_sortings) { if (isset($the_sortings['ForcedSorting'])) { kUtil::array_rename_key($sortings[$special]['ForcedSorting'], $field_name, $lang_field_name); @@ -219,7 +224,7 @@ } $this->Application->setUnitOption($object->Prefix, 'ListSortings', $sortings); - //TODO: substitude possible language-fields sortings after changing language + // TODO: substitute possible language-fields sortings after changing language $fields[$field_name]['options_processed'] = $field_options['options_processed'] = true; $this->Application->setUnitOption($object->Prefix, 'Fields', $fields); $this->Application->setUnitOption($object->Prefix, 'VirtualFields', $virtual_fields); @@ -250,8 +255,9 @@ $lang = $this->Application->GetVar('m_lang'); $def_lang = $this->Application->GetDefaultLanguageId(); - if (!$this->Application->GetVar('allow_translation') && ($lang != $def_lang) && getArrayValue($options, 'required')) { + if ( !$this->Application->GetVar('allow_translation') && ($lang != $def_lang) && $object->isRequired($field) ) { $def_lang_field = 'l' . $def_lang . '_' . $master_field; + if ( !$object->ValidateRequired($def_lang_field, $options) ) { $object->SetError($master_field, 'primary_lang_required'); @@ -263,11 +269,11 @@ } /** - * Formats field value + * Formats value of a given field * * @param string $value * @param string $field_name - * @param kDBItem $object + * @param kDBItem|kDBList $object * @param string $format * @return string */ @@ -302,9 +308,10 @@ * @param mixed $value * @param string $field_name * @param kDBItem $object - * @return string + * @return mixed + * @access public */ - function Parse($value, $field_name, &$object) + public function Parse($value, $field_name, &$object) { if ($value == '') return NULL;