Index: branches/unlabeled/unlabeled-1.20.2/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -r6842 -r6873 --- branches/unlabeled/unlabeled-1.20.2/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 6842) +++ branches/unlabeled/unlabeled-1.20.2/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 6873) @@ -9,10 +9,10 @@ */ var $Permissions = Array(); - function LoadPermissions($group_id, $cat_id, $type = 1) + function LoadPermissions($group_id, $cat_id, $type = 1, $prefix = '') { $perm_table = $this->Application->getUnitOption('perm', 'TableName'); - $perm_table = $this->Application->GetTempName($perm_table); + $perm_table = $this->Application->GetTempName($perm_table, 'prefix:'.$prefix); $sql = 'SELECT * FROM '.$perm_table.' WHERE (GroupId = '.$group_id.') AND (CatId = '.$cat_id.') AND (Type = '.$type.')'; Index: branches/unlabeled/unlabeled-1.8.2/kernel/units/permissions/permissions_event_handler.php =================================================================== diff -u -r6796 -r6873 --- branches/unlabeled/unlabeled-1.8.2/kernel/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 6796) +++ branches/unlabeled/unlabeled-1.8.2/kernel/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 6873) @@ -30,7 +30,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, $category_id, 0); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, $category_id, 0, 'c'); // format: ['inherited'] || ['value'] @@ -96,7 +98,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $group_id = $this->Application->GetVar('g_id'); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, 0, 1); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, 0, 1, 'g'); $delete_ids = Array(); $create_sql = Array(); Index: branches/unlabeled/unlabeled-1.8.2/core/units/permissions/permissions_event_handler.php =================================================================== diff -u -r6796 -r6873 --- branches/unlabeled/unlabeled-1.8.2/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 6796) +++ branches/unlabeled/unlabeled-1.8.2/core/units/permissions/permissions_event_handler.php (.../permissions_event_handler.php) (revision 6873) @@ -30,7 +30,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, $category_id, 0); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, $category_id, 0, 'c'); // format: ['inherited'] || ['value'] @@ -96,7 +98,9 @@ $object =& $event->getObject( Array('skip_autoload' => true) ); $group_id = $this->Application->GetVar('g_id'); $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); - $permissions_helper->LoadPermissions($group_id, 0, 1); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($group_id, 0, 1, 'g'); $delete_ids = Array(); $create_sql = Array(); Index: branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php =================================================================== diff -u -r6865 -r6873 --- branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php (.../application.php) (revision 6865) +++ branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php (.../application.php) (revision 6873) @@ -2108,7 +2108,7 @@ } return $current_prefix; } - + function &EmailEventAdmin($email_event_name, $to_user_id = -1, $send_params = false) { return $this->EmailEvent($email_event_name, 1, $to_user_id, $send_params); @@ -2200,26 +2200,47 @@ trigger_error('depricated method '.$class.'->'.$method.'(...)', E_USER_ERROR); } - /** + * Returns Window ID of passed prefix main prefix (in edit mode) + * + * @param string $prefix + * @return mixed + */ + function GetTopmostWid($prefix) + { + $top_prefix = $this->GetTopmostPrefix($prefix); + $mode = $this->GetVar($top_prefix.'_mode'); + return $mode != '' ? substr($mode, 1) : ''; + } + + /** * Get temp table name * * @param string $table + * @param mixed $wid * @return string */ - function GetTempName($table) + function GetTempName($table, $wid = '') { - return TABLE_PREFIX.'ses_'.$this->GetSID().'_edit_'.$table; + if (preg_match('/prefix:(.*)/', $wid, $regs)) { + $wid = $this->GetTopmostWid($regs[1]); + } + + return TABLE_PREFIX.'ses_'.$this->GetSID().($wid ? '_'.$wid : '').'_edit_'.$table; } - function GetTempTablePrefix() + function GetTempTablePrefix($wid = '') { - return TABLE_PREFIX.'ses_'.$this->GetSID().'_edit_'; + if (preg_match('/prefix:(.*)/', $wid, $regs)) { + $wid = $this->GetTopmostWid($regs[1]); + } + + return TABLE_PREFIX.'ses_'.$this->GetSID().($wid ? '_'.$wid : '').'_edit_'; } function IsTempTable($table) { - return strpos($table, TABLE_PREFIX.'ses_'.$this->GetSID().'_edit_') !== false; + return preg_match('/'.TABLE_PREFIX.'ses_'.$this->GetSID().'(_[\d]+){0,1}_edit_(.*)/',$table); } /** @@ -2230,9 +2251,10 @@ */ function GetLiveName($temp_table) { - if( preg_match('/'.TABLE_PREFIX.'ses_'.$this->GetSID().'_edit_(.*)/',$temp_table,$rets) ) + if( preg_match('/'.TABLE_PREFIX.'ses_'.$this->GetSID().'(_[\d]+){0,1}_edit_(.*)/',$temp_table, $rets) ) { - return $rets[1]; + // cut wid from table end if any + return $rets[2]; } else { Index: branches/unlabeled/unlabeled-1.31.4/core/kernel/globals.php =================================================================== diff -u -r6754 -r6873 --- branches/unlabeled/unlabeled-1.31.4/core/kernel/globals.php (.../globals.php) (revision 6754) +++ branches/unlabeled/unlabeled-1.31.4/core/kernel/globals.php (.../globals.php) (revision 6873) @@ -486,24 +486,4 @@ } return $string; } - - /** - * Return live table name based on temp table name - * - * @param string $temp_table - * @return string - */ - function GetLiveName($temp_table) - { - $application =& kApplication::Instance(); - if( preg_match('/'.TABLE_PREFIX.'ses_'.$application->GetSID().'_edit_(.*)/',$temp_table,$rets) ) - { - return $rets[1]; - } - else - { - return $temp_table; - } - } - ?> \ No newline at end of file Index: branches/unlabeled/unlabeled-1.14.2/kernel/include/customfield.php =================================================================== diff -u -r6102 -r6873 --- branches/unlabeled/unlabeled-1.14.2/kernel/include/customfield.php (.../customfield.php) (revision 6102) +++ branches/unlabeled/unlabeled-1.14.2/kernel/include/customfield.php (.../customfield.php) (revision 6873) @@ -107,7 +107,7 @@ $table = $this->Application->getUnitOption($main_prefix.'-cdata', 'TableName'); if ($temp_table) { - $table = $this->Application->GetTempName($table); + $table = $this->Application->GetTempName($table, 'prefix:'.$main_prefix); } $sql = 'SELECT * Index: branches/unlabeled/unlabeled-1.26.16/core/kernel/utility/temp_handler.php =================================================================== diff -u -r6119 -r6873 --- branches/unlabeled/unlabeled-1.26.16/core/kernel/utility/temp_handler.php (.../temp_handler.php) (revision 6119) +++ branches/unlabeled/unlabeled-1.26.16/core/kernel/utility/temp_handler.php (.../temp_handler.php) (revision 6873) @@ -43,6 +43,14 @@ */ var $Conn; + + /** + * Window ID of current window + * + * @var mixed + */ + var $WindowID = ''; + function kTempTablesHandler() { parent::kBase(); @@ -70,12 +78,12 @@ */ function GetTempName($table) { - return $this->Application->GetTempName($table); + return $this->Application->GetTempName($table, $this->WindowID); } function GetTempTablePrefix() { - return $this->Application->GetTempTablePrefix(); + return $this->Application->GetTempTablePrefix($this->WindowID); } /** @@ -116,6 +124,8 @@ function BuildTables($prefix, $ids) { + $this->WindowID = $this->Application->GetVar('m_wid'); + $this->TableIdCounter = 0; $tables = Array( 'TableName' => $this->Application->getUnitOption($prefix, 'TableName'), Index: branches/unlabeled/unlabeled-1.31.2/core/units/categories/categories_tag_processor.php =================================================================== diff -u -r6587 -r6873 --- branches/unlabeled/unlabeled-1.31.2/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 6587) +++ branches/unlabeled/unlabeled-1.31.2/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 6873) @@ -383,7 +383,7 @@ $top_prefix = $this->Application->GetTopmostPrefix($this->Prefix); } - $temp_tables = $this->Application->GetVar($top_prefix.'_mode') == 't'; + $temp_tables = substr($this->Application->GetVar($top_prefix.'_mode'), 0, 1) == 't'; $modified = $this->Application->RecallVar($top_prefix.'_modified'); if (!$temp_tables) { Index: branches/unlabeled/unlabeled-1.9.2/kernel/units/permissions/permissions_tag_processor.php =================================================================== diff -u -r6628 -r6873 --- branches/unlabeled/unlabeled-1.9.2/kernel/units/permissions/permissions_tag_processor.php (.../permissions_tag_processor.php) (revision 6628) +++ branches/unlabeled/unlabeled-1.9.2/kernel/units/permissions/permissions_tag_processor.php (.../permissions_tag_processor.php) (revision 6873) @@ -49,7 +49,9 @@ { $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); $prefix_parts = explode('-', $this->Prefix, 2); - $permissions_helper->LoadPermissions($this->Application->GetVar('g_id'), 0, 1); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($this->Application->GetVar('g_id'), 0, 1, 'g'); } function LevelIndicator($params) @@ -66,7 +68,7 @@ $module = $this->Application->findModule('Var', $prefix, 'Name'); $perm_live_table = $this->Application->getUnitOption('c-perm', 'TableName'); - $perm_temp_table = $this->Application->GetTempName($perm_live_table); + $perm_temp_table = $this->Application->GetTempName($perm_live_table, 'prefix:'.$this->Prefix); if ($category->GetID() == 0) { $categories = Array(0); Index: branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php =================================================================== diff -u -r6842 -r6873 --- branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 6842) +++ branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 6873) @@ -107,7 +107,7 @@ { $table = TABLE_PREFIX.'CategoryItems'; if ($this->Application->IsTempTable($this->TableName)) { - $table = $this->Application->GetTempName($table); + $table = $this->Application->GetTempName($table, 'prefix:'.$this->Prefix); } return $table; @@ -249,7 +249,7 @@ function stripDisallowed($filename) { $filenames_helper =& $this->Application->recallObject('FilenamesHelper'); - $table = $this->mode == 't' ? $this->Application->GetTempName(TABLE_PREFIX.'CategoryItems') : TABLE_PREFIX.'CategoryItems'; + $table = $this->mode == 't' ? $this->Application->GetTempName(TABLE_PREFIX.'CategoryItems', 'prefix:'.$this->Prefix) : TABLE_PREFIX.'CategoryItems'; return $filenames_helper->stripDisallowed($table, 'ItemResourceId', $this->GetDBField('ResourceId'), $filename); } @@ -309,7 +309,7 @@ */ function assignToCategory($category_id, $is_primary = false) { - $table = $this->mode == 't' ? $this->Application->GetTempName(TABLE_PREFIX.'CategoryItems') : TABLE_PREFIX.'CategoryItems'; + $table = $this->mode == 't' ? $this->Application->GetTempName(TABLE_PREFIX.'CategoryItems', 'prefix:'.$this->Prefix) : TABLE_PREFIX.'CategoryItems'; $key_clause = '(ItemResourceId = '.$this->GetDBField('ResourceId').')'; // get all cateories, where item is in Index: branches/unlabeled/unlabeled-1.9.2/core/units/permissions/permissions_tag_processor.php =================================================================== diff -u -r6628 -r6873 --- branches/unlabeled/unlabeled-1.9.2/core/units/permissions/permissions_tag_processor.php (.../permissions_tag_processor.php) (revision 6628) +++ branches/unlabeled/unlabeled-1.9.2/core/units/permissions/permissions_tag_processor.php (.../permissions_tag_processor.php) (revision 6873) @@ -49,7 +49,9 @@ { $permissions_helper =& $this->Application->recallObject('PermissionsHelper'); $prefix_parts = explode('-', $this->Prefix, 2); - $permissions_helper->LoadPermissions($this->Application->GetVar('g_id'), 0, 1); + /* @var $permissions_helper kPermissionsHelper */ + + $permissions_helper->LoadPermissions($this->Application->GetVar('g_id'), 0, 1, 'g'); } function LevelIndicator($params) @@ -66,7 +68,7 @@ $module = $this->Application->findModule('Var', $prefix, 'Name'); $perm_live_table = $this->Application->getUnitOption('c-perm', 'TableName'); - $perm_temp_table = $this->Application->GetTempName($perm_live_table); + $perm_temp_table = $this->Application->GetTempName($perm_live_table, 'prefix:'.$this->Prefix); if ($category->GetID() == 0) { $categories = Array(0); Index: branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php =================================================================== diff -u -r6863 -r6873 --- branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6863) +++ branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6873) @@ -358,6 +358,8 @@ function OnTempHandlerBuild(&$event) { $object =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); + /* @var $object kTempTablesHandler */ + $object->BuildTables( $event->Prefix, $this->getSelectedIDs($event) ); } @@ -372,13 +374,22 @@ $object = &$event->getObject(); $top_prefix = $this->Application->GetTopmostPrefix($event->Prefix); - return ( - $this->Application->GetVar(rtrim($top_prefix.'_'.$event->Special, '_')) == 't' - || - $this->Application->GetVar(rtrim($top_prefix.'.'.$event->Special, '.')) == 't' - || - $this->Application->GetVar($top_prefix.'_mode') == 't' - ); + $var_names = Array ( + $top_prefix.'_mode', + rtrim($top_prefix.'_'.$event->Special, '_'), + rtrim($top_prefix.'.'.$event->Special, '.'), + ); + + $temp_mode = false; + foreach ($var_names as $var_name) { + $value = $this->Application->GetVar($var_name); + if (substr($value, 0, 1) == 't') { + $temp_mode = true; + break; + } + } + + return $temp_mode; } /** @@ -390,7 +401,7 @@ */ function TablePrefix(&$event) { - return $this->UseTempTables($event) ? $this->Application->GetTempTablePrefix().TABLE_PREFIX : TABLE_PREFIX; + return $this->UseTempTables($event) ? $this->Application->GetTempTablePrefix('prefix:'.$event->Prefix).TABLE_PREFIX : TABLE_PREFIX; } /** @@ -1018,6 +1029,20 @@ } /** + * Sets window id (of first opened edit window) to temp mark in uls + * + * @param kEvent $event + */ + function setTempWindowID(&$event) + { + $mode = $this->Application->GetVar($event->Prefix.'_mode'); + if ($mode == 't') { + $wid = $this->Application->GetVar('m_wid'); + $this->Application->SetVar($event->Prefix.'_mode', 't'.$wid); + } + } + + /** * Prepare temp tables and populate it * with items selected in the grid * @@ -1026,8 +1051,11 @@ function OnEdit(&$event) { $this->StoreSelectedIDs($event); - + $this->setTempWindowID($event); + $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); + /* @var $temp kTempTablesHandler */ + $temp->PrepareEdit(); $event->redirect=false; @@ -1193,6 +1221,8 @@ function OnPreCreate(&$event) { $this->clearSelectedIDs($event); + $this->setTempWindowID($event); + $object =& $event->getObject( Array('skip_autoload' => true) ); $temp =& $this->Application->recallObject($event->Prefix.'_TempHandler', 'kTempTablesHandler'); @@ -1782,7 +1812,7 @@ $this->RemoveRequiredFields($object); $is_new = !$object->isLoaded(); - $is_main = $this->Application->GetVar($event->Prefix.'_mode') == 't'; + $is_main = substr($this->Application->GetVar($event->Prefix.'_mode'), 0, 1) == 't'; if ($is_new) { $new_event = $is_main ? 'OnPreCreate' : 'OnNew'; Index: branches/unlabeled/unlabeled-1.28.2/core/units/languages/languages_event_handler.php =================================================================== diff -u -r6793 -r6873 --- branches/unlabeled/unlabeled-1.28.2/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 6793) +++ branches/unlabeled/unlabeled-1.28.2/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 6873) @@ -135,7 +135,7 @@ // 1. phrases import $phrases_live = $this->Application->getUnitOption('phrases','TableName'); - $phrases_temp = $this->Application->GetTempName($phrases_live); + $phrases_temp = $this->Application->GetTempName($phrases_live, 'prefix:phrases'); $sql = 'INSERT INTO '.$phrases_temp.' SELECT Phrase, Translation, PhraseType, 0-PhraseId, '.$lang_id.', '.adodb_mktime().', "", Module FROM '.$phrases_live.' @@ -144,7 +144,7 @@ // 2. events import $em_table_live = $this->Application->getUnitOption('emailmessages','TableName'); - $em_table_temp = $this->Application->GetTempName($em_table_live); + $em_table_temp = $this->Application->GetTempName($em_table_live, 'prefix:emailmessages'); $sql = 'SELECT * FROM '.$em_table_live.' WHERE LanguageId = '.$from_lang_id; $email_messages = $this->Conn->Query($sql); @@ -182,7 +182,7 @@ $object =& $event->getObject(); $object->SetDBField('CopyLabels', 1); - $live_table = $this->Application->GetLiveName($object->TableName); + $live_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); $primary_lang_id = $this->Conn->GetOne('SELECT '.$object->IDField.' FROM '.$live_table.' WHERE PrimaryLang = 1'); $object->SetDBField('CopyFromLanguage', $primary_lang_id); Index: branches/unlabeled/unlabeled-1.24.4/core/kernel/kbase.php =================================================================== diff -u -r6689 -r6873 --- branches/unlabeled/unlabeled-1.24.4/core/kernel/kbase.php (.../kbase.php) (revision 6689) +++ branches/unlabeled/unlabeled-1.24.4/core/kernel/kbase.php (.../kbase.php) (revision 6873) @@ -235,7 +235,7 @@ function SwitchToTemp() { $this->TableName = $this->Application->getUnitOption($this->Prefix, 'TableName'); - $this->SetTableName( $this->Application->GetTempName($this->TableName) ); + $this->SetTableName( $this->Application->GetTempName($this->TableName, 'prefix:'.$this->Prefix) ); $this->mode = 't'; } @@ -333,7 +333,7 @@ */ function replaceModePrefix($query) { - $live_table = substr(GetLiveName($this->TableName), strlen(TABLE_PREFIX)); + $live_table = substr($this->Application->GetLiveName($this->TableName), strlen(TABLE_PREFIX)); preg_match('/'.preg_quote(TABLE_PREFIX, '/').'(.*)'.preg_quote($live_table, '/').'/', $this->TableName, $rets); return str_replace('%3$s', $rets[1], $query); } Index: branches/unlabeled/unlabeled-1.68.4/core/kernel/db/db_tag_processor.php =================================================================== diff -u -r6849 -r6873 --- branches/unlabeled/unlabeled-1.68.4/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 6849) +++ branches/unlabeled/unlabeled-1.68.4/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 6873) @@ -1380,7 +1380,7 @@ $top_prefix = $this->Application->GetTopmostPrefix($this->Prefix); } - $temp_tables = $this->Application->GetVar($top_prefix.'_mode') == 't'; + $temp_tables = substr($this->Application->GetVar($top_prefix.'_mode'), 0, 1) == 't'; $modified = $this->Application->RecallVar($top_prefix.'_modified'); if ($temp_tables && $modified) { Index: branches/unlabeled/unlabeled-1.8.2/core/units/languages/languages_item.php =================================================================== diff -u -r6796 -r6873 --- branches/unlabeled/unlabeled-1.8.2/core/units/languages/languages_item.php (.../languages_item.php) (revision 6796) +++ branches/unlabeled/unlabeled-1.8.2/core/units/languages/languages_item.php (.../languages_item.php) (revision 6873) @@ -4,7 +4,7 @@ { function generateID() { - $sql = 'SELECT MAX('.$this->IDField.') FROM '.$this->Application->GetLiveName($this->TableName); + $sql = 'SELECT MAX('.$this->IDField.') FROM '.$this->Application->getUnitOption($this->Prefix, 'TableName'); return $this->Conn->GetOne($sql) + 1; } Index: branches/unlabeled/unlabeled-1.7.2/core/units/languages/languages_tag_processor.php =================================================================== diff -u -r6795 -r6873 --- branches/unlabeled/unlabeled-1.7.2/core/units/languages/languages_tag_processor.php (.../languages_tag_processor.php) (revision 6795) +++ branches/unlabeled/unlabeled-1.7.2/core/units/languages/languages_tag_processor.php (.../languages_tag_processor.php) (revision 6873) @@ -16,9 +16,9 @@ $edit_direct = $this->Application->GetVar('phrases_label'); $top_prefix = $this->Application->GetTopmostPrefix($this->Prefix); - if( $this->Application->GetVar($top_prefix.'_mode') == 't' && !$edit_direct ) + if( substr($this->Application->GetVar($top_prefix.'_mode'), 0, 1) == 't' && !$edit_direct ) { - $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); + $object =& $this->getObject(); return $object->GetDBField('Charset'); } $lang_current =& $this->Application->recallObject('lang.current'); Index: branches/unlabeled/unlabeled-1.2.2/admin/index4_direct.php =================================================================== diff -u -r4332 -r6873 --- branches/unlabeled/unlabeled-1.2.2/admin/index4_direct.php (.../index4_direct.php) (revision 4332) +++ branches/unlabeled/unlabeled-1.2.2/admin/index4_direct.php (.../index4_direct.php) (revision 6873) @@ -25,7 +25,7 @@ $id_field = $application->getUnitOption($prefix, 'IDField'); $temp_handler =& $application->recallObject($prefix.'_TempHandler', 'kTempTablesHandler'); - $table_name = $temp_handler->GetTempName( $application->getUnitOption($prefix, 'TableName') ); + $table_name = $temp_handler->GetTempName( $application->getUnitOption($prefix, 'TableName'), 'prefix:'.$prefix ); $db =& $application->GetADODBConnection(); $item_id = $db->GetOne('SELECT '.$id_field.' FROM '.$table_name, (int)$application->GetVar('en'));