Index: branches/5.2.x/units/articles/articles_event_handler.php =================================================================== diff -u -N -r14627 -r14672 --- branches/5.2.x/units/articles/articles_event_handler.php (.../articles_event_handler.php) (revision 14627) +++ branches/5.2.x/units/articles/articles_event_handler.php (.../articles_event_handler.php) (revision 14672) @@ -1,6 +1,6 @@ Application->getUnitOption($this->Prefix, 'Fields'); - $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); /* @var $ml_formatter kMultiLanguage */ - $title_formatter = array_key_exists('formatter', $fields[$title_field]) ? $fields[$title_field]['formatter'] : false; + $title_field = 'Title'; + $title_formatter = $object->GetFieldOption($title_field, 'formatter'); - if ($title_formatter == 'kMultiLanguage') { + if ( $title_formatter == 'kMultiLanguage' ) { $title_field = $ml_formatter->LangFieldName($title_field); } - $body_formatter = array_key_exists('formatter', $fields[$body_field]) ? $fields[$body_field]['formatter'] : false; + $body_field = 'Body'; + $body_formatter = $object->GetFieldOption($body_field, 'formatter'); - if ($body_formatter == 'kMultiLanguage') { + if ( $body_formatter == 'kMultiLanguage' ) { $body_field = $ml_formatter->LangFieldName($body_field); } @@ -265,7 +263,7 @@ $object =& $this->Application->recallObject($event->Prefix.'.-item', null, Array('skip_autoload' => true)); /* @var $object kDBItem */ - list ($title_field, $body_field) = $this->_getMLFields(); + list ($title_field, $body_field) = $this->_getMLFields($object); do { // IMAGE is information about channel and is not useful here @@ -353,7 +351,7 @@ $object =& $this->Application->recallObject($event->Prefix.'.-item', null, Array('skip_autoload' => true)); /* @var $object kDBItem */ - list ($title_field, $body_field) = $this->_getMLFields(); + list ($title_field, $body_field) = $this->_getMLFields($object); do { if ($current_node->Name != 'ENTRY') continue; @@ -404,6 +402,7 @@ function getCustomColumns($prefix) { $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); + /* @var $ml_formatter kMultiLanguage */ $custom_fields = array_flip($this->Application->getUnitOption($prefix, 'CustomFields')); foreach ($custom_fields as $custom_name => $custom_id) { @@ -451,27 +450,38 @@ function createExcerpt(&$event) { $object =& $event->getObject(); + /* @var $object kDBItem */ - if (!$object->GetField('Excerpt') || $this->Application->GetVar('generate_excerpt')) { - $excerpt = strip_tags( $object->GetField('Body') ); + if ( !$object->GetField('Excerpt') || $this->Application->GetVar('generate_excerpt') ) { + $excerpt = strip_tags($object->GetField('Body')); $length = mb_strlen($excerpt); - if ($length > 100) { + if ( $length > 100 ) { $excerpt = mb_substr(strip_tags($excerpt), 0, 100); - if (mb_substr($excerpt,-1) != ' ') { + + if ( mb_substr($excerpt, -1) != ' ' ) { $pos = mb_strrpos($excerpt, ' '); - if ($pos) { + + if ( $pos ) { $excerpt = mb_substr($excerpt, 0, $pos); } } + $excerpt .= '...'; } - $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); - /* @var $ml_formatter kMultiLanguage */ + $excerpt_field = 'Excerpt'; + $excerpt_formatter = $object->GetFieldOption('Excerpt', 'formatter'); - $object->SetDBField($ml_formatter->LangFieldName('Excerpt'), $excerpt); + if ( $excerpt_formatter == 'kMultiLanguage' ) { + $ml_formatter =& $this->Application->recallObject('kMultiLanguage'); + /* @var $ml_formatter kMultiLanguage */ + + $excerpt_field = $ml_formatter->LangFieldName($excerpt_field); + } + + $object->SetDBField($excerpt_field, $excerpt); } }