Index: branches/5.0.x/core/units/configuration/configuration_event_handler.php =================================================================== diff -u -r12233 -r12264 --- branches/5.0.x/core/units/configuration/configuration_event_handler.php (.../configuration_event_handler.php) (revision 12233) +++ branches/5.0.x/core/units/configuration/configuration_event_handler.php (.../configuration_event_handler.php) (revision 12264) @@ -1,6 +1,6 @@ addFilter('module_filter', '%1$s.ModuleOwner = '.$this->Conn->qstr($module)); $object->addFilter('section_filter', '%1$s.Section = '.$this->Conn->qstr($section)); + if (!$this->Application->ConfigValue('AllowAdminConsoleInterfaceChange')) { + $object->addFilter('interface_change_filter', '%1$s.VariableName <> "AdminConsoleInterface"'); + } + if (defined('IS_INSTALL') && IS_INSTALL) { $object->addFilter('install_filter', 'ca.Install = 1'); } @@ -55,8 +59,23 @@ */ function OnBeforeItemUpdate(&$event) { + static $default_field_options = null; + $object =& $event->getObject(); + /* @var $object kDBItem */ + // ability to validate each configuration variable separately + if (!isset($default_field_options)) { + $default_field_options = $object->GetFieldOptions('VariableValue'); + } + + $new_field_options = $default_field_options; + $validation = $object->GetDBField('Validation'); + if ($validation) { + $new_field_options = array_merge($new_field_options, unserialize($validation)); + } + $object->SetFieldOptions('VariableValue', $new_field_options); + // if password field is empty, then don't update if ($object->GetDBField('element_type') == 'password') { if (trim($object->GetDBField('VariableValue')) == '') { @@ -69,7 +88,7 @@ } } - $field_values = $this->Application->GetVar($event->getPrefixSpecial(true)); + $field_values = $this->Application->GetVar( $event->getPrefixSpecial(true) ); $state_country_hash = Array ( 'Comm_State' => 'Comm_Country', @@ -79,10 +98,15 @@ $field_name = $object->GetDBField('VariableName'); if (array_key_exists($field_name, $state_country_hash)) { // if this is state field + $sql = 'SELECT VariableId + FROM ' . $this->Application->getUnitOption('conf', 'TableName') . ' + WHERE VariableName = "' . $state_country_hash[$field_name] . '"'; + $country_variable_id = $this->Conn->GetOne($sql); + $check_state = $object->GetDBField('VariableValue'); - $check_country = $field_values[ $state_country_hash[$field_name] ]['VariableValue']; + $check_country = $field_values[$country_variable_id]['VariableValue']; - if (!($check_country && $check_state)) { + if (!$check_country || !$check_state) { return true; } @@ -92,15 +116,18 @@ $object->SetDBField('VariableValue', $state_iso); } else { - $errormsgs = $this->Application->GetVar('errormsgs'); - $errors = !$errormsgs || !isset($errormsgs[$event->Prefix_Special]) ? Array() : $errormsgs[$event->Prefix_Special]; + // selected state doesn't belong to selected country + $object->SetError('VariableValue', 'invalid_state', 'la_InvalidState'); + } + } - $errors[$field_name] = 'la_InvalidState'; - $errormsgs[$event->Prefix_Special] = $errors; + if ($object->GetDBField('VariableName') == 'AdminConsoleInterface') { + $can_change = $this->Application->ConfigValue('AllowAdminConsoleInterfaceChange'); - $this->Application->SetVar('errormsgs', $errormsgs); - $event->status = erFAIL; + if (($object->GetDBField('VariableValue') != $object->GetOriginalField('VariableValue')) && !$can_change) { + $object->SetError('VariableValue', 'not_allowed', 'la_error_NotAllowed'); } + } } @@ -125,13 +152,16 @@ // allows to check if variable's value was changed now $variable_name = $object->GetDBField('VariableName'); $variable_value = $object->GetDBField('VariableValue'); - $watch_variables = Array ('Require_AdminSSL', 'AdminSSL_URL', 'AdvancedUserManagement', 'Site_Name'); + $watch_variables = Array ( + 'Require_AdminSSL', 'AdminSSL_URL', 'AdvancedUserManagement', + 'Site_Name', 'AdminConsoleInterface' + ); if (in_array($variable_name, $watch_variables)) { $changed = $this->Application->GetVar($event->getPrefixSpecial() . '_changed', Array ()); if ($variable_value != $object->GetOriginalField('VariableValue')) { - $changed[$variable_name] = $variable_value; + $changed[] = $variable_name; $this->Application->SetVar($event->getPrefixSpecial() . '_changed', $changed); } @@ -140,7 +170,7 @@ case 'AdminSSL_URL': static $skin_deleted = false; - if (array_key_exists($variable_name, $changed) && !$skin_deleted) { + if (in_array($variable_name, $changed) && !$skin_deleted) { // when administrative console is moved to SSL mode, then delete skin $skin_helper =& $this->Application->recallObject('SkinHelper'); /* @var $skin_helper SkinHelper */ @@ -166,32 +196,52 @@ function OnUpdate(&$event) { if (!$this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); // 1. save user selected module root category - $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); $new_category_id = getArrayValue($items_info, 'ModuleRootCategory', 'VariableValue'); if ($new_category_id !== false) { unset($items_info['ModuleRootCategory']); - $this->Application->SetVar($event->getPrefixSpecial(true), $items_info); } - parent::OnUpdate($event); + $object =& $event->getObject( Array('skip_autoload' => true) ); + /* @var $object kDBItem */ - if ($event->status == erSUCCESS && $new_category_id !== false) { - // root category was submitted - $module = $this->Application->GetVar('module'); - $root_category_id = $this->Application->findModule('Name', $module, 'RootCat'); + if ($items_info) { + $has_error = false; + foreach ($items_info as $id => $field_values) { + $object->Clear(); // clear validation errors from previous variable + $object->Load($id); + $object->SetFieldsFromHash($field_values); - if ($root_category_id != $new_category_id) { - // root category differs from one in db - $fields_hash = Array('RootCat' => $new_category_id); - $this->Conn->doUpdate($fields_hash, TABLE_PREFIX.'Modules', 'Name = '.$this->Conn->qstr($module)); + if (!$object->Update($id)) { + // don't stop when error found ! + $has_error = true; + } } + + $event->status = $has_error ? erFAIL : erSUCCESS; } - if ($event->status == erSUCCESS) { // reset cache + if ($event->status == erSUCCESS) { + if ($new_category_id !== false) { + // root category was submitted + $module = $this->Application->GetVar('module'); + $root_category_id = $this->Application->findModule('Name', $module, 'RootCat'); + + if ($root_category_id != $new_category_id) { + // root category differs from one in db + $fields_hash = Array('RootCat' => $new_category_id); + $this->Conn->doUpdate($fields_hash, TABLE_PREFIX.'Modules', 'Name = '.$this->Conn->qstr($module)); + } + } + + // reset cache $changed = $this->Application->GetVar($event->getPrefixSpecial() . '_changed', Array ()); - $refresh_sections = array_key_exists('AdvancedUserManagement', $changed) || array_key_exists('Site_Name', $changed); + $require_refresh = Array ( + 'AdvancedUserManagement', 'Site_Name', 'AdminConsoleInterface' + ); + $refresh_sections = array_intersect($require_refresh, $changed); if ($refresh_sections) { // reset sections too, because of AdvancedUserManagement @@ -200,14 +250,12 @@ $this->Application->UnitConfigReader->ResetParsedData($refresh_sections ? true : false); } + elseif ($this->Application->GetVar('errors_' . $event->getPrefixSpecial())) { + // because we have list out there, and this is item + $this->Application->removeObject( $event->getPrefixSpecial() ); + } } - if ($this->Application->GetVar('errormsgs')) { - // because we have list out there, and this is item - $this->Application->removeObject($event->getPrefixSpecial()); - $event->redirect = false; - } - // keeps module and section in REQUEST to ensure, that last admin template will work $event->SetRedirectParam('module', $this->Application->GetVar('module')); $event->SetRedirectParam('section', $this->Application->GetVar('section')); Index: branches/5.0.x/core/kernel/db/dblist.php =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/kernel/db/dblist.php (.../dblist.php) (revision 12117) +++ branches/5.0.x/core/kernel/db/dblist.php (.../dblist.php) (revision 12264) @@ -1,6 +1,6 @@ Application->StoreVar($var_name, $pseudo); + + return true; } } Index: branches/5.0.x/core/install/install_schema.sql =================================================================== diff -u -r12244 -r12264 --- branches/5.0.x/core/install/install_schema.sql (.../install_schema.sql) (revision 12244) +++ branches/5.0.x/core/install/install_schema.sql (.../install_schema.sql) (revision 12264) @@ -48,7 +48,7 @@ heading varchar(255) default NULL, prompt varchar(255) default NULL, element_type varchar(20) NOT NULL default '', - validation varchar(255) default NULL, + Validation text, ValueList text, DisplayOrder double NOT NULL default '0', GroupDisplayOrder double NOT NULL default '0', Index: branches/5.0.x/core/kernel/db/dbitem.php =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 12117) +++ branches/5.0.x/core/kernel/db/dbitem.php (.../dbitem.php) (revision 12264) @@ -1,6 +1,6 @@ Fields[$field]['error_field']) ? $this->Fields[$field]['error_field'] : $field; if (isset($this->FieldErrors[$error_field]['pseudo'])) { // don't set more then one error on field - return ; + return false; } $this->FieldErrors[$error_field]['pseudo'] = $pseudo; @@ -219,6 +221,8 @@ // label for error (only when not already set) $this->ErrorMsgs[$pseudo] = (substr($error_label, 0, 1) == '+') ? substr($error_label, 1) : '!'.$error_label.'!'; } + + return true; } /** Index: branches/5.0.x/core/install/upgrades.sql =================================================================== diff -u -r12249 -r12264 --- branches/5.0.x/core/install/upgrades.sql (.../upgrades.sql) (revision 12249) +++ branches/5.0.x/core/install/upgrades.sql (.../upgrades.sql) (revision 12264) @@ -1432,4 +1432,7 @@ UPDATE ConfigurationAdmin SET DisplayOrder = DisplayOrder - 0.01 WHERE VariableName IN ('UseModRewrite', 'cms_DefaultDesign', 'ErrorTemplate' 'NoPermissionTemplate', 'UsePageHitCounter', 'ForceImageMagickResize', 'CheckStopWords'); +ALTER TABLE ConfigurationAdmin CHANGE validation Validation TEXT NULL DEFAULT NULL; +UPDATE ConfigurationAdmin SET Validation = 'a:3:{s:4:"type";s:3:"int";s:13:"min_value_inc";i:1;s:8:"required";i:1;}' WHERE VariableName = 'SessionTimeout'; + UPDATE Modules SET Version = '5.0.1', Loaded = 1 WHERE Name = 'In-Portal'; \ No newline at end of file Index: branches/5.0.x/core/units/configuration/configuration_tag_processor.php =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/units/configuration/configuration_tag_processor.php (.../configuration_tag_processor.php) (revision 12117) +++ branches/5.0.x/core/units/configuration/configuration_tag_processor.php (.../configuration_tag_processor.php) (revision 12264) @@ -1,6 +1,6 @@ SetDBField('VariableValue', $field_values[$list->GetDBField('VariableName')]['VariableValue']); + $list->SetDBField('VariableValue', $field_values[$list->GetID()]['VariableValue']); } $list->SetDBField('DirectOptions', ''); @@ -135,22 +135,27 @@ return $this->Application->ConfigValue($params['name']); } + function IsRequired($params) + { + $object =& $this->getObject($params);; + /* @var $object kDBList */ + + $field_options = $object->GetDBField('Validation'); + $field_options = $field_options ? unserialize($field_options) : Array (); + + return array_key_exists('required', $field_options) && $field_options['required']; + } + function Error($params) { - $object =& $this->Application->recallObject( $this->getPrefixSpecial() ); + $object =& $this->getObject($params); + /* @var $object kDBList */ + $field = $object->GetDBField($params['id_field']); - $errors = $this->Application->GetVar('errormsgs'); - $errors = $errors[$this->getPrefixSpecial()]; + $errors = $this->Application->GetVar('errors_' . $this->getPrefixSpecial(), Array ()); - if (isset($errors[$field])) { - $msg = $this->Application->Phrase($errors[$field]); - } - else { - $msg = ''; - } - - return $msg; + return array_key_exists($field, $errors) ? $errors[$field] : ''; } /** Index: branches/5.0.x/core/units/configuration/configuration.php =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/units/configuration/configuration.php (.../configuration.php) (revision 12117) +++ branches/5.0.x/core/units/configuration/configuration.php (.../configuration.php) (revision 12264) @@ -1,6 +1,6 @@ IDField] = $this->ID; return parent::GetKeyClause($method, $keys_hash); } - + + /** + * Set's field error, if pseudo passed not found then create it with message text supplied. + * Don't owerrite existing pseudo translation. + * + * @param string $field + * @param string $pseudo + * @param string $error_label + */ + function SetError($field, $pseudo, $error_label = null, $error_params = null) + { + if (!parent::SetError($field, $pseudo, $error_label, $error_params)) { + // this field already has an error -> don't overwrite it + return false; + } + + $list_errors = $this->Application->GetVar('errors_' . $this->getPrefixSpecial(), Array ()); + $list_errors[ $this->GetDBField('VariableName') ] = $this->GetErrorMsg($field); + $this->Application->SetVar('errors_' . $this->getPrefixSpecial(), $list_errors); + } + } ?> \ No newline at end of file Index: branches/5.0.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -r12238 -r12264 --- branches/5.0.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 12238) +++ branches/5.0.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 12264) @@ -1,6 +1,6 @@ getObject( Array('skip_autoload' => true) ); $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - if($items_info) - { - foreach($items_info as $id => $field_values) - { + if ($items_info) { + foreach ($items_info as $id => $field_values) { $object->Load($id); $object->SetFieldsFromHash($field_values); $this->customProcessing($event, 'before'); - if( $object->Update($id) ) - { + + if ( $object->Update($id) ) { $this->customProcessing($event, 'after'); - $event->status=erSUCCESS; + $event->status = erSUCCESS; } - else - { - $event->status=erFAIL; - $event->redirect=false; + else { + $event->status = erFAIL; + $event->redirect = false; break; } } } - $event->redirect_params = Array('opener'=>'u'); + + $event->SetRedirectParam('opener', 'u'); } /** Index: branches/5.0.x/core/units/configuration/configuration_config.php =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/units/configuration/configuration_config.php (.../configuration_config.php) (revision 12117) +++ branches/5.0.x/core/units/configuration/configuration_config.php (.../configuration_config.php) (revision 12264) @@ -1,6 +1,6 @@ 'conf', - 'ItemClass' => Array('class'=>'ConfigurationItem','file'=>'configuration.php','build_event'=>'OnItemBuild'), - 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), - 'EventHandlerClass' => Array('class'=>'ConfigurationEventHandler','file'=>'configuration_event_handler.php','build_event'=>'OnBuild'), - 'TagProcessorClass' => Array('class'=>'ConfigurationTagProcessor','file'=>'configuration_tag_processor.php','build_event'=>'OnBuild'), - 'AutoLoad' => true, - 'Hooks' => Array(), - 'QueryString' => Array( - 1 => 'id', - 2 => 'page', - 3 => 'event', - 4 => 'mode', - ), + $config = Array ( + 'Prefix' => 'conf', + 'ItemClass' => Array ('class' => 'ConfigurationItem', 'file' => 'configuration.php', 'build_event' => 'OnItemBuild'), + 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), + 'EventHandlerClass' => Array ('class' => 'ConfigurationEventHandler', 'file' => 'configuration_event_handler.php', 'build_event' => 'OnBuild'), + 'TagProcessorClass' => Array ('class' => 'ConfigurationTagProcessor', 'file' => 'configuration_tag_processor.php', 'build_event' => 'OnBuild'), - 'IDField' => 'VariableId', - 'TitleField' => 'VariableName', + 'AutoLoad' => true, - 'TitlePresets' => Array( - 'default' => Array('tag_params' => Array('conf' => Array('per_page' => -1))), + 'QueryString' => Array ( + 1 => 'id', + 2 => 'Page', + 3 => 'event', + 4 => 'mode', + ), - 'config_list_general' => Array('prefixes' => Array('conf_List'), 'format' => "!la_updating_config!"), - 'config_list_output' => Array('prefixes' => Array('conf_List'), 'format' => "!la_updating_config!"), - 'config_list_contacts' => Array('prefixes' => Array('conf_List'), 'format' => "!la_updating_config!"), + 'IDField' => 'VariableId', + 'TitleField' => 'VariableName', - 'config_list_categories' => Array('prefixes' => Array('conf_List'), 'format' => "!la_updating_config!"), - 'config_list_users' => Array('prefixes' => Array('conf_List'), 'format' => "!la_updating_config!"), + 'TitlePresets' => Array ( + 'default' => Array ('tag_params' => Array ('conf' => Array ('per_page' => -1))), - 'section_label' => Array ('prefixes' => Array ('conf_List'), 'format' => "#section_label#"), - ), + 'config_list_general' => Array ('prefixes' => Array ('conf_List'), 'format' => "!la_updating_config!"), + 'config_list_output' => Array ('prefixes' => Array ('conf_List'), 'format' => "!la_updating_config!"), + 'config_list_contacts' => Array ('prefixes' => Array ('conf_List'), 'format' => "!la_updating_config!"), - 'TableName' => TABLE_PREFIX.'ConfigurationValues', + 'config_list_categories' => Array ('prefixes' => Array ('conf_List'), 'format' => "!la_updating_config!"), + 'config_list_users' => Array ('prefixes' => Array ('conf_List'), 'format' => "!la_updating_config!"), - 'ListSQLs' => Array('' => ' SELECT %1$s.* %2$s - FROM '.TABLE_PREFIX.'ConfigurationAdmin ca - LEFT JOIN %1$s USING(VariableName)'), + 'section_label' => Array ('prefixes' => Array ('conf_List'), 'format' => "#section_label#"), + ), - 'ItemSQLs' => Array('' => ' SELECT %1$s.* %2$s - FROM '.TABLE_PREFIX.'ConfigurationAdmin ca - LEFT JOIN %1$s USING(VariableName)'), + 'TableName' => TABLE_PREFIX . 'ConfigurationValues', - 'ListSortings' => Array( - '' => Array( - 'Sorting' => Array('DisplayOrder' => 'asc', 'GroupDisplayOrder' => 'asc'), - ) - ), + 'ListSQLs' => Array ( + '' => ' SELECT %1$s.* %2$s + FROM ' . TABLE_PREFIX . 'ConfigurationAdmin ca + LEFT JOIN %1$s USING(VariableName)' + ), - 'CalculatedFields' => Array ( - '' => Array ( - 'heading' => 'ca.heading', - 'prompt' => 'ca.prompt', - 'element_type' => 'ca.element_type', - 'ValueList' => 'ca.ValueList', - 'DisplayOrder' => 'ca.DisplayOrder', - 'GroupDisplayOrder' => 'ca.GroupDisplayOrder', - 'Install' => 'ca.Install', - ), - ), - 'Fields' => Array( - 'VariableId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), - 'VariableName' => Array('type' => 'string','not_null' => '1','default' => ''), - 'VariableValue' => Array('type'=>'string', 'default' => null), - 'ModuleOwner' => Array('type'=>'string', 'default'=>'In-Portal'), - 'Section' => Array('type'=>'string','not_null' => '1','default'=>''), - ), - 'VirtualFields' => Array( - 'heading' => Array('type' => 'string', 'default' => ''), - 'prompt' => Array('type' => 'string', 'default' => ''), - 'element_type' => Array('type' => 'string', 'not_null' => '1', 'default' => ''), - 'ValueList' => Array('type' => 'string', 'default' => ''), - 'DisplayOrder' => Array('type' => 'double', 'not_null' => '1', 'default' => 0), - 'GroupDisplayOrder' => Array('type' => 'double', 'not_null' => '1', 'default' => 0), - 'Install' => Array('type' => 'int', 'not_null' => '1', 'default' => 1), - 'DirectOptions' => Array('type' => 'string', 'default' => ''), - ), + 'ListSortings' => Array ( + '' => Array ( + 'Sorting' => Array ('DisplayOrder' => 'asc', 'GroupDisplayOrder' => 'asc'), + ) + ), - 'Grids' => Array(), - ); + 'CalculatedFields' => Array ( + '' => Array ( + 'heading' => 'ca.heading', + 'prompt' => 'ca.prompt', + 'element_type' => 'ca.element_type', + 'Validation' => 'ca.Validation', + 'ValueList' => 'ca.ValueList', + 'DisplayOrder' => 'ca.DisplayOrder', + 'GroupDisplayOrder' => 'ca.GroupDisplayOrder', + 'Install' => 'ca.Install', + ), + ), -?> \ No newline at end of file + 'Fields' => Array ( + 'VariableId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), + 'VariableName' => Array ('type' => 'string', 'not_null' => '1', 'default' => ''), + 'VariableValue' => Array ('type' => 'string', 'default' => null), + 'ModuleOwner' => Array ('type' => 'string', 'default' => 'In-Portal'), + 'Section' => Array ('type' => 'string', 'not_null' => '1', 'default' => ''), + ), + + 'VirtualFields' => Array ( + 'heading' => Array ('type' => 'string', 'default' => ''), + 'prompt' => Array ('type' => 'string', 'default' => ''), + 'element_type' => Array ('type' => 'string', 'not_null' => '1', 'default' => ''), + 'Validation' => Array ('type' => 'string', 'default' => ''), + 'ValueList' => Array ('type' => 'string', 'default' => ''), + 'DisplayOrder' => Array ('type' => 'double', 'not_null' => '1', 'default' => 0), + 'GroupDisplayOrder' => Array ('type' => 'double', 'not_null' => '1', 'default' => 0), + 'Install' => Array ('type' => 'int', 'not_null' => '1', 'default' => 1), + 'DirectOptions' => Array ('type' => 'string', 'default' => ''), + ), + ); \ No newline at end of file Index: branches/5.0.x/core/admin_templates/incs/config_blocks.tpl =================================================================== diff -u -r12117 -r12264 --- branches/5.0.x/core/admin_templates/incs/config_blocks.tpl (.../config_blocks.tpl) (revision 12117) +++ branches/5.0.x/core/admin_templates/incs/config_blocks.tpl (.../config_blocks.tpl) (revision 12264) @@ -58,7 +58,7 @@ - + ');" id="toggle_mark[]" title="Collapse/Expand Section">[-] @@ -67,7 +67,10 @@ " id="_" header_label=""> - + + +  *: +
[]
@@ -95,7 +98,10 @@ " id="_" header_label=""> - + + +  *: +
[]
Index: branches/5.0.x/core/install/install_data.sql =================================================================== diff -u -r12249 -r12264 --- branches/5.0.x/core/install/install_data.sql (.../install_data.sql) (revision 12249) +++ branches/5.0.x/core/install/install_data.sql (.../install_data.sql) (revision 12264) @@ -49,7 +49,7 @@ INSERT INTO ConfigurationValues VALUES (DEFAULT, 'Config_Site_Time', '14', 'In-Portal', 'in-portal:configure_general'); INSERT INTO ConfigurationAdmin VALUES ('Smtp_AdminMailFrom', 'la_section_SettingsMailling', 'la_prompt_AdminMailFrom', 'text', NULL, 'size="40"', 30.01, 0, 1); INSERT INTO ConfigurationValues VALUES (DEFAULT, 'Smtp_AdminMailFrom', 'portal@user.domain.name', 'In-Portal', 'in-portal:configure_general'); -INSERT INTO ConfigurationAdmin VALUES ('SessionTimeout', 'la_section_SettingsSession', 'la_prompt_session_timeout', 'text', '', '', 40.01, 0, 1); +INSERT INTO ConfigurationAdmin VALUES ('SessionTimeout', 'la_section_SettingsSession', 'la_prompt_session_timeout', 'text', 'a:3:{s:4:"type";s:3:"int";s:13:"min_value_inc";i:1;s:8:"required";i:1;}', '', 40.01, 0, 1); INSERT INTO ConfigurationValues VALUES (DEFAULT, 'SessionTimeout', '3600', 'In-Portal', 'in-portal:configure_general'); # Section "in-portal:configure_advanced":