Index: admin_templates/incs/form_blocks.tpl =================================================================== --- admin_templates/incs/form_blocks.tpl (revision 15446) +++ admin_templates/incs/form_blocks.tpl (working copy) @@ -513,7 +513,7 @@ - + Index: kernel/db/cat_dbitem.php =================================================================== --- kernel/db/cat_dbitem.php (revision 15454) +++ kernel/db/cat_dbitem.php (working copy) @@ -473,11 +473,13 @@ function ChangeStatus($new_status, $pending_editing = false) { - $status_field = array_shift( $this->Application->getUnitOption($this->Prefix,'StatusField') ); - if ($new_status != $this->GetDBField($status_field)) { + $status_field = $this->getStatusField(); + + if ( $new_status != $this->GetDBField($status_field) ) { // status was changed $this->sendEmailEvents($new_status, $pending_editing); } + $this->SetDBField($status_field, $new_status); return $this->Update(); Index: kernel/db/db_event_handler.php =================================================================== --- kernel/db/db_event_handler.php (revision 15474) +++ kernel/db/db_event_handler.php (working copy) @@ -2250,7 +2250,7 @@ $ids = $this->StoreSelectedIDs($event); if ( $ids ) { - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); + $status_field = $object->getStatusField(); $order_field = $this->Application->getUnitOption($event->Prefix, 'OrderField'); if ( !$order_field ) { @@ -2899,8 +2899,7 @@ $items_info = $this->Application->GetVar('u'); if ( $items_info ) { - $user_id = array_shift(array_keys($items_info)); - + list ($user_id, ) = each($items_info); $this->RemoveRequiredFields($object); $is_new = !$object->isLoaded(); Index: kernel/db/dbitem.php =================================================================== --- kernel/db/dbitem.php (revision 15474) +++ kernel/db/dbitem.php (working copy) @@ -1545,4 +1545,17 @@ $this->Loaded = $is_loaded; } + /** + * Returns item's first status field + * + * @return string + * @access public + */ + public function getStatusField() + { + $status_fields = $this->Application->getUnitOption($this->Prefix, 'StatusField'); + + return array_shift($status_fields); + } + } \ No newline at end of file Index: units/admin/admin_tag_processor.php =================================================================== --- units/admin/admin_tag_processor.php (revision 15539) +++ units/admin/admin_tag_processor.php (working copy) @@ -203,10 +203,10 @@ $params['name'] = $this->SelectParam($params, 'name,render_as,block'); $params['section_name'] = $section_name; - $template = $section_data['url']['t']; - unset($section_data['url']['t']); + $url_params = $section_data['url']; + unset($url_params['t']); - $section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']); + $section_data['section_url'] = $this->Application->HREF($section_data['url']['t'], '', $url_params); $ret = $this->Application->ParseBlock( array_merge($params, $section_data) ); return $ret; Index: units/categories/categories_event_handler.php =================================================================== --- units/categories/categories_event_handler.php (revision 15445) +++ units/categories/categories_event_handler.php (working copy) @@ -1527,8 +1527,8 @@ $ids = $this->StoreSelectedIDs($event); if ( $ids ) { + $status_field = $object->getStatusField(); $propagate_category_status = $this->Application->GetVar('propagate_category_status'); - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); foreach ($ids as $id) { $object->Load($id); Index: units/users/users_event_handler.php =================================================================== --- units/users/users_event_handler.php (revision 15437) +++ units/users/users_event_handler.php (working copy) @@ -186,7 +186,7 @@ } $user_dummy->Load($id); - $status_field = array_shift($this->Application->getUnitOption($event->Prefix, 'StatusField')); + $status_field = $user_dummy->getStatusField(); if ( $user_dummy->GetDBField($status_field) != STATUS_ACTIVE ) { // not active user is not allowed to update his record (he could not activate himself manually) @@ -1198,7 +1198,7 @@ /* @var $user_dummy kDBItem */ $user_dummy->Load($id); - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); + $status_field = $user_dummy->getStatusField(); if ( $user_dummy->GetDBField($status_field) != STATUS_ACTIVE ) { // not active user is not allowed to update his record (he could not activate himself manually) @@ -1669,15 +1669,15 @@ $this->clearSelectedIDs($event); $dst_field = $this->Application->RecallVar('dst_field'); - if ($dst_field != 'PrimaryGroupId') { - return ; + if ( $dst_field != 'PrimaryGroupId' ) { + return; } - $group_ids = $this->Application->GetVar('g'); - $primary_group_id = $group_ids ? array_shift( array_keys($group_ids) ) : false; + $group_ids = array_keys($this->Application->GetVar('g')); + $primary_group_id = $group_ids ? array_shift($group_ids) : false; - if (!$user_ids || !$primary_group_id) { - return ; + if ( !$user_ids || !$primary_group_id ) { + return; } $table_name = $this->Application->getUnitOption('ug', 'TableName');