Index: branches/RC/core/units/languages/languages_event_handler.php =================================================================== diff -u -r8929 -r9363 --- branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 8929) +++ branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 9363) @@ -55,6 +55,8 @@ if ($ids) { $id = array_shift($ids); $object =& $event->getObject( Array('skip_autoload' => true) ); + /* @var $object LanguagesItem */ + $object->Load($id); $object->setPrimary(); } @@ -68,16 +70,21 @@ function OnUpdatePrimary(&$event) { $object =& $event->getObject( Array('skip_autoload' => true) ); + /* @var $object LanguagesItem */ + $object->SwitchToLive(); // set primary for each languages, that have this checkbox checked $ids = explode(',', $event->MasterEvent->getEventParam('ids')); foreach ($ids as $id) { $object->Load($id); if ($object->GetDBField('PrimaryLang')) { - $object->setPrimary(); + $object->setPrimary(true, false); } + if ($object->GetDBField('AdminInterfaceLang')) { + $object->setPrimary(true, true); + } } // if no primary language left, then set primary last language (not to load again) from edited list @@ -87,8 +94,17 @@ $primary_language = $this->Conn->GetOne($sql); if (!$primary_language) { - $object->setPrimary(false); + $object->setPrimary(false, false); // set primary language } + + $sql = 'SELECT '.$object->IDField.' + FROM '.$object->TableName.' + WHERE AdminInterfaceLang = 1'; + $primary_language = $this->Conn->GetOne($sql); + + if (!$primary_language) { + $object->setPrimary(false, true); // set admin interface language + } } @@ -453,7 +469,7 @@ $object =& $event->getObject(array('skip_autload' => true)); $object->Load($del_id); - if ($object->GetDBField('PrimaryLang') || $del_id == $this->Application->GetVar('m_lang')) { + if ($object->GetDBField('PrimaryLang') || $object->GetDBField('AdminInterfaceLang') || $del_id == $this->Application->GetVar('m_lang')) { $event->status = erFAIL; } }