Commit 40511c453201614edc14f38904a534cf10656cb7

Authored by kevin_fourie
1 parent cf1a8563

Merged in from DEV trunk...

KTS-3527
"Improve controls in the System Configuration section"
Fixed. Added radio buttons and dropdown lists, etc.

Committed by: Megan Watson
Reviewed by: Conrad Vermeulen


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@8917 c91229c3-7414-0410-bfa2-8a42b809f60b
plugins/ktcore/admin/configSettings.php
... ... @@ -40,203 +40,303 @@ require_once(KT_LIB_DIR . '/templating/templating.inc.php');
40 40  
41 41 class BaseConfigDispatcher extends KTAdminDispatcher
42 42 {
  43 + protected $category = 'System Configuration';
  44 + protected $name;
  45 +
43 46 function check() {
44 47 return parent::check();
45 48 }
46 49  
47   - function do_main($sQuery)
  50 + function do_main()
48 51 {
49   - if(empty($sQuery))
50   - {
51   - $sQuery = '';
  52 + // Get the configuration settings
  53 + $settings = $this->getSettings();
  54 +
  55 + // Check if there are any settings to be saved
  56 + $settings = $this->saveSettings($settings);
  57 +
  58 + // Organise by group
  59 + $groups = array();
  60 + $groupList = array();
  61 + foreach ($settings as $item){
  62 + $group_name = $item['group_display'];
  63 + $groupList[$group_name]['id'] = $item['id'];
  64 + $groupList[$group_name]['name'] = $group_name;
  65 + $groupList[$group_name]['description'] = $item['group_description'];
  66 + $groups[$group_name][] = $item;
52 67 }
53   - $aResults = DBUtil::getResultArray($sQuery);
54   -
55   - //populating paths correctly
56   - $oKTConfig =& KTConfig::getSingleton();
57   -
58   - for($i = 0; $i < count($aResults); $i++)
59   - {
60   - if(strstr($aResults[$i]['value'],'$') != false)
61   - {
62   - $aResults[$i]['value'] = $oKTConfig->get($aResults[$i]['group_name'].'/'.$aResults[$i]['item']);
63   - }
64   - }
65   -
66   - //If template has posted changes for config settings save all values to db.
67   - if(isset($_POST['configArray']))
68   - {
69   -
70   - foreach ($aResults as $values)
71   - {
72   -
73   - //IF current db entries id is in the array sent back by the page AND
74   - //the values for the db and the page are different, update the db.
75   - if(isset($_POST['configArray'][$values['id']]) && $_POST['configArray'][$values['id']]
76   - != $values['value'])
77   - {
78   - //update entry
79   - $aFields = array();
80   - if($values['type'] == 'boolean')
81   - {
82   - if($_POST['configArray'][$values['id']] == 'true')
83   - {
84   - $aFields['value'] = true;
85   -
86   - }
87   - else
88   - {
89   - $aFields['value'] = false;
90   - }
91   - }
92   - else
93   - {
94   - $aFields['value'] = $_POST['configArray'][$values['id']];
95   - }
96   - $oUpdateResult = DBUtil::autoUpdate('config_settings', $aFields, $values['id']);
97   - }
98   - }
99   -
100   - // Clear the cached settings
101   - $oKTConfig->clearCache();
102   - }
103   -
104   - //Get new results after any db change above
105   - if(isset($_POST['configArray']))
106   - {
107   - $aResults = DBUtil::getResultArray($sQuery);
108   - for($i = 0; $i < count($aResults); $i++)
109   - {
110   - if(strstr($aResults[$i]['value'],'$') != false)
111   - {
112   - $aResults[$i]['value'] = $oKTConfig->get($aResults[$i]['group_name'].'/'.$aResults[$i]['item']);
113   - }
114   - }
115   - }
116 68  
117 69 $oTemplating =& KTTemplating::getSingleton();
118   -
119 70 $oTemplate =& $oTemplating->loadTemplate('ktcore/configsettings');
120 71  
121 72 //set db config data being sent to template
122 73 $oTemplate->setData(array(
123   - 'results' => $aResults
124   -
  74 + 'context' => $this,
  75 + 'groupList' => $groupList,
  76 + 'groupSettings' => $groups,
  77 + 'section' => $this->name
125 78 ));
126 79 return $oTemplate;
127 80 }
  81 +
  82 + /**
  83 + * Get the configuration settings
  84 + *
  85 + * @return array
  86 + */
  87 + function getSettings() {
  88 + $query = "SELECT g.display_name AS group_display, g.description AS group_description,
  89 + s.id, s.display_name, s.description, s.value, s.default_value, s.type, s.options
  90 + FROM config_groups g
  91 + INNER JOIN config_settings s ON g.name = s.group_name
  92 + WHERE category = '{$this->category}' AND s.can_edit = 1
  93 + ORDER BY g.name, s.item";
  94 +
  95 + $results = DBUtil::getResultArray($query);
  96 +
  97 + if(PEAR::isError($results)){
  98 + $this->addErrorMessage(_kt("The configuration settings could not be retrieved: {$results->getMessage()}"));
  99 + return array();
  100 + }
  101 +
  102 + return $results;
  103 + }
  104 +
  105 + /**
  106 + * Render the form input for the given setting type.
  107 + *
  108 + * @param string $type
  109 + * @param mixed $value
  110 + * @param string $options
  111 + * @return HTML
  112 + */
  113 + function renderInput($id, $type, $value, $defaultValue = '', $options = null) {
  114 +
  115 + if(!empty($options)){
  116 + $options = unserialize($options);
  117 + }
  118 +
  119 + $input = '';
  120 + if(!empty($defaultValue) && ($type == 'string' || $type == 'numeric_string' || empty($type))){
  121 +
  122 + $pos = strpos($defaultValue, '${');
  123 +
  124 + if($pos !== false){
  125 + $pos2 = strpos($defaultValue, '}', $pos);
  126 +
  127 + $var = substr($defaultValue, $pos + 2, $pos2 - ($pos + 2));
  128 +
  129 + global $default;
  130 + $var = $default->$var;
  131 +
  132 + $defaultValue = preg_replace('/\$\{([^}]+)\}/', $var, $defaultValue);
  133 + }
  134 +
  135 + $defaultValue = "<i>{$defaultValue}</i>";
  136 + $input .= '<span class="descriptiveText">'._kt("The default value is {$defaultValue}").'</span><br>';
  137 + }
  138 +
  139 + /*
  140 + The options array can contain a number of settings:
  141 + - increment => the amount a numeric drop down will increment by
  142 + - minimum => the minimum value of the numeric dropdown
  143 + - maximum => the maximum value of the numeric dropdown
  144 + - label => a word or sentence displayed before the input
  145 + - append => a word or sentence displayed after the input
  146 + - options
  147 + => the values to be used in a dropdown, format: array(array('label' => 'xyz', 'value' => 'Xyz'), array('label' => 'abc', 'value' => 'Abc'));
  148 + => the values to be used in a radio button, format: array('xyz', 'abc');
  149 + => the values to be used in a numeric dropdown, format: array(array('label' => '10', 'value' => '10'), array('label' => '2', 'value' => '2'));
  150 + */
  151 +
  152 + switch ($type){
  153 + case 'numeric':
  154 + // If options aren't provided, create them
  155 + if(!isset($options['options'])){
  156 +
  157 + $increment = isset($options['increment']) ? $options['increment'] : 5;
  158 + $minVal = isset($options['minimum']) ? $options['minimum'] : 0;
  159 + $maxVal = isset($options['maximum']) ? $options['maximum'] : 100;
  160 +
  161 + $optionValues = array();
  162 + for($i = $minVal; $i <= $maxVal; $i = $i + $increment){
  163 + $optionValues[] = array('label' => $i, 'value' => $i);
  164 + }
  165 + $options['options'] = $optionValues;
  166 + }
  167 +
  168 + case 'dropdown':
  169 + $optionValues = array();
  170 + $optionValues = $options['options'];
  171 +
  172 + $value = ($value == 'default') ? $defaultValue : $value;
  173 +
  174 + // Prepend a label if set
  175 + $input .= isset($options['label']) ? "<label for='{$id}'>{$options['label']}</label>&nbsp;&nbsp;" : '';
  176 +
  177 + // Create dropdown
  178 + $input .= "<select id='{$id}' name='configArray[{$id}]'>&nbsp;&nbsp;";
  179 + foreach ($optionValues as $item){
  180 + $selected = ($item['value'] == $value) ? 'selected' : '';
  181 + $input .= "<option value='{$item['value']}' $selected>{$item['label']}</option>";
  182 + }
  183 + $input .= '</select>';
  184 + break;
  185 +
  186 + case 'boolean':
  187 + $options['options'] = array('true', 'false');
  188 +
  189 + case 'radio':
  190 + $optionValues = array();
  191 + $optionValues = $options['options'];
  192 +
  193 + $value = ($value == 'default') ? $defaultValue : $value;
  194 +
  195 + foreach ($optionValues as $item){
  196 + $checked = ($item == $value) ? 'checked ' : '';
  197 +
  198 + $input .= "<input type='radio' id='{$id}_{$item}' name='configArray[{$id}]' value='{$item}' {$checked}>&nbsp;&nbsp;";
  199 + $input .= "<label for={$id}>".ucwords($item).'</label>&nbsp;&nbsp;';
  200 + }
  201 + break;
  202 +
  203 + // Change this later to validate the numbers
  204 + // For input where the number may be anything like a Port or the number may be a float instead of an integer
  205 + case 'numeric_string':
  206 + // Prepend a label if set
  207 + $input .= isset($options['label']) ? "<label for='{$id}'>{$options['label']}</label>&nbsp;&nbsp;" : '';
  208 + $input .= "<input name='configArray[{$id}]' value='{$value}' size = '5'>";
  209 + break;
  210 +
  211 + case 'string':
  212 + default:
  213 + // Prepend a label if set
  214 + $input .= isset($options['label']) ? "<label for='{$id}'>{$options['label']}</label>&nbsp;&nbsp;" : '';
  215 + $input .= "<input name='configArray[{$id}]' value='{$value}' size = '60'>";
  216 + }
  217 +
  218 + // Append any text
  219 + $input .= isset($options['append']) ? '&nbsp;&nbsp;'._kt($options['append']) : '';
  220 +
  221 + return $input;
  222 + }
  223 +
  224 + /**
  225 + * Save any modified settings, clear the cached settings and return the new settings
  226 + *
  227 + * @param array $currentSettings
  228 + * @return array
  229 + */
  230 + function saveSettings($currentSettings) {
  231 + $newSettings = isset($_POST['configArray']) ? $_POST['configArray'] : '';
  232 + if(!empty($newSettings)){
  233 + $this->addInfoMessage(_kt('The configuration settings have been updated.'));
  234 + // If the value in the post array is different from the current value, then update the DB
  235 + foreach ($currentSettings AS $setting){
  236 + $new = $newSettings[$setting['id']];
  237 +
  238 + if($setting['value'] != $new){
  239 + // Update the value
  240 + $res = DBUtil::autoUpdate('config_settings', array('value' => $new), $setting['id']);
  241 +
  242 + if(PEAR::isError($res)){
  243 + $this->addErrorMessage(_kt("The setting {$setting['display_name']} could not be updated: ".$res->getMessage()));
  244 + }
  245 + }
  246 + }
  247 +
  248 + // Clear the cached settings
  249 + $oKTConfig = new KTConfig();
  250 + $oKTConfig->clearCache();
  251 +
  252 + // Get the new settings from the DB
  253 + $currentSettings = $this->getSettings();
  254 + }
  255 + return $currentSettings;
  256 + }
128 257 }
129 258  
130 259 class UIConfigPageDispatcher extends BaseConfigDispatcher
131 260 {
132 261 function check() {
  262 + $this->category = 'User Interface Settings';
  263 + $this->name = _kt('User Interface Settings');
  264 +
133 265 $this->aBreadcrumbs[] = array(
134 266 'url' => $_SERVER['PHP_SELF'],
135   - 'name' => _kt('User Interface Settings'),
  267 + 'name' => $this->name
136 268 );
137 269 return parent::check();
138 270 }
139   -
140   - function do_main() {
141   -
142   - //get config settings from db
143   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where group_name = \'ui\'order by group_name';
144   - return parent::do_main($sQuery);
145   - }
146 271 }
147 272  
148 273 class ClientSettingsConfigPageDispatcher extends BaseConfigDispatcher
149 274 {
150 275 function check() {
  276 + $this->category = 'Client Tools Settings';
  277 + $this->name = _kt('Client Tools Settings');
  278 +
151 279 $this->aBreadcrumbs[] = array(
152 280 'url' => $_SERVER['PHP_SELF'],
153 281 'name' => _kt('Client Tools Settings'),
154 282 );
155 283 return parent::check();
156 284 }
157   -
158   - function do_main() {
159   -
160   - //get config settings from db
161   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where
162   - group_name = \'KTWebDAVSettings\' or group_name = \'BaobabSettings\' or
163   - group_name = \'webservice\' or group_name = \'clientToolPolicies\' order by group_name';
164   - return parent::do_main($sQuery);
165   - }
166 285 }
167 286  
168 287 class EmailConfigPageDispatcher extends BaseConfigDispatcher
169 288 {
170 289 function check() {
  290 + $this->category = 'Email Settings';
  291 + $this->name = _kt('Email Settings');
  292 +
171 293 $this->aBreadcrumbs[] = array(
172 294 'url' => $_SERVER['PHP_SELF'],
173 295 'name' => _kt('Email Settings'),
174 296 );
175 297 return parent::check();
176 298 }
177   -
178   - function do_main() {
179   -
180   - //get config settings from db
181   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where group_name = \'email\'order by group_name';
182   - return parent::do_main($sQuery);
183   - }
184 299 }
185 300  
186 301 class GeneralConfigPageDispatcher extends BaseConfigDispatcher
187 302 {
188 303 function check() {
  304 + $this->category = 'General Settings';
  305 + $this->name = _kt('General Settings');
  306 +
189 307 $this->aBreadcrumbs[] = array(
190 308 'url' => $_SERVER['PHP_SELF'],
191 309 'name' => _kt('General Settings'),
192 310 );
193 311 return parent::check();
194 312 }
195   -
196   - function do_main() {
197   -
198   - //get config settings from db
199   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where item = \'schedulerInterval\' or item = \'fakeMimetype\'
200   - or item = \'browseToUnitFolder\' or item = \'redirectToBrowse\' or item = \'redirectToBrowseExceptions\' order by group_name';
201   - return parent::do_main($sQuery);
202   - }
203 313 }
204 314  
205 315 class i18nConfigPageDispatcher extends BaseConfigDispatcher
206 316 {
207 317 function check() {
  318 + $this->category = 'Internationalisation Settings';
  319 + $this->name = _kt('Internationalisation Settings');
  320 +
208 321 $this->aBreadcrumbs[] = array(
209 322 'url' => $_SERVER['PHP_SELF'],
210 323 'name' => _kt('Internationalisation Settings'),
211 324 );
212 325 return parent::check();
213 326 }
214   -
215   - function do_main() {
216   -
217   - //get config settings from db
218   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where
219   - group_name = \'i18n\' order by group_name';
220   - return parent::do_main($sQuery);
221   - }
222 327 }
223 328  
224 329 class SearchAndIndexingConfigPageDispatcher extends BaseConfigDispatcher
225 330 {
226 331 function check() {
  332 + $this->category = 'Search and Indexing Settings';
  333 + $this->name = _kt('Search and Indexing Settings');
  334 +
227 335 $this->aBreadcrumbs[] = array(
228 336 'url' => $_SERVER['PHP_SELF'],
229 337 'name' => _kt('Search and Indexing Settings'),
230 338 );
231 339 return parent::check();
232 340 }
233   -
234   - function do_main() {
235   -
236   - //get config settings from db
237   - $sQuery = 'select id, group_name, item, type, value, helptext, default_value from config_settings where
238   - group_name = \'search\' or group_name = \'indexer\'order by group_name';
239   - return parent::do_main($sQuery);
240   - }
241 341 }
242 342 ?>
... ...
sql/mysql/install/data.sql
... ... @@ -132,124 +132,158 @@ LOCK TABLES `comment_searchable_text` WRITE;
132 132 UNLOCK TABLES;
133 133  
134 134 --
  135 +-- Dumping data for table `config_groups`
  136 +--
  137 +
  138 +LOCK TABLES `config_groups` WRITE;
  139 +/*!40000 ALTER TABLE `config_groups` DISABLE KEYS */;
  140 +INSERT INTO `config_groups` VALUES
  141 +(1, 'BaobabSettings', 'KnowledgeTree Tools Settings', 'KnowledgeTree Tools server configuration', 'Client Tools Settings'),
  142 +(2, 'browse', 'Browse View', 'Browse view configuration', 'User Interface Settings'),
  143 +(3, 'cache', 'Cache', 'KnowledgeTree cache configuration (Advanced users only)', 'General Settings'),
  144 +(4, 'clientToolPolicies', 'Client Tools Policies', 'Central policies for KnowledgeTree Tools', 'Client Tools Settings'),
  145 +(5, 'CustomErrorMessages', 'Custom Error Messages', 'Custom error message screen configuration (Advanced users only)', 'General Settings'),
  146 +(6, 'dashboard', 'Dashboard', 'Dashboard configuration', 'General Settings'),
  147 +(7, 'DiskUsage', 'Disk Usage Dashlet', 'Disk usage dashlet configuration', 'General Settings'),
  148 +(8, 'email', 'Email', 'System email configuration. Note that these setting are required by a number of features.', 'Email Settings'),
  149 +(9, 'export', 'Export', 'Export configuration', 'General Settings'),
  150 +(10, 'externalBinary', 'External Binaries', 'Paths to external binaries used by KnowledgeTree (Advanced users only)', 'General Settings'),
  151 +(11, 'i18n', 'Internationalization', 'Internationalization configuration', 'Internationalisation Settings'),
  152 +(12, 'import', 'Import', 'Import configuration.', 'Internationalisation Settings'),
  153 +(13, 'indexer', 'Document Indexer', 'Document indexer configuration (Advanced users only)', 'Search and Indexing Settings'),
  154 +(14, 'KnowledgeTree', 'KnowledgeTree', 'General server configuration', 'General Settings'),
  155 +(15, 'KTWebDAVSettings', 'WebDAV', 'Third-party WebDAV configuration', 'Client Tools Settings'),
  156 +(16, 'openoffice', 'OpenOffice.org Service', 'OpenOffice.org service configuration. Note that this service is used by a number of features within KnowledgeTree', 'Client Tools Settings'),
  157 +(17, 'search', 'Search', 'Search configuration.', 'Search and Indexing Settings'),
  158 +(18, 'session', 'Session Management', 'Session management configuration.', 'General Settings'),
  159 +(19, 'storage', 'Storage', 'KnowledgeTree Storage Manager configuration', 'General Settings'),
  160 +(20, 'tweaks', 'Tweaks', 'Small configuration tweaks', 'General Settings'),
  161 +(21, 'ui', 'User Interface', 'General user interface configuration', 'User Interface Settings'),
  162 +(22, 'urls', 'Urls', 'KnowledgeTree server and filesystem paths (Advanced users only).', 'User Interface Settings'),
  163 +(23, 'user_prefs', 'User Preferences', 'User interface preferences', 'User Interface Settings'),
  164 +(24, 'webservice', 'Web Services', 'KnowledgeTree Web Service Interface configuration. Note that a number of KnowledgeTree Tools rely on this service.', 'Client Tools Setting');
  165 +/*!40000 ALTER TABLE `config_groups` ENABLE KEYS */;
  166 +UNLOCK TABLES;
  167 +
  168 +--
135 169 -- Dumping data for table `config_settings`
136 170 --
137 171  
138 172 LOCK TABLES `config_settings` WRITE;
139 173 /*!40000 ALTER TABLE `config_settings` DISABLE KEYS */;
140 174 INSERT INTO `config_settings` VALUES
141   -(1,'ui','appName','','KnowledgeTree','OEM application name','KnowledgeTree',1),
142   -(2,'KnowledgeTree','schedulerInterval','','30','','30',1),
143   -(3,'dashboard','alwaysShowYCOD','boolean','default','Display the \"Your Checked-out Documents\" dashlet even when empty.','0',1),
144   -(4,'urls','graphicsUrl','','${rootUrl}/graphics','','${rootUrl}/graphics',1),
145   -(5,'urls','uiUrl','','${rootUrl}/presentation/lookAndFeel/knowledgeTree','','${rootUrl}/presentation/lookAndFeel/knowledgeTree',1),
146   -(6,'tweaks','browseToUnitFolder','boolean','default','Whether to browse to the user\'s (first) unit when first going to the browse section.','0',1),
147   -(7,'tweaks','genericMetaDataRequired','boolean','1','','1',1),
148   -(8,'tweaks','developmentWindowLog','boolean','0','','0',1),
149   -(9,'tweaks','noisyBulkOperations','boolean','default','Whether bulk operations should generate a transaction notice on each ; item, or only on the folder. Default of \"false\" indicates that only the folder transaction should occur.','0',1),
150   -(10,'email','emailServer','','none','','none',1),
151   -(11,'email','emailPort','','default','','',1),
152   -(12,'email','emailAuthentication','boolean','0','Do you need auth to connect to SMTP?\r\n','0',1),
153   -(13,'email','emailUsername','','username','','username',1),
154   -(14,'email','emailPassword','','password','','password',1),
155   -(15,'email','emailFrom','','kt@example.org','','kt@example.org',1),
156   -(16,'email','emailFromName','','KnowledgeTree Document Management System','','KnowledgeTree Document Management System',1),
157   -(17,'email','allowAttachment','boolean','default','Set to true to allow users to send attachments from the document\r\n management system\r\n.','0',1),
158   -(18,'email','allowEmailAddresses','boolean','default','Set to true to allow users to send to any email address, as opposed to\r\n only users of the system\r\n.','0',1),
159   -(19,'email','sendAsSystem','boolean','default','Set to true to always send email from the emailFrom address listed above, even if there is an identifiable sending user\r\n.','0',1),
160   -(20,'email','onlyOwnGroups','boolean','default','Set to true to only allow users to send emails to those in the same\r\n groups as them\r\n.','0',1),
161   -(21,'user_prefs','passwordLength','','6','Minimum password length on password-setting\r\n','6',1),
162   -(22,'user_prefs','restrictAdminPasswords','boolean','default','Apply the minimum password length to admin while creating / editing accounts?\r\n default is set to \"false\" meaning that admins can create users with shorter passwords.\r\n','0',1),
163   -(23,'user_prefs','restrictPreferences','boolean','0','Restrict users from accessing their preferences menus?\r\n','0',1),
164   -(24,'session','sessionTimeout','','1200','Session timeout (in seconds)\r\n','1200',1),
165   -(25,'session','allowAnonymousLogin','boolean','0','By default, do not auto-login users as anonymous.\r\n Set this to true if you UNDERSTAND the security system that KT\r\n uses, and have sensibly applied the roles \"Everyone\" and \"Authenticated Users\".\r\n','0',1),
166   -(26,'ui','companyLogo','','${rootUrl}/resources/companylogo.png','Add the logo of your company to the site\'s appearance. This logo MUST be 50px tall, and on a white background.\r\n','${rootUrl}/resources/companylogo.png',1),
167   -(27,'ui','companyLogoWidth','','313px','The logo\'s width in pixels\r\n','313px',1),
168   -(28,'ui','companyLogoTitle','','ACME Corporation','ALT text - for accessibility purposes.\r\n','ACME Corporation',1),
169   -(29,'ui','alwaysShowAll','boolean','0','Do not restrict to searches (e.g. always show_all) on users and groups pages.\r\n','0',1),
170   -(30,'ui','condensedAdminUI','boolean','0','Use a condensed admin ui\r\n?','0',1),
171   -(31,'ui','fakeMimetype','boolean','0','Allow \"open\" from downloads. Changing this to \"true\" will prevent (most)\r\n browsers from giving users the \"open\" option.\r\n','0',1),
172   -(32,'ui','metadata_sort','boolean','0','Sort the metadata fields alphabetically\r\n','1',1),
173   -(33,'i18n','useLike','boolean','default','If your language doesn\'t have distinguishable words (usually, doesn\'t\r\n have a space character), set useLike to true to use a search that can\r\n deal with this, but which is slower.\r\n','0',1),
174   -(34,'import','unzip','','unzip','Unzip command - will use execSearchPath to find if the path to the binary is not given\r\n.','unzip',1),
175   -(35,'export','zip','','zip','Zip command - will use execSearchPath to find if the path to the\r\n binary is not given\r\n.','zip',1),
176   -(36,'externalBinary','xls2csv','','xls2csv','','xls2csv',1),
177   -(37,'externalBinary','pdftotext','','pdftotext','','pdftotext',1),
178   -(38,'externalBinary','catppt','','catppt','','catppt',1),
179   -(39,'externalBinary','pstotext','','pstotext','','pstotext',1),
180   -(40,'externalBinary','catdoc','','catdoc','','catdoc',1),
181   -(41,'externalBinary','antiword','','antiword','','antiword',1),
182   -(42,'externalBinary','python','','python','','python',1),
183   -(43,'externalBinary','java','','java','','java',1),
184   -(44,'externalBinary','php','','php','','php',1),
185   -(45,'externalBinary','df','','df','','df',1),
186   -(46,'cache','proxyCacheDirectory','','${varDirectory}/proxies','','${varDirectory}/proxies',1),
187   -(47,'cache','proxyCacheEnabled','boolean','1','','1',1),
188   -(48,'KTWebDAVSettings','debug','','off','This section is for KTWebDAV only, _LOTS_ of debug info will be logged if the following is \"on\"\r\n','off',1),
189   -(49,'KTWebDAVSettings','safemode','','on','To allow write access to WebDAV clients set safe mode to \"off\".','on',1),
190   -(50,'BaobabSettings','debug','','off','This section is for Baobab only\r\n, _LOTS_ of debug info will be logged if the following is \"on\"\r\n.','off',1),
191   -(51,'BaobabSettings','safemode','','on','To allow write access to WebDAV clients set safe mode to \"off\" below\r\n.','on',1),
192   -(52,'search','searchBasePath','','${fileSystemRoot}/search2','','${fileSystemRoot}/search2',1),
193   -(53,'search','fieldsPath','','${searchBasePath}/search/fields','','${searchBasePath}/search/fields',1),
194   -(54,'search','resultsDisplayFormat','','searchengine','The format in which to display the results\r\n options are searchengine or browseview defaults to searchengine\r\n.','searchengine',1),
195   -(55,'search','resultsPerPage','','50','The number of results per page\r\n, defaults to 25\r\n','25',1),
196   -(56,'search','dateFormat','','Y-m-d','The date format used when making queries using widgets\r\n, defaults to Y-m-d\r\n','Y-m-d',1),
197   -(57,'browse','previewActivation','','default','The document info box / preview is activated by mousing over or clicking on the icon\r\n. Options: onclick (default) or mouse-over\r\n.','onclick',1),
198   -(58,'indexer','coreClass','','JavaXMLRPCLuceneIndexer','The core indexing class\r\n. Choices: JavaXMLRPCLuceneIndexer or PHPLuceneIndexer.','JavaXMLRPCLuceneIndexer',1),
199   -(59,'indexer','batchDocuments','','20','The number of documents to be indexed in a cron session, defaults to 20\r\n.','20',1),
200   -(60,'indexer','batchMigrateDocuments','','500','The number of documents to be migrated in a cron session, defaults to 500\r\n.','500',1),
201   -(61,'indexer','indexingBasePath','','${searchBasePath}/indexing','','${searchBasePath}/indexing',1),
202   -(62,'indexer','luceneDirectory','','${varDirectory}/indexes','The location of the lucene indexes\r\n.','${varDirectory}/indexes',1),
203   -(63,'indexer','extractorPath','','${indexingBasePath}/extractors','','${indexingBasePath}/extractors',1),
204   -(64,'indexer','extractorHookPath','','${indexingBasePath}/extractorHooks','','${indexingBasePath}/extractorHooks',1),
205   -(65,'indexer','javaLuceneURL','','http://127.0.0.1:8875','The url for the Java Lucene Server. This should match up the the Lucene Server configuration. Defaults to http://127.0.0.1:8875\r\n','http://127.0.0.1:8875',1),
206   -(66,'openoffice','host','','default','The host on which open office is installed\r\n. Defaults to 127.0.0.1\r\n','127.0.0.1',1),
207   -(67,'openoffice','port','','default','The port on which open office is listening. Defaults to 8100\r\n','8100',1),
208   -(68,'webservice','uploadDirectory','','${varDirectory}/uploads','Directory to which all uploads via webservices are persisted before moving into the repository\r\n.','${varDirectory}/uploads',1),
209   -(69,'webservice','downloadUrl','','${rootUrl}/ktwebservice/download.php','Url which is sent to clients via web service calls so they can then download file via HTTP GET\r\n.','${rootUrl}/ktwebservice/download.php',1),
210   -(70,'webservice','uploadExpiry','','30','Period indicating how long a file should be retained in the uploads directory.\r\n','30',1),
211   -(71,'webservice','downloadExpiry','','30','Period indicating how long a download link will be available.','30',1),
212   -(72,'webservice','randomKeyText','','bkdfjhg23yskjdhf2iu','Random text used to construct a hash. This can be customised on installations so there is less chance of overlap between installations.\r\n','bkdfjhg23yskjdhf2iu',1),
213   -(73,'webservice','validateSessionCount','boolean','0','Validating session counts can interfere with access. It is best to leave this disabled, unless very strict access is required.\r\n','0',1),
214   -(74,'webservice','useDefaultDocumentTypeIfInvalid','boolean','1','If the document type is invalid when adding a document, we can be tollerant and just default to the Default document type.\r\n','1',1),
215   -(75,'webservice','debug','boolean','0','The web service debugging if the logLevel is set to DEBUG. We can set the value to 4 or 5 to get more verbose web service logging.\r\n Level 4 logs the name of functions being accessed. Level 5 logs the SOAP XML requests and responses.\r\n','0',1),
216   -(76,'clientToolPolicies','explorerMetadataCapture','boolean','1','This setting is one of two which control whether or not the client is prompted for metadata when a\r\n document is added to knowledgetree via KTtools. It defaults to true.\r\n','1',1),
217   -(77,'clientToolPolicies','officeMetadataCapture','boolean','1','This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.','1',1),
218   -(78,'clientToolPolicies','captureReasonsDelete','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
219   -(79,'clientToolPolicies','captureReasonsCheckin','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
220   -(80,'clientToolPolicies','captureReasonsCheckout','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
221   -(81,'clientToolPolicies','captureReasonsCancelCheckout','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
222   -(82,'clientToolPolicies','captureReasonsCopyInKT','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
223   -(83,'clientToolPolicies','captureReasonsMoveInKT','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
224   -(84,'clientToolPolicies','allowRememberPassword','boolean','1','This setting governs whether the password can be stored on the client or not.','1',1),
225   -(85,'DiskUsage','warningThreshold','','10','When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in ORANGE\r\n.','10',1),
226   -(86,'DiskUsage','urgentThreshold','','5','When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in RED\r\n.','5',1),
227   -(87,'KnowledgeTree','useNewDashboard','','default','','1',1),
228   -(88,'i18n','defaultLanguage','','en','Default language for the interface\r\n.','en',1),
229   -(89,'CustomErrorMessages','customerrormessages','','off','Turn custom error messages on or off here','on',1),
230   -(90,'CustomErrorMessages','customerrorpagepath','','customerrorpage.php','Name or url of custom error page\r\n.','customerrorpage.php',1),
231   -(91,'CustomErrorMessages','customerrorhandler','','off','Turn custom error handler on or off','on',1),
232   -(92,'ui','morphEnabled','boolean','0','Enable Morph','0',1),
233   -(93,'ui','morphTo','','blue','Morph Theme\r\n','blue',1),
234   -(94,'KnowledgeTree','logLevel','','default','Choice: INFO or DEBUG','INFO',1),
235   -(95,'storage','manager','','default','','KTOnDiskHashedStorageManager',1),
236   -(96,'ui','ieGIF','boolean','0','','1',1),
237   -(97,'ui','automaticRefresh','boolean','0','','0',1),
238   -(98,'ui','dot','','dot','','dot',1),
239   -(99,'tweaks','phpErrorLogFile','boolean','default','If you want to enable PHP error logging to the log/php_error_log file, change this setting to true\r\n.','0',1),
240   -(100,'urls','logDirectory','','default','','${varDirectory}/log',1),
241   -(101,'urls','uiDirectory','','default','','${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree',1),
242   -(102,'urls','tmpDirectory','','default','','${varDirectory}/tmp',1),
243   -(103,'urls','stopwordsFile','','default','','${fileSystemRoot}/config/stopwords.txt',1),
244   -(104,'cache','cacheEnabled','boolean','default','','0',1),
245   -(105,'cache','cacheDirectory','','default','','${varDirectory}/cache',1),
246   -(106,'cache','cachePlugins','boolean','default','','1',1),
247   -(107,'urls','varDirectory','','default','','${fileSystemRoot}/var',1),
248   -(108,'urls','documentRoot','','default','','${varDirectory}/Documents',0),
249   -(109,'KnowledgeTree','redirectToBrowse','boolean','default','set to true to redirect to browse screen ','0',1),
250   -(110,'KnowledgeTree','redirectToBrowseExceptions','','default','if redirectToBrowse is true, adding usernames to this list will force specific users to be redirected to dashboard e.g. \r\nredirectToBrowseExceptions = admin, joebloggs ','',1),
251   -(111,'openoffice','programPath','','default','The Open Office program directory.','../openoffice/program',1);
252   -
  175 +(1, 'ui', 'OEM Application Name', 'For use by KnowledgeTree OEM partners.', 'appName', 'KnowledgeTree', 'KnowledgeTree', '', NULL, 1),
  176 +(2, 'KnowledgeTree', 'Scheduler Interval', 'Set the frequency of the core scheduler.', 'schedulerInterval', 'default', '30', 'numeric_string', 'a:2:{s:7:"options";a:7:{i:0;a:2:{s:5:"label";i:30;s:5:"value";i:30;}i:1;a:2:{s:5:"label";i:60;s:5:"value";i:60;}i:2;a:2:{s:5:"label";i:120;s:5:"value";i:120;}i:3;a:2:{s:5:"label";i:300;s:5:"value";i:300;}i:4;a:2:{s:5:"label";i:600;s:5:"value";i:600;}i:5;a:2:{s:5:"label";i:1800;s:5:"value";i:1800;}i:6;a:2:{s:5:"label";i:3600;s:5:"value";i:3600;}}s:6:"append";s:7:"seconds";}', 1),
  177 +(3, 'dashboard', 'alwaysShowYCOD', 'Display the "Your Checked-out Documents" dashlet even when empty.', 'alwaysShowYCOD', 'default', 'false', 'boolean', NULL, 1),
  178 +(4, 'urls', 'Graphics Url', 'Path to user interface graphics', 'graphicsUrl', 'default', '${rootUrl}/graphics', '', NULL, 1),
  179 +(5, 'urls', 'User Interface Url', 'Path to core user interface libraries', 'uiUrl', 'default', '${rootUrl}/presentation/lookAndFeel/knowledgeTree', '', NULL, 1),
  180 +(6, 'tweaks', 'Browse to unit folder', 'Whether to browse to the user''s (first) unit when first going to the browse section.', 'browseToUnitFolder', 'default', 'false', 'boolean', NULL, 1),
  181 +(7, 'tweaks', 'Generic Metadata Required', '', 'genericMetaDataRequired', 'default', 'true', 'boolean', NULL, 1),
  182 +(8, 'tweaks', 'Development Window Log', '', 'developmentWindowLog', 'default', 'false', 'boolean', NULL, 1),
  183 +(9, 'tweaks', 'Noisy Bulk Operations', 'Whether bulk operations should generate a transaction notice on each ; item, or only on the folder. Default of "false" indicates that only the folder transaction should occur.', 'noisyBulkOperations', 'default', 'false', 'boolean', NULL, 1),
  184 +(10, 'email', 'Email Server', 'Address to SMTP server. Try IP address if host name does not work.', 'emailServer', 'none', 'none', '', NULL, 1),
  185 +(11, 'email', 'Email Port', 'SMTP server port', 'emailPort', 'default', '', 'numeric_string', NULL, 1),
  186 +(12, 'email', 'Email Authentication', 'Do you need auth to connect to SMTP?', 'emailAuthentication', 'default', 'false', 'boolean', NULL, 1),
  187 +(13, 'email', 'Email Username', 'Email server username', 'emailUsername', 'default', 'username', '', NULL, 1),
  188 +(14, 'email', 'Email Password', 'Email server password', 'emailPassword', 'default', 'password', '', NULL, 1),
  189 +(15, 'email', 'Email From', 'Email address from which system emails will be sent', 'emailFrom', 'default', 'kt@example.org', '', NULL, 1),
  190 +(16, 'email', 'Email From Name', 'Email from name', 'emailFromName', 'default', 'KnowledgeTree Document Management System', '', NULL, 1),
  191 +(17, 'email', 'Allow Attachment', 'Set to true to allow users to send attachments from the document management system.', 'allowAttachment', 'default', 'false', 'boolean', NULL, 1),
  192 +(18, 'email', 'Allow External Email Addresses', 'Set to true to allow users to send to any email address, as opposed to only users of the system.', 'allowEmailAddresses', 'default', 'false', 'boolean', NULL, 1),
  193 +(19, 'email', 'Send As System', 'Set to true to always send email from the emailFrom address listed above, even if there is an identifiable sending user.', 'sendAsSystem', 'default', 'false', 'boolean', NULL, 1),
  194 +(20, 'email', 'Only Own Groups', 'Set to true to only allow users to send emails to those in the same groups as them.', 'onlyOwnGroups', 'default', 'false', 'boolean', NULL, 1),
  195 +(21, 'user_prefs', 'Password Length', 'Minimum password length on password-setting', 'passwordLength', 'default', '6', 'numeric_string', NULL, 1),
  196 +(22, 'user_prefs', 'Restrict Admin Passwords', 'Apply the minimum password length to admin while creating / editing accounts? default is set to "false" meaning that admins can create users with shorter passwords.', 'restrictAdminPasswords', 'default', 'false', 'boolean', NULL, 1),
  197 +(23, 'user_prefs', 'Restrict Preferences', 'Restrict users from accessing their preferences menus?', 'restrictPreferences', 'default', 'false', 'boolean', NULL, 1),
  198 +(24, 'session', 'Session Timeout', 'Session timeout (in seconds)', 'sessionTimeout', 'default', '1200', 'numeric_string', 'a:2:{s:7:"options";a:4:{i:0;a:2:{s:5:"label";i:1200;s:5:"value";i:1200;}i:1;a:2:{s:5:"label";i:1800;s:5:"value";i:1800;}i:2;a:2:{s:5:"label";i:3600;s:5:"value";i:3600;}i:3;a:2:{s:5:"label";i:7200;s:5:"value";i:7200;}}s:6:"append";s:7:"seconds";}', 1),
  199 +(25, 'session', 'Anonymous Login', 'By default, do not auto-login users as anonymous. Set this to true if you UNDERSTAND the security system that KT uses, and have sensibly applied the roles "Everyone" and "Authenticated Users".', 'allowAnonymousLogin', 'default', 'false', 'boolean', NULL, 1),
  200 +(26, 'ui', 'Company Logo', 'Add the logo of your company to the site''s appearance. This logo MUST be 50px tall, and on a white background.', 'companyLogo', 'default', '${rootUrl}/resources/companylogo.png', '', NULL, 1),
  201 +(27, 'ui', 'Company Logo Width', 'The logo''s width in pixels', 'companyLogoWidth', 'default', '313px', '', NULL, 1),
  202 +(28, 'ui', 'Company Logo Title', 'ALT text - for accessibility purposes.', 'companyLogoTitle', 'default', 'ACME Corporation', '', NULL, 1),
  203 +(29, 'ui', 'Always Show All Results', 'Do not restrict to searches (e.g. always show_all) on users and groups pages.', 'alwaysShowAll', 'default', 'false', 'boolean', NULL, 1),
  204 +(30, 'ui', 'Condensed Admin UI', 'Use a condensed admin ui?', 'condensedAdminUI', 'default', 'false', 'boolean', NULL, 1),
  205 +(31, 'ui', 'Fake Mimetype', 'Allow "open" from downloads. Changing this to "true" will prevent (most) browsers from giving users the "open" option.', 'fakeMimetype', 'default', 'false', 'boolean', NULL, 1),
  206 +(32, 'ui', 'Sort Metadata', 'Sort the metadata fields alphabetically', 'metadata_sort', 'default', 'true', 'boolean', NULL, 1),
  207 +(33, 'i18n', 'UseLike', 'If your language doesn''t have distinguishable words (usually, doesn''t have a space character), set useLike to true to use a search that can deal with this, but which is slower.', 'useLike', 'default', 'false', 'boolean', NULL, 1),
  208 +(34, 'import', 'unzip', 'Unzip command - will use execSearchPath to find if the path to the binary is not given.', 'unzip', 'default', 'unzip', '', NULL, 1),
  209 +(35, 'export', 'zip', 'Zip command - will use execSearchPath to find if the path to the binary is not given.', 'zip', 'default', 'zip', '', NULL, 1),
  210 +(36, 'externalBinary', 'xls2csv', 'Path to binary', 'xls2csv', 'default', 'xls2csv', '', NULL, 1),
  211 +(37, 'externalBinary', 'pdftotext', 'Path to binary', 'pdftotext', 'default', 'pdftotext', '', NULL, 1),
  212 +(38, 'externalBinary', 'catppt', 'Path to binary', 'catppt', 'default', 'catppt', '', NULL, 1),
  213 +(39, 'externalBinary', 'pstotext', 'Path to binary', 'pstotext', 'default', 'pstotext', '', NULL, 1),
  214 +(40, 'externalBinary', 'catdoc', 'Path to binary', 'catdoc', 'default', 'catdoc', '', NULL, 1),
  215 +(41, 'externalBinary', 'antiword', 'Path to binary', 'antiword', 'default', 'antiword', '', NULL, 1),
  216 +(42, 'externalBinary', 'python', 'Path to binary', 'python', 'default', 'python', '', NULL, 1),
  217 +(43, 'externalBinary', 'java', 'Path to binary', 'java', 'default', 'java', '', NULL, 1),
  218 +(44, 'externalBinary', 'php', 'Path to binary', 'php', 'default', 'php', '', NULL, 1),
  219 +(45, 'externalBinary', 'df', 'Path to binary', 'df', 'default', 'df', '', NULL, 1),
  220 +(46, 'cache', 'Proxy Cache Path', 'Path to KnowledgeTree Cache. Default is <var directory>/cache.', 'proxyCacheDirectory', 'default', '${varDirectory}/proxies', '', NULL, 1),
  221 +(47, 'cache', 'Proxy Cache Enabled', 'Enable cache. Note that the cache is disabled by default and enabling it may degrade performance.', 'proxyCacheEnabled', 'default', 'true', 'boolean', NULL, 1),
  222 +(48, 'KTWebDAVSettings', 'Debug', 'This section is for KTWebDAV only, _LOTS_ of debug info will be logged if the following is "on"', 'debug', 'off', 'off', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  223 +(49, 'KTWebDAVSettings', 'Safemode', 'To allow write access to WebDAV clients set safe mode to "off".', 'safemode', 'on', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  224 +(50, 'BaobabSettings', 'Debug', 'This section is for Baobab only, _LOTS_ of debug info will be logged if the following is "on".', 'debug', 'off', 'off', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  225 +(51, 'BaobabSettings', 'Safemode', 'To allow write access to WebDAV clients set safe mode to "off" below.', 'safemode', 'on', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  226 +(52, 'search', 'Search Base Path', 'Path to search and indexing libraries', 'searchBasePath', 'default', '${fileSystemRoot}/search2', '', NULL, 1),
  227 +(53, 'search', 'Fields Path', 'Path to search and indexing fields', 'fieldsPath', 'default', '${searchBasePath}/search/fields', '', NULL, 1),
  228 +(54, 'search', 'Results Display Format', 'The format in which to display the results options are searchengine or browseview defaults to searchengine.', 'resultsDisplayFormat', 'default', 'searchengine', 'dropdown', 'a:1:{s:7:"options";a:2:{i:0;a:2:{s:5:"label";s:19:"Search Engine Style";s:5:"value";s:12:"searchengine";}i:1;a:2:{s:5:"label";s:17:"Browse View Style";s:5:"value";s:10:"browseview";}}}', 1),
  229 +(55, 'search', 'Results Per Page', 'The number of results per page, defaults to 25', 'resultsPerPage', 'default', '25', 'numeric_string', NULL, 1),
  230 +(56, 'search', 'Date Format', 'The date format used when making queries using widgets, defaults to Y-m-d', 'dateFormat', 'default', 'Y-m-d', '', NULL, 1),
  231 +(57, 'browse', 'Preview Activation', 'The document info box / preview is activated by mousing over or clicking on the icon. Options: mouse-over (default) or onclick.', 'previewActivation', 'default', 'onclick', 'dropdown', 'a:1:{s:7:"options";a:2:{i:0;a:2:{s:5:"label";s:10:"Mouse Over";s:5:"value";s:10:"mouse-over";}i:1;a:2:{s:5:"label";s:8:"On Click";s:5:"value";s:7:"onclick";}}}', 1),
  232 +(58, 'indexer', 'Core Class', 'The core indexing class. Choices: JavaXMLRPCLuceneIndexer or PHPLuceneIndexer.', 'coreClass', 'default', 'JavaXMLRPCLuceneIndexer', '', NULL, 1),
  233 +(59, 'indexer', 'Batch Documents', 'The number of documents to be indexed in a cron session, defaults to 20.', 'batchDocuments', 'default', '20', 'numeric_string', 'a:3:{s:9:"increment";i:10;s:7:"minimum";i:20;s:7:"maximum";i:200;}', 1),
  234 +(60, 'indexer', 'Batch Migrate Documents', 'The number of documents to be migrated in a cron session, defaults to 500.', 'batchMigrateDocuments', 'default', '500', 'numeric_string', NULL, 1),
  235 +(61, 'indexer', 'Indexing Base Path', 'Path to indexing engine', 'indexingBasePath', 'default', '${searchBasePath}/indexing', '', NULL, 1),
  236 +(62, 'indexer', 'Lucene Directory', 'The location of the lucene indexes.', 'luceneDirectory', 'default', '${varDirectory}/indexes', '', NULL, 1),
  237 +(63, 'indexer', 'Extractor Path', 'Path to text extractors', 'extractorPath', 'default', '${indexingBasePath}/extractors', '', NULL, 1),
  238 +(64, 'indexer', 'Extractor Hook Path', 'Path to extractor hooks', 'extractorHookPath', 'default', '${indexingBasePath}/extractorHooks', '', NULL, 1),
  239 +(65, 'indexer', 'Java Lucene URL', 'The url for the Java Lucene Server. This should match up the the Lucene Server configuration. Defaults to http://127.0.0.1:8875', 'javaLuceneURL', 'default', 'http://127.0.0.1:8875', '', NULL, 1),
  240 +(66, 'openoffice', 'Host', 'The host on which open office is installed. Defaults to 127.0.0.1', 'host', 'default', '127.0.0.1', '', NULL, 1),
  241 +(67, 'openoffice', 'Port', 'The port on which open office is listening. Defaults to 8100', 'port', 'default', '8100', 'numeric_string', NULL, 1),
  242 +(68, 'webservice', 'Upload Directory', 'Directory to which all uploads via webservices are persisted before moving into the repository.', 'uploadDirectory', 'default', '${varDirectory}/uploads', '', NULL, 1),
  243 +(69, 'webservice', 'Download Url', 'Url which is sent to clients via web service calls so they can then download file via HTTP GET.', 'downloadUrl', 'default', '${rootUrl}/ktwebservice/download.php', '', NULL, 1),
  244 +(70, 'webservice', 'Upload Expiry', 'Period indicating how long a file should be retained in the uploads directory.', 'uploadExpiry', 'default', '30', 'numeric_string', 'a:1:{s:6:"append";s:7:"seconds";}', 1),
  245 +(71, 'webservice', 'Download Expiry', 'Period indicating how long a download link will be available.', 'downloadExpiry', 'default', '30', 'numeric_string', 'a:1:{s:6:"append";s:7:"seconds";}', 1),
  246 +(72, 'webservice', 'Random Key Text', 'Random text used to construct a hash. This can be customised on installations so there is less chance of overlap between installations.', 'randomKeyText', 'default', 'bkdfjhg23yskjdhf2iu', '', NULL, 1),
  247 +(73, 'webservice', 'Validate Session Count', 'Validating session counts can interfere with access. It is best to leave this disabled, unless very strict access is required.', 'validateSessionCount', 'false', 'false', 'boolean', NULL, 1),
  248 +(74, 'webservice', 'Use Default Document Type If Invalid', 'If the document type is invalid when adding a document, we can be tollerant and just default to the Default document type.', 'useDefaultDocumentTypeIfInvalid', 'true', 'true', 'boolean', NULL, 1),
  249 +(75, 'webservice', 'Debug', 'The web service debugging if the logLevel is set to DEBUG. We can set the value to 4 or 5 to get more verbose web service logging. Level 4 logs the name of functions being accessed. Level 5 logs the SOAP XML requests and responses.', 'debug', 'false', 'false', 'boolean', NULL, 1),
  250 +(76, 'clientToolPolicies', 'Explorer: Metadata Capture', 'This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.', 'explorerMetadataCapture', 'true', 'true', 'boolean', NULL, 1),
  251 +(77, 'clientToolPolicies', 'Office: Metadata Capture', 'This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.', 'officeMetadataCapture', 'true', 'true', 'boolean', NULL, 1),
  252 +(78, 'clientToolPolicies', 'Capture Reasons: Delete', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsDelete', 'true', 'true', 'boolean', NULL, 1),
  253 +(79, 'clientToolPolicies', 'Capture Reasons: Checkin', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCheckin', 'true', 'true', 'boolean', NULL, 1),
  254 +(80, 'clientToolPolicies', 'Capture Reasons: Checkout', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCheckout', 'true', 'true', 'boolean', NULL, 1),
  255 +(81, 'clientToolPolicies', 'Capture Reasons: Cancel Checkout', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCancelCheckout', 'true', 'true', 'boolean', NULL, 1),
  256 +(82, 'clientToolPolicies', 'Capture Reasons: Copy', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCopyInKT', 'true', 'true', 'boolean', NULL, 1),
  257 +(83, 'clientToolPolicies', 'Capture Reasons: Move', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsMoveInKT', 'true', 'true', 'boolean', NULL, 1),
  258 +(84, 'clientToolPolicies', 'Allow Remember Password', 'This setting governs whether the password can be stored on the client or not.', 'allowRememberPassword', 'true', 'true', 'boolean', NULL, 1),
  259 +(85, 'DiskUsage', 'Warning Threshold', 'When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in ORANGE.', 'warningThreshold', '10', '10', 'numeric_string', 'a:1:{s:6:"append";s:1:"%";}', 1),
  260 +(86, 'DiskUsage', 'Urgent Threshold', 'When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in RED.', 'urgentThreshold', '5', '5', 'numeric_string', 'a:1:{s:6:"append";s:1:"%";}', 1),
  261 +(87, 'KnowledgeTree', 'Use AJAX Dashboard', 'User AJAX dashboard with rounded corners and draggable dashlets.', 'useNewDashboard', 'true', 'true', 'boolean', NULL, 1),
  262 +(88, 'i18n', 'Default Language', 'Default language for the interface.', 'defaultLanguage', 'default', 'en', 'string', NULL, 1),
  263 +(89, 'CustomErrorMessages', 'Custom Error Messages', 'Turn custom error messages on or off here', 'customerrormessages', 'default', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  264 +(90, 'CustomErrorMessages', 'Custom Error Page Path', 'Name or url of custom error page.', 'customerrorpagepath', 'default', 'customerrorpage.php', '', NULL, 1),
  265 +(91, 'CustomErrorMessages', 'Custom Error Handler', 'Turn custom error handler on or off', 'customerrorhandler', 'default', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  266 +(92, 'ui', 'Skinning Enabled', 'Enable Skinning', 'morphEnabled', 'default', 'false', 'boolean', NULL, 1),
  267 +(93, 'ui', 'Default Skin', 'Enter a default skin', 'morphTo', 'default', 'blue', '', NULL, 1),
  268 +(94, 'KnowledgeTree', 'Log Level', 'Choice: INFO or DEBUG', 'logLevel', 'default', 'INFO', 'dropdown', 'a:1:{s:7:"options";a:4:{i:0;a:2:{s:5:"label";s:4:"INFO";s:5:"value";s:4:"INFO";}i:1;a:2:{s:5:"label";s:4:"WARN";s:5:"value";s:4:"WARN";}i:2;a:2:{s:5:"label";s:5:"ERROR";s:5:"value";s:5:"ERROR";}i:3;a:2:{s:5:"label";s:5:"DEBUG";s:5:"value";s:5:"DEBUG";}}}', 1),
  269 +(95, 'storage', 'Manager', 'KnowledgeTree Storage manager. Default is KTOnDiskHashedStorageManager.', 'manager', 'default', 'KTOnDiskHashedStorageManager', '', NULL, 1),
  270 +(96, 'ui', 'ieGIF', 'Use the additional IE specific GIF theme overrides. Using this means that arbitrary theme packs may not work without having GIF versions available. ', 'ieGIF', 'false', 'true', 'boolean', NULL, 1),
  271 +(97, 'ui', 'Automatic Refresh', 'Set to true to automatically refresh the page after the session would have expired.', 'automaticRefresh', 'default', 'false', 'boolean', NULL, 1),
  272 +(98, 'ui', 'dot', 'Path to dot binary', 'dot', 'dot', 'dot', '', NULL, 1),
  273 +(99, 'tweaks', 'Php Error Log File', 'If you want to enable PHP error logging to the log/php_error_log file, change this setting to true.', 'phpErrorLogFile', 'default', 'false', 'boolean', NULL, 1),
  274 +(100, 'urls', 'Log Directory', 'Path to log directory', 'logDirectory', 'default', '${varDirectory}/log', '', NULL, 1),
  275 +(101, 'urls', 'UI Directory', 'Path to UI directory', 'uiDirectory', 'default', '${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree', '', NULL, 1),
  276 +(102, 'urls', 'Temp Directory', 'Path to temp directory', 'tmpDirectory', 'default', '${varDirectory}/tmp', '', NULL, 1),
  277 +(103, 'urls', 'Stopwords File', 'Path to stopword file', 'stopwordsFile', 'default', '${fileSystemRoot}/config/stopwords.txt', '', NULL, 1),
  278 +(104, 'cache', 'Cache Enabled', 'Plugin cache configuration', 'cacheEnabled', 'default', 'false', 'boolean', NULL, 1),
  279 +(105, 'cache', 'Cache Directory', 'Plugin cache path', 'cacheDirectory', 'default', '${varDirectory}/cache', '', NULL, 1),
  280 +(106, 'cache', 'Cache Plugins', 'Plugins cache', 'cachePlugins', 'default', 'true', 'boolean', NULL, 1),
  281 +(107, 'urls', 'Var Directory', 'Path to var directory', 'varDirectory', 'default', '${fileSystemRoot}/var', '', NULL, 1),
  282 +(108, 'openoffice', 'Program Path', 'The Open Office program directory.', 'programPath', 'default', '../openoffice/program', 'string', NULL, 1),
  283 +(109, 'urls', 'documentRoot', '', 'documentRoot', 'default', '${varDirectory}/Documents', '', NULL, 0),
  284 +(110, 'KnowledgeTree', 'redirectToBrowse', 'set to true to redirect to browse screen ', 'redirectToBrowse', 'default', 'false', 'boolean', NULL, 1),
  285 +(111, 'KnowledgeTree', 'redirectToBrowseExceptions', 'if redirectToBrowse is true, adding usernames to this list will force specific users to be redirected to dashboard e.g. redirectToBrowseExceptions = admin, joebloggs ', 'redirectToBrowseExceptions', 'default', '', '', NULL, 1),
  286 +(112, 'session', 'Allow automatic sign in', 'If a user doesn''t exist in the system, the account will be created on first login.', 'allowAutoSignup', 'default', 'false', 'boolean', '', 1);
253 287 /*!40000 ALTER TABLE `config_settings` ENABLE KEYS */;
254 288 UNLOCK TABLES;
255 289  
... ...
sql/mysql/install/structure.sql
... ... @@ -157,17 +157,33 @@ CREATE TABLE `comment_searchable_text` (
157 157 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
158 158  
159 159 --
  160 +-- Table structure for table `config_groups`
  161 +--
  162 +
  163 +CREATE TABLE `config_groups` (
  164 + `id` int(255) unsigned NOT NULL auto_increment,
  165 + `name` varchar(255) NOT NULL,
  166 + `display_name` varchar(255),
  167 + `description` mediumtext,
  168 + `category` varchar(255),
  169 + PRIMARY KEY (`id`),
  170 + UNIQUE KEY `name` (`name`)
  171 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  172 +
  173 +--
160 174 -- Table structure for table `config_settings`
161 175 --
162 176  
163 177 CREATE TABLE `config_settings` (
164 178 `id` int(11) NOT NULL auto_increment,
165   - `group_name` varchar(255) NOT NULL default '0',
166   - `item` varchar(255) NOT NULL default '0',
167   - `type` varchar(255) NOT NULL default '0',
  179 + `group_name` varchar(255) NOT NULL,
  180 + `display_name` varchar(255),
  181 + `description` mediumtext,
  182 + `item` varchar(255) NOT NULL,
168 183 `value` varchar(255) NOT NULL default 'default',
169   - `helptext` varchar(255) NOT NULL default '0',
170   - `default_value` varchar(255) NOT NULL default 'default',
  184 + `default_value` varchar(255) NOT NULL,
  185 + `type` enum('boolean','string','numeric_string','numeric','radio','dropdown') default 'string',
  186 + `options` mediumtext,
171 187 `can_edit` tinyint(1) NOT NULL default '1',
172 188 PRIMARY KEY (`id`)
173 189 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
... ...
sql/mysql/upgrade/3.5.3/config_settings.sql
  1 +--
  2 +-- Table structure for table `config_groups`
  3 +--
  4 +
  5 +CREATE TABLE `config_groups` (
  6 + `id` int(255) unsigned NOT NULL auto_increment,
  7 + `name` varchar(255) NOT NULL,
  8 + `display_name` varchar(255),
  9 + `description` mediumtext,
  10 + `category` varchar(255),
  11 + PRIMARY KEY (`id`),
  12 + UNIQUE KEY `name` (`name`)
  13 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  14 +
  15 +--
  16 +-- Dumping data for table `config_groups`
  17 +--
  18 +
  19 +INSERT INTO `config_groups` VALUES
  20 +(1, 'BaobabSettings', 'KnowledgeTree Tools Settings', 'KnowledgeTree Tools server configuration', 'Client Tools Settings'),
  21 +(2, 'browse', 'Browse View', 'Browse view configuration', 'User Interface Settings'),
  22 +(3, 'cache', 'Cache', 'KnowledgeTree cache configuration (Advanced users only)', 'General Settings'),
  23 +(4, 'clientToolPolicies', 'Client Tools Policies', 'Central policies for KnowledgeTree Tools', 'Client Tools Settings'),
  24 +(5, 'CustomErrorMessages', 'Custom Error Messages', 'Custom error message screen configuration (Advanced users only)', 'General Settings'),
  25 +(6, 'dashboard', 'Dashboard', 'Dashboard configuration', 'General Settings'),
  26 +(7, 'DiskUsage', 'Disk Usage Dashlet', 'Disk usage dashlet configuration', 'General Settings'),
  27 +(8, 'email', 'Email', 'System email configuration. Note that these setting are required by a number of features.', 'Email Settings'),
  28 +(9, 'export', 'Export', 'Export configuration', 'General Settings'),
  29 +(10, 'externalBinary', 'External Binaries', 'Paths to external binaries used by KnowledgeTree (Advanced users only)', 'General Settings'),
  30 +(11, 'i18n', 'Internationalization', 'Internationalization configuration', 'Internationalisation Settings'),
  31 +(12, 'import', 'Import', 'Import configuration.', 'Internationalisation Settings'),
  32 +(13, 'indexer', 'Document Indexer', 'Document indexer configuration (Advanced users only)', 'Search and Indexing Settings'),
  33 +(14, 'KnowledgeTree', 'KnowledgeTree', 'General server configuration', 'General Settings'),
  34 +(15, 'KTWebDAVSettings', 'WebDAV', 'Third-party WebDAV configuration', 'Client Tools Settings'),
  35 +(16, 'openoffice', 'OpenOffice.org Service', 'OpenOffice.org service configuration. Note that this service is used by a number of features within KnowledgeTree', 'Client Tools Settings'),
  36 +(17, 'search', 'Search', 'Search configuration.', 'Search and Indexing Settings'),
  37 +(18, 'session', 'Session Management', 'Session management configuration.', 'General Settings'),
  38 +(19, 'storage', 'Storage', 'KnowledgeTree Storage Manager configuration', 'General Settings'),
  39 +(20, 'tweaks', 'Tweaks', 'Small configuration tweaks', 'General Settings'),
  40 +(21, 'ui', 'User Interface', 'General user interface configuration', 'User Interface Settings'),
  41 +(22, 'urls', 'Urls', 'KnowledgeTree server and filesystem paths (Advanced users only).', 'User Interface Settings'),
  42 +(23, 'user_prefs', 'User Preferences', 'User interface preferences', 'User Interface Settings'),
  43 +(24, 'webservice', 'Web Services', 'KnowledgeTree Web Service Interface configuration. Note that a number of KnowledgeTree Tools rely on this service. ', 'Client Tools Settings');
  44 +
  45 +-- --------------------------------------------------------
  46 +
  47 +--
  48 +-- Table structure for table `config_settings`
  49 +--
  50 +
1 51 CREATE TABLE `config_settings` (
2   - `id` int(255) unsigned NOT NULL,
3   - `group_name` varchar(255) NOT NULL default '0',
4   - `item` varchar(255) NOT NULL default '0',
5   - `type` varchar(255) NOT NULL default '0',
  52 + `id` int(11) NOT NULL auto_increment,
  53 + `group_name` varchar(255) NOT NULL,
  54 + `display_name` varchar(255),
  55 + `description` mediumtext,
  56 + `item` varchar(255) NOT NULL,
6 57 `value` varchar(255) NOT NULL default 'default',
7   - `helptext` varchar(255) NOT NULL default '0',
8   - `default_value` varchar(255) NOT NULL default 'default',
  58 + `default_value` varchar(255) NOT NULL,
  59 + `type` enum('boolean','string','numeric_string','numeric','radio','dropdown') default 'string',
  60 + `options` mediumtext,
9 61 `can_edit` tinyint(1) NOT NULL default '1',
10 62 PRIMARY KEY (`id`)
11 63 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
12 64  
13   -LOCK TABLES `config_settings` WRITE;
14   -/*!40000 ALTER TABLE `config_settings` DISABLE KEYS */;
15   -INSERT INTO `config_settings`(`id`,`group_name`,`item`,`type`,`value`,`helptext`,`default_value`,`can_edit`) VALUES
16   -(1,'ui','appName','','KnowledgeTree','OEM application name','KnowledgeTree',1),
17   -(2,'KnowledgeTree','schedulerInterval','','30','','30',1),
18   -(3,'dashboard','alwaysShowYCOD','boolean','default','Display the \"Your Checked-out Documents\" dashlet even when empty.','0',1),
19   -(4,'urls','graphicsUrl','','${rootUrl}/graphics','','${rootUrl}/graphics',1),
20   -(5,'urls','uiUrl','','${rootUrl}/presentation/lookAndFeel/knowledgeTree','','${rootUrl}/presentation/lookAndFeel/knowledgeTree',1),
21   -(6,'tweaks','browseToUnitFolder','boolean','default','Whether to browse to the user\'s (first) unit when first going to the browse section.','0',1),
22   -(7,'tweaks','genericMetaDataRequired','boolean','1','','1',1),
23   -(8,'tweaks','developmentWindowLog','boolean','0','','0',1),
24   -(9,'tweaks','noisyBulkOperations','boolean','default','Whether bulk operations should generate a transaction notice on each ; item, or only on the folder. Default of \"false\" indicates that only the folder transaction should occur.','0',1),
25   -(10,'email','emailServer','','none','','none',1),
26   -(11,'email','emailPort','','default','','',1),
27   -(12,'email','emailAuthentication','boolean','0','Do you need auth to connect to SMTP?\r\n','0',1),
28   -(13,'email','emailUsername','','username','','username',1),
29   -(14,'email','emailPassword','','password','','password',1),
30   -(15,'email','emailFrom','','kt@example.org','','kt@example.org',1),
31   -(16,'email','emailFromName','','KnowledgeTree Document Management System','','KnowledgeTree Document Management System',1),
32   -(17,'email','allowAttachment','boolean','default','Set to true to allow users to send attachments from the document\r\n management system\r\n.','0',1),
33   -(18,'email','allowEmailAddresses','boolean','default','Set to true to allow users to send to any email address, as opposed to\r\n only users of the system\r\n.','0',1),
34   -(19,'email','sendAsSystem','boolean','default','Set to true to always send email from the emailFrom address listed above, even if there is an identifiable sending user\r\n.','0',1),
35   -(20,'email','onlyOwnGroups','boolean','default','Set to true to only allow users to send emails to those in the same\r\n groups as them\r\n.','0',1),
36   -(21,'user_prefs','passwordLength','','6','Minimum password length on password-setting\r\n','6',1),
37   -(22,'user_prefs','restrictAdminPasswords','boolean','default','Apply the minimum password length to admin while creating / editing accounts?\r\n default is set to \"false\" meaning that admins can create users with shorter passwords.\r\n','0',1),
38   -(23,'user_prefs','restrictPreferences','boolean','0','Restrict users from accessing their preferences menus?\r\n','0',1),
39   -(24,'session','sessionTimeout','','1200','Session timeout (in seconds)\r\n','1200',1),
40   -(25,'session','allowAnonymousLogin','boolean','0','By default, do not auto-login users as anonymous.\r\n Set this to true if you UNDERSTAND the security system that KT\r\n uses, and have sensibly applied the roles \"Everyone\" and \"Authenticated Users\".\r\n','0',1),
41   -(26,'ui','companyLogo','','${rootUrl}/resources/companylogo.png','Add the logo of your company to the site\'s appearance. This logo MUST be 50px tall, and on a white background.\r\n','${rootUrl}/resources/companylogo.png',1),
42   -(27,'ui','companyLogoWidth','','313px','The logo\'s width in pixels\r\n','313px',1),
43   -(28,'ui','companyLogoTitle','','ACME Corporation','ALT text - for accessibility purposes.\r\n','ACME Corporation',1),
44   -(29,'ui','alwaysShowAll','boolean','0','Do not restrict to searches (e.g. always show_all) on users and groups pages.\r\n','0',1),
45   -(30,'ui','condensedAdminUI','boolean','0','Use a condensed admin ui\r\n?','0',1),
46   -(31,'ui','fakeMimetype','boolean','0','Allow \"open\" from downloads. Changing this to \"true\" will prevent (most)\r\n browsers from giving users the \"open\" option.\r\n','0',1),
47   -(32,'ui','metadata_sort','boolean','0','Sort the metadata fields alphabetically\r\n','1',1),
48   -(33,'i18n','useLike','boolean','default','If your language doesn\'t have distinguishable words (usually, doesn\'t\r\n have a space character), set useLike to true to use a search that can\r\n deal with this, but which is slower.\r\n','0',1),
49   -(34,'import','unzip','','unzip','Unzip command - will use execSearchPath to find if the path to the binary is not given\r\n.','unzip',1),
50   -(35,'export','zip','','zip','Zip command - will use execSearchPath to find if the path to the\r\n binary is not given\r\n.','zip',1),
51   -(36,'externalBinary','xls2csv','','xls2csv','','xls2csv',1),
52   -(37,'externalBinary','pdftotext','','pdftotext','','pdftotext',1),
53   -(38,'externalBinary','catppt','','catppt','','catppt',1),
54   -(39,'externalBinary','pstotext','','pstotext','','pstotext',1),
55   -(40,'externalBinary','catdoc','','catdoc','','catdoc',1),
56   -(41,'externalBinary','antiword','','antiword','','antiword',1),
57   -(42,'externalBinary','python','','python','','python',1),
58   -(43,'externalBinary','java','','java','','java',1),
59   -(44,'externalBinary','php','','php','','php',1),
60   -(45,'externalBinary','df','','df','','df',1),
61   -(46,'cache','proxyCacheDirectory','','${varDirectory}/proxies','','${varDirectory}/proxies',1),
62   -(47,'cache','proxyCacheEnabled','boolean','1','','1',1),
63   -(48,'KTWebDAVSettings','debug','','off','This section is for KTWebDAV only, _LOTS_ of debug info will be logged if the following is \"on\"\r\n','off',1),
64   -(49,'KTWebDAVSettings','safemode','','on','To allow write access to WebDAV clients set safe mode to \"off\".','on',1),
65   -(50,'BaobabSettings','debug','','off','This section is for Baobab only\r\n, _LOTS_ of debug info will be logged if the following is \"on\"\r\n.','off',1),
66   -(51,'BaobabSettings','safemode','','on','To allow write access to WebDAV clients set safe mode to \"off\" below\r\n.','on',1),
67   -(52,'search','searchBasePath','','${fileSystemRoot}/search2','','${fileSystemRoot}/search2',1),
68   -(53,'search','fieldsPath','','${searchBasePath}/search/fields','','${searchBasePath}/search/fields',1),
69   -(54,'search','resultsDisplayFormat','','searchengine','The format in which to display the results\r\n options are searchengine or browseview defaults to searchengine\r\n.','searchengine',1),
70   -(55,'search','resultsPerPage','','50','The number of results per page\r\n, defaults to 25\r\n','25',1),
71   -(56,'search','dateFormat','','Y-m-d','The date format used when making queries using widgets\r\n, defaults to Y-m-d\r\n','Y-m-d',1),
72   -(57,'browse','previewActivation','','default','The document info box / preview is activated by mousing over or clicking on the icon\r\n. Options: onclick (default) or mouse-over\r\n.','onclick',1),
73   -(58,'indexer','coreClass','','JavaXMLRPCLuceneIndexer','The core indexing class\r\n. Choices: JavaXMLRPCLuceneIndexer or PHPLuceneIndexer.','JavaXMLRPCLuceneIndexer',1),
74   -(59,'indexer','batchDocuments','','20','The number of documents to be indexed in a cron session, defaults to 20\r\n.','20',1),
75   -(60,'indexer','batchMigrateDocuments','','500','The number of documents to be migrated in a cron session, defaults to 500\r\n.','500',1),
76   -(61,'indexer','indexingBasePath','','${searchBasePath}/indexing','','${searchBasePath}/indexing',1),
77   -(62,'indexer','luceneDirectory','','${varDirectory}/indexes','The location of the lucene indexes\r\n.','${varDirectory}/indexes',1),
78   -(63,'indexer','extractorPath','','${indexingBasePath}/extractors','','${indexingBasePath}/extractors',1),
79   -(64,'indexer','extractorHookPath','','${indexingBasePath}/extractorHooks','','${indexingBasePath}/extractorHooks',1),
80   -(65,'indexer','javaLuceneURL','','http://127.0.0.1:8875','The url for the Java Lucene Server. This should match up the the Lucene Server configuration. Defaults to http://127.0.0.1:8875\r\n','http://127.0.0.1:8875',1),
81   -(66,'openoffice','host','','default','The host on which open office is installed\r\n. Defaults to 127.0.0.1\r\n','127.0.0.1',1),
82   -(67,'openoffice','port','','default','The port on which open office is listening. Defaults to 8100\r\n','8100',1),
83   -(68,'webservice','uploadDirectory','','${varDirectory}/uploads','Directory to which all uploads via webservices are persisted before moving into the repository\r\n.','${varDirectory}/uploads',1),
84   -(69,'webservice','downloadUrl','','${rootUrl}/ktwebservice/download.php','Url which is sent to clients via web service calls so they can then download file via HTTP GET\r\n.','${rootUrl}/ktwebservice/download.php',1),
85   -(70,'webservice','uploadExpiry','','30','Period indicating how long a file should be retained in the uploads directory.\r\n','30',1),
86   -(71,'webservice','downloadExpiry','','30','Period indicating how long a download link will be available.','30',1),
87   -(72,'webservice','randomKeyText','','bkdfjhg23yskjdhf2iu','Random text used to construct a hash. This can be customised on installations so there is less chance of overlap between installations.\r\n','bkdfjhg23yskjdhf2iu',1),
88   -(73,'webservice','validateSessionCount','boolean','0','Validating session counts can interfere with access. It is best to leave this disabled, unless very strict access is required.\r\n','0',1),
89   -(74,'webservice','useDefaultDocumentTypeIfInvalid','boolean','1','If the document type is invalid when adding a document, we can be tollerant and just default to the Default document type.\r\n','1',1),
90   -(75,'webservice','debug','boolean','0','The web service debugging if the logLevel is set to DEBUG. We can set the value to 4 or 5 to get more verbose web service logging.\r\n Level 4 logs the name of functions being accessed. Level 5 logs the SOAP XML requests and responses.\r\n','0',1),
91   -(76,'clientToolPolicies','explorerMetadataCapture','boolean','1','This setting is one of two which control whether or not the client is prompted for metadata when a\r\n document is added to knowledgetree via KTtools. It defaults to true.\r\n','1',1),
92   -(77,'clientToolPolicies','officeMetadataCapture','boolean','1','This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.','1',1),
93   -(78,'clientToolPolicies','captureReasonsDelete','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
94   -(79,'clientToolPolicies','captureReasonsCheckin','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
95   -(80,'clientToolPolicies','captureReasonsCheckout','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
96   -(81,'clientToolPolicies','captureReasonsCancelCheckout','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
97   -(82,'clientToolPolicies','captureReasonsCopyInKT','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
98   -(83,'clientToolPolicies','captureReasonsMoveInKT','boolean','1','This setting is one of six which govern whether reasons are asked for in KTtools\r\n.','1',1),
99   -(84,'clientToolPolicies','allowRememberPassword','boolean','1','This setting governs whether the password can be stored on the client or not.','1',1),
100   -(85,'DiskUsage','warningThreshold','','10','When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in ORANGE\r\n.','10',1),
101   -(86,'DiskUsage','urgentThreshold','','5','When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in RED\r\n.','5',1),
102   -(87,'KnowledgeTree','useNewDashboard','','default','','1',1),
103   -(88,'i18n','defaultLanguage','','en','Default language for the interface\r\n.','en',1),
104   -(89,'CustomErrorMessages','customerrormessages','','off','Turn custom error messages on or off here','on',1),
105   -(90,'CustomErrorMessages','customerrorpagepath','','customerrorpage.php','Name or url of custom error page\r\n.','customerrorpage.php',1),
106   -(91,'CustomErrorMessages','customerrorhandler','','off','Turn custom error handler on or off','on',1),
107   -(92,'ui','morphEnabled','boolean','0','Enable Morph','0',1),
108   -(93,'ui','morphTo','','blue','Morph Theme\r\n','blue',1),
109   -(94,'KnowledgeTree','logLevel','','default','Choice: INFO or DEBUG','INFO',1),
110   -(95,'storage','manager','','default','','KTOnDiskHashedStorageManager',1),
111   -(96,'ui','ieGIF','boolean','0','','1',1),
112   -(97,'ui','automaticRefresh','boolean','0','','0',1),
113   -(98,'ui','dot','','dot','','dot',1),
114   -(99,'tweaks','phpErrorLogFile','boolean','default','If you want to enable PHP error logging to the log/php_error_log file, change this setting to true\r\n.','0',1),
115   -(100,'urls','logDirectory','','default','','${varDirectory}/log',1),
116   -(101,'urls','uiDirectory','','default','','${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree',1),
117   -(102,'urls','tmpDirectory','','default','','${varDirectory}/tmp',1),
118   -(103,'urls','stopwordsFile','','default','','${fileSystemRoot}/config/stopwords.txt',1),
119   -(104,'cache','cacheEnabled','boolean','default','','0',1),
120   -(105,'cache','cacheDirectory','','default','','${varDirectory}/cache',1),
121   -(106,'cache','cachePlugins','boolean','default','','1',1),
122   -(107,'urls','varDirectory','','default','','${fileSystemRoot}/var',1),
123   -(108,'urls','documentRoot','','default','','${varDirectory}/Documents',0),
124   -(109,'KnowledgeTree','redirectToBrowse','boolean','default','set to true to redirect to browse screen ','0',1),
125   -(110,'KnowledgeTree','redirectToBrowseExceptions','','default','if redirectToBrowse is true, adding usernames to this list will force specific users to be redirected to dashboard e.g. \r\nredirectToBrowseExceptions = admin, joebloggs ','',1),
126   -(111,'openoffice','programPath','','default','The Open Office program directory.','../openoffice/program',1);
127   -/*!40000 ALTER TABLE `config_settings` ENABLE KEYS */;
128   -UNLOCK TABLES;
  65 +--
  66 +-- Dumping data for table `config_settings`
  67 +--
  68 +
  69 +INSERT INTO `config_settings` VALUES
  70 +(1, 'ui', 'OEM Application Name', 'For use by KnowledgeTree OEM partners.', 'appName', 'KnowledgeTree', 'KnowledgeTree', '', NULL, 1),
  71 +(2, 'KnowledgeTree', 'Scheduler Interval', 'Set the frequency of the core scheduler.', 'schedulerInterval', 'default', '30', 'numeric_string', 'a:2:{s:7:"options";a:7:{i:0;a:2:{s:5:"label";i:30;s:5:"value";i:30;}i:1;a:2:{s:5:"label";i:60;s:5:"value";i:60;}i:2;a:2:{s:5:"label";i:120;s:5:"value";i:120;}i:3;a:2:{s:5:"label";i:300;s:5:"value";i:300;}i:4;a:2:{s:5:"label";i:600;s:5:"value";i:600;}i:5;a:2:{s:5:"label";i:1800;s:5:"value";i:1800;}i:6;a:2:{s:5:"label";i:3600;s:5:"value";i:3600;}}s:6:"append";s:7:"seconds";}', 1),
  72 +(3, 'dashboard', 'alwaysShowYCOD', 'Display the "Your Checked-out Documents" dashlet even when empty.', 'alwaysShowYCOD', 'default', 'false', 'boolean', NULL, 1),
  73 +(4, 'urls', 'Graphics Url', 'Path to user interface graphics', 'graphicsUrl', 'default', '${rootUrl}/graphics', '', NULL, 1),
  74 +(5, 'urls', 'User Interface Url', 'Path to core user interface libraries', 'uiUrl', 'default', '${rootUrl}/presentation/lookAndFeel/knowledgeTree', '', NULL, 1),
  75 +(6, 'tweaks', 'Browse to unit folder', 'Whether to browse to the user''s (first) unit when first going to the browse section.', 'browseToUnitFolder', 'default', 'false', 'boolean', NULL, 1),
  76 +(7, 'tweaks', 'Generic Metadata Required', '', 'genericMetaDataRequired', 'default', 'true', 'boolean', NULL, 1),
  77 +(8, 'tweaks', 'Development Window Log', '', 'developmentWindowLog', 'default', 'false', 'boolean', NULL, 1),
  78 +(9, 'tweaks', 'Noisy Bulk Operations', 'Whether bulk operations should generate a transaction notice on each ; item, or only on the folder. Default of "false" indicates that only the folder transaction should occur.', 'noisyBulkOperations', 'default', 'false', 'boolean', NULL, 1),
  79 +(10, 'email', 'Email Server', 'Address to SMTP server. Try IP address if host name does not work.', 'emailServer', 'none', 'none', '', NULL, 1),
  80 +(11, 'email', 'Email Port', 'SMTP server port', 'emailPort', 'default', '', 'numeric_string', NULL, 1),
  81 +(12, 'email', 'Email Authentication', 'Do you need auth to connect to SMTP?', 'emailAuthentication', 'default', 'false', 'boolean', NULL, 1),
  82 +(13, 'email', 'Email Username', 'Email server username', 'emailUsername', 'default', 'username', '', NULL, 1),
  83 +(14, 'email', 'Email Password', 'Email server password', 'emailPassword', 'default', 'password', '', NULL, 1),
  84 +(15, 'email', 'Email From', 'Email address from which system emails will be sent', 'emailFrom', 'default', 'kt@example.org', '', NULL, 1),
  85 +(16, 'email', 'Email From Name', 'Email from name', 'emailFromName', 'default', 'KnowledgeTree Document Management System', '', NULL, 1),
  86 +(17, 'email', 'Allow Attachment', 'Set to true to allow users to send attachments from the document management system.', 'allowAttachment', 'default', 'false', 'boolean', NULL, 1),
  87 +(18, 'email', 'Allow External Email Addresses', 'Set to true to allow users to send to any email address, as opposed to only users of the system.', 'allowEmailAddresses', 'default', 'false', 'boolean', NULL, 1),
  88 +(19, 'email', 'Send As System', 'Set to true to always send email from the emailFrom address listed above, even if there is an identifiable sending user.', 'sendAsSystem', 'default', 'false', 'boolean', NULL, 1),
  89 +(20, 'email', 'Only Own Groups', 'Set to true to only allow users to send emails to those in the same groups as them.', 'onlyOwnGroups', 'default', 'false', 'boolean', NULL, 1),
  90 +(21, 'user_prefs', 'Password Length', 'Minimum password length on password-setting', 'passwordLength', 'default', '6', 'numeric_string', NULL, 1),
  91 +(22, 'user_prefs', 'Restrict Admin Passwords', 'Apply the minimum password length to admin while creating / editing accounts? default is set to "false" meaning that admins can create users with shorter passwords.', 'restrictAdminPasswords', 'default', 'false', 'boolean', NULL, 1),
  92 +(23, 'user_prefs', 'Restrict Preferences', 'Restrict users from accessing their preferences menus?', 'restrictPreferences', 'default', 'false', 'boolean', NULL, 1),
  93 +(24, 'session', 'Session Timeout', 'Session timeout (in seconds)', 'sessionTimeout', 'default', '1200', 'numeric_string', 'a:2:{s:7:"options";a:4:{i:0;a:2:{s:5:"label";i:1200;s:5:"value";i:1200;}i:1;a:2:{s:5:"label";i:1800;s:5:"value";i:1800;}i:2;a:2:{s:5:"label";i:3600;s:5:"value";i:3600;}i:3;a:2:{s:5:"label";i:7200;s:5:"value";i:7200;}}s:6:"append";s:7:"seconds";}', 1),
  94 +(25, 'session', 'Anonymous Login', 'By default, do not auto-login users as anonymous. Set this to true if you UNDERSTAND the security system that KT uses, and have sensibly applied the roles "Everyone" and "Authenticated Users".', 'allowAnonymousLogin', 'default', 'false', 'boolean', NULL, 1),
  95 +(26, 'ui', 'Company Logo', 'Add the logo of your company to the site''s appearance. This logo MUST be 50px tall, and on a white background.', 'companyLogo', 'default', '${rootUrl}/resources/companylogo.png', '', NULL, 1),
  96 +(27, 'ui', 'Company Logo Width', 'The logo''s width in pixels', 'companyLogoWidth', 'default', '313px', '', NULL, 1),
  97 +(28, 'ui', 'Company Logo Title', 'ALT text - for accessibility purposes.', 'companyLogoTitle', 'default', 'ACME Corporation', '', NULL, 1),
  98 +(29, 'ui', 'Always Show All Results', 'Do not restrict to searches (e.g. always show_all) on users and groups pages.', 'alwaysShowAll', 'default', 'false', 'boolean', NULL, 1),
  99 +(30, 'ui', 'Condensed Admin UI', 'Use a condensed admin ui?', 'condensedAdminUI', 'default', 'false', 'boolean', NULL, 1),
  100 +(31, 'ui', 'Fake Mimetype', 'Allow "open" from downloads. Changing this to "true" will prevent (most) browsers from giving users the "open" option.', 'fakeMimetype', 'default', 'false', 'boolean', NULL, 1),
  101 +(32, 'ui', 'Sort Metadata', 'Sort the metadata fields alphabetically', 'metadata_sort', 'default', 'true', 'boolean', NULL, 1),
  102 +(33, 'i18n', 'UseLike', 'If your language doesn''t have distinguishable words (usually, doesn''t have a space character), set useLike to true to use a search that can deal with this, but which is slower.', 'useLike', 'default', 'false', 'boolean', NULL, 1),
  103 +(34, 'import', 'unzip', 'Unzip command - will use execSearchPath to find if the path to the binary is not given.', 'unzip', 'default', 'unzip', '', NULL, 1),
  104 +(35, 'export', 'zip', 'Zip command - will use execSearchPath to find if the path to the binary is not given.', 'zip', 'default', 'zip', '', NULL, 1),
  105 +(36, 'externalBinary', 'xls2csv', 'Path to binary', 'xls2csv', 'default', 'xls2csv', '', NULL, 1),
  106 +(37, 'externalBinary', 'pdftotext', 'Path to binary', 'pdftotext', 'default', 'pdftotext', '', NULL, 1),
  107 +(38, 'externalBinary', 'catppt', 'Path to binary', 'catppt', 'default', 'catppt', '', NULL, 1),
  108 +(39, 'externalBinary', 'pstotext', 'Path to binary', 'pstotext', 'default', 'pstotext', '', NULL, 1),
  109 +(40, 'externalBinary', 'catdoc', 'Path to binary', 'catdoc', 'default', 'catdoc', '', NULL, 1),
  110 +(41, 'externalBinary', 'antiword', 'Path to binary', 'antiword', 'default', 'antiword', '', NULL, 1),
  111 +(42, 'externalBinary', 'python', 'Path to binary', 'python', 'default', 'python', '', NULL, 1),
  112 +(43, 'externalBinary', 'java', 'Path to binary', 'java', 'default', 'java', '', NULL, 1),
  113 +(44, 'externalBinary', 'php', 'Path to binary', 'php', 'default', 'php', '', NULL, 1),
  114 +(45, 'externalBinary', 'df', 'Path to binary', 'df', 'default', 'df', '', NULL, 1),
  115 +(46, 'cache', 'Proxy Cache Path', 'Path to KnowledgeTree Cache. Default is <var directory>/cache.', 'proxyCacheDirectory', 'default', '${varDirectory}/proxies', '', NULL, 1),
  116 +(47, 'cache', 'Proxy Cache Enabled', 'Enable cache. Note that the cache is disabled by default and enabling it may degrade performance.', 'proxyCacheEnabled', 'default', 'true', 'boolean', NULL, 1),
  117 +(48, 'KTWebDAVSettings', 'Debug', 'This section is for KTWebDAV only, _LOTS_ of debug info will be logged if the following is "on"', 'debug', 'off', 'off', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  118 +(49, 'KTWebDAVSettings', 'Safemode', 'To allow write access to WebDAV clients set safe mode to "off".', 'safemode', 'on', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  119 +(50, 'BaobabSettings', 'Debug', 'This section is for Baobab only, _LOTS_ of debug info will be logged if the following is "on".', 'debug', 'off', 'off', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  120 +(51, 'BaobabSettings', 'Safemode', 'To allow write access to WebDAV clients set safe mode to "off" below.', 'safemode', 'on', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  121 +(52, 'search', 'Search Base Path', 'Path to search and indexing libraries', 'searchBasePath', 'default', '${fileSystemRoot}/search2', '', NULL, 1),
  122 +(53, 'search', 'Fields Path', 'Path to search and indexing fields', 'fieldsPath', 'default', '${searchBasePath}/search/fields', '', NULL, 1),
  123 +(54, 'search', 'Results Display Format', 'The format in which to display the results options are searchengine or browseview defaults to searchengine.', 'resultsDisplayFormat', 'default', 'searchengine', 'dropdown', 'a:1:{s:7:"options";a:2:{i:0;a:2:{s:5:"label";s:19:"Search Engine Style";s:5:"value";s:12:"searchengine";}i:1;a:2:{s:5:"label";s:17:"Browse View Style";s:5:"value";s:10:"browseview";}}}', 1),
  124 +(55, 'search', 'Results Per Page', 'The number of results per page, defaults to 25', 'resultsPerPage', 'default', '25', 'numeric_string', NULL, 1),
  125 +(56, 'search', 'Date Format', 'The date format used when making queries using widgets, defaults to Y-m-d', 'dateFormat', 'default', 'Y-m-d', '', NULL, 1),
  126 +(57, 'browse', 'Preview Activation', 'The document info box / preview is activated by mousing over or clicking on the icon. Options: mouse-over (default) or onclick.', 'previewActivation', 'default', 'onclick', 'dropdown', 'a:1:{s:7:"options";a:2:{i:0;a:2:{s:5:"label";s:10:"Mouse Over";s:5:"value";s:10:"mouse-over";}i:1;a:2:{s:5:"label";s:8:"On Click";s:5:"value";s:7:"onclick";}}}', 1),
  127 +(58, 'indexer', 'Core Class', 'The core indexing class. Choices: JavaXMLRPCLuceneIndexer or PHPLuceneIndexer.', 'coreClass', 'default', 'JavaXMLRPCLuceneIndexer', '', NULL, 1),
  128 +(59, 'indexer', 'Batch Documents', 'The number of documents to be indexed in a cron session, defaults to 20.', 'batchDocuments', 'default', '20', 'numeric_string', 'a:3:{s:9:"increment";i:10;s:7:"minimum";i:20;s:7:"maximum";i:200;}', 1),
  129 +(60, 'indexer', 'Batch Migrate Documents', 'The number of documents to be migrated in a cron session, defaults to 500.', 'batchMigrateDocuments', 'default', '500', 'numeric_string', NULL, 1),
  130 +(61, 'indexer', 'Indexing Base Path', 'Path to indexing engine', 'indexingBasePath', 'default', '${searchBasePath}/indexing', '', NULL, 1),
  131 +(62, 'indexer', 'Lucene Directory', 'The location of the lucene indexes.', 'luceneDirectory', 'default', '${varDirectory}/indexes', '', NULL, 1),
  132 +(63, 'indexer', 'Extractor Path', 'Path to text extractors', 'extractorPath', 'default', '${indexingBasePath}/extractors', '', NULL, 1),
  133 +(64, 'indexer', 'Extractor Hook Path', 'Path to extractor hooks', 'extractorHookPath', 'default', '${indexingBasePath}/extractorHooks', '', NULL, 1),
  134 +(65, 'indexer', 'Java Lucene URL', 'The url for the Java Lucene Server. This should match up the the Lucene Server configuration. Defaults to http://127.0.0.1:8875', 'javaLuceneURL', 'default', 'http://127.0.0.1:8875', '', NULL, 1),
  135 +(66, 'openoffice', 'Host', 'The host on which open office is installed. Defaults to 127.0.0.1', 'host', 'default', '127.0.0.1', '', NULL, 1),
  136 +(67, 'openoffice', 'Port', 'The port on which open office is listening. Defaults to 8100', 'port', 'default', '8100', 'numeric_string', NULL, 1),
  137 +(68, 'webservice', 'Upload Directory', 'Directory to which all uploads via webservices are persisted before moving into the repository.', 'uploadDirectory', 'default', '${varDirectory}/uploads', '', NULL, 1),
  138 +(69, 'webservice', 'Download Url', 'Url which is sent to clients via web service calls so they can then download file via HTTP GET.', 'downloadUrl', 'default', '${rootUrl}/ktwebservice/download.php', '', NULL, 1),
  139 +(70, 'webservice', 'Upload Expiry', 'Period indicating how long a file should be retained in the uploads directory.', 'uploadExpiry', 'default', '30', 'numeric_string', 'a:1:{s:6:"append";s:7:"seconds";}', 1),
  140 +(71, 'webservice', 'Download Expiry', 'Period indicating how long a download link will be available.', 'downloadExpiry', 'default', '30', 'numeric_string', 'a:1:{s:6:"append";s:7:"seconds";}', 1),
  141 +(72, 'webservice', 'Random Key Text', 'Random text used to construct a hash. This can be customised on installations so there is less chance of overlap between installations.', 'randomKeyText', 'default', 'bkdfjhg23yskjdhf2iu', '', NULL, 1),
  142 +(73, 'webservice', 'Validate Session Count', 'Validating session counts can interfere with access. It is best to leave this disabled, unless very strict access is required.', 'validateSessionCount', 'false', 'false', 'boolean', NULL, 1),
  143 +(74, 'webservice', 'Use Default Document Type If Invalid', 'If the document type is invalid when adding a document, we can be tollerant and just default to the Default document type.', 'useDefaultDocumentTypeIfInvalid', 'true', 'true', 'boolean', NULL, 1),
  144 +(75, 'webservice', 'Debug', 'The web service debugging if the logLevel is set to DEBUG. We can set the value to 4 or 5 to get more verbose web service logging. Level 4 logs the name of functions being accessed. Level 5 logs the SOAP XML requests and responses.', 'debug', 'false', 'false', 'boolean', NULL, 1),
  145 +(76, 'clientToolPolicies', 'Explorer: Metadata Capture', 'This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.', 'explorerMetadataCapture', 'true', 'true', 'boolean', NULL, 1),
  146 +(77, 'clientToolPolicies', 'Office: Metadata Capture', 'This setting is one of two which control whether or not the client is prompted for metadata when a document is added to knowledgetree via KTtools. It defaults to true.', 'officeMetadataCapture', 'true', 'true', 'boolean', NULL, 1),
  147 +(78, 'clientToolPolicies', 'Capture Reasons: Delete', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsDelete', 'true', 'true', 'boolean', NULL, 1),
  148 +(79, 'clientToolPolicies', 'Capture Reasons: Checkin', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCheckin', 'true', 'true', 'boolean', NULL, 1),
  149 +(80, 'clientToolPolicies', 'Capture Reasons: Checkout', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCheckout', 'true', 'true', 'boolean', NULL, 1),
  150 +(81, 'clientToolPolicies', 'Capture Reasons: Cancel Checkout', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCancelCheckout', 'true', 'true', 'boolean', NULL, 1),
  151 +(82, 'clientToolPolicies', 'Capture Reasons: Copy', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsCopyInKT', 'true', 'true', 'boolean', NULL, 1),
  152 +(83, 'clientToolPolicies', 'Capture Reasons: Move', 'This setting is one of six which govern whether reasons are asked for in KTtools.', 'captureReasonsMoveInKT', 'true', 'true', 'boolean', NULL, 1),
  153 +(84, 'clientToolPolicies', 'Allow Remember Password', 'This setting governs whether the password can be stored on the client or not.', 'allowRememberPassword', 'true', 'true', 'boolean', NULL, 1),
  154 +(85, 'DiskUsage', 'Warning Threshold', 'When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in ORANGE.', 'warningThreshold', '10', '10', 'numeric_string', 'a:1:{s:6:"append";s:1:"%";}', 1),
  155 +(86, 'DiskUsage', 'Urgent Threshold', 'When free space in a mount point is less than this percentage, the disk usage dashlet will highlight the mount in RED.', 'urgentThreshold', '5', '5', 'numeric_string', 'a:1:{s:6:"append";s:1:"%";}', 1),
  156 +(87, 'KnowledgeTree', 'Use AJAX Dashboard', 'User AJAX dashboard with rounded corners and draggable dashlets.', 'useNewDashboard', 'true', 'true', 'boolean', NULL, 1),
  157 +(88, 'i18n', 'Default Language', 'Default language for the interface.', 'defaultLanguage', 'default', 'en', 'string', NULL, 1),
  158 +(89, 'CustomErrorMessages', 'Custom Error Messages', 'Turn custom error messages on or off here', 'customerrormessages', 'default', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  159 +(90, 'CustomErrorMessages', 'Custom Error Page Path', 'Name or url of custom error page.', 'customerrorpagepath', 'default', 'customerrorpage.php', '', NULL, 1),
  160 +(91, 'CustomErrorMessages', 'Custom Error Handler', 'Turn custom error handler on or off', 'customerrorhandler', 'default', 'on', 'radio', 'a:1:{s:7:"options";a:2:{i:0;s:2:"on";i:1;s:3:"off";}}', 1),
  161 +(92, 'ui', 'Skinning Enabled', 'Enable Skinning', 'morphEnabled', 'default', 'false', 'boolean', NULL, 1),
  162 +(93, 'ui', 'Default Skin', 'Enter a default skin', 'morphTo', 'default', 'blue', '', NULL, 1),
  163 +(94, 'KnowledgeTree', 'Log Level', 'Choice: INFO or DEBUG', 'logLevel', 'default', 'INFO', 'dropdown', 'a:1:{s:7:"options";a:4:{i:0;a:2:{s:5:"label";s:4:"INFO";s:5:"value";s:4:"INFO";}i:1;a:2:{s:5:"label";s:4:"WARN";s:5:"value";s:4:"WARN";}i:2;a:2:{s:5:"label";s:5:"ERROR";s:5:"value";s:5:"ERROR";}i:3;a:2:{s:5:"label";s:5:"DEBUG";s:5:"value";s:5:"DEBUG";}}}', 1),
  164 +(95, 'storage', 'Manager', 'KnowledgeTree Storage manager. Default is KTOnDiskHashedStorageManager.', 'manager', 'default', 'KTOnDiskHashedStorageManager', '', NULL, 1),
  165 +(96, 'ui', 'ieGIF', 'Use the additional IE specific GIF theme overrides. Using this means that arbitrary theme packs may not work without having GIF versions available. ', 'ieGIF', 'false', 'true', 'boolean', NULL, 1),
  166 +(97, 'ui', 'Automatic Refresh', 'Set to true to automatically refresh the page after the session would have expired.', 'automaticRefresh', 'default', 'false', 'boolean', NULL, 1),
  167 +(98, 'ui', 'dot', 'Path to dot binary', 'dot', 'dot', 'dot', '', NULL, 1),
  168 +(99, 'tweaks', 'Php Error Log File', 'If you want to enable PHP error logging to the log/php_error_log file, change this setting to true.', 'phpErrorLogFile', 'default', 'false', 'boolean', NULL, 1),
  169 +(100, 'urls', 'Log Directory', 'Path to log directory', 'logDirectory', 'default', '${varDirectory}/log', '', NULL, 1),
  170 +(101, 'urls', 'UI Directory', 'Path to UI directory', 'uiDirectory', 'default', '${fileSystemRoot}/presentation/lookAndFeel/knowledgeTree', '', NULL, 1),
  171 +(102, 'urls', 'Temp Directory', 'Path to temp directory', 'tmpDirectory', 'default', '${varDirectory}/tmp', '', NULL, 1),
  172 +(103, 'urls', 'Stopwords File', 'Path to stopword file', 'stopwordsFile', 'default', '${fileSystemRoot}/config/stopwords.txt', '', NULL, 1),
  173 +(104, 'cache', 'Cache Enabled', 'Plugin cache configuration', 'cacheEnabled', 'default', 'false', 'boolean', NULL, 1),
  174 +(105, 'cache', 'Cache Directory', 'Plugin cache path', 'cacheDirectory', 'default', '${varDirectory}/cache', '', NULL, 1),
  175 +(106, 'cache', 'Cache Plugins', 'Plugins cache', 'cachePlugins', 'default', 'true', 'boolean', NULL, 1),
  176 +(107, 'urls', 'Var Directory', 'Path to var directory', 'varDirectory', 'default', '${fileSystemRoot}/var', '', NULL, 1),
  177 +(108, 'openoffice', 'Program Path', 'The Open Office program directory.', 'programPath', 'default', '../openoffice/program', 'string', NULL, 1),
  178 +(109, 'urls', 'documentRoot', '', 'documentRoot', 'default', '${varDirectory}/Documents', '', NULL, 0),
  179 +(110, 'KnowledgeTree', 'redirectToBrowse', 'set to true to redirect to browse screen ', 'redirectToBrowse', 'default', 'false', 'boolean', NULL, 1),
  180 +(111, 'KnowledgeTree', 'redirectToBrowseExceptions', 'if redirectToBrowse is true, adding usernames to this list will force specific users to be redirected to dashboard e.g. redirectToBrowseExceptions = admin, joebloggs ', 'redirectToBrowseExceptions', 'default', '', '', NULL, 1),
  181 +(112, 'session', 'Allow automatic sign in', 'If a user doesn''t exist in the system, the account will be created on first login.', 'allowAutoSignup', 'default', 'false', 'boolean', '', 1);
129 182 \ No newline at end of file
... ...
templates/ktcore/configsettings.smarty
1   -<form name="manageConfigSettings" action="{$smarty.server.PHP_SELF}" method="POST">
2   -
3   -<table class="kt_config">
4   - <tbody>
5   - {foreach from=$results item=settings}
6   - <tr>
7   - <td>
8   - <b>{$settings.group_name}</b> : {$settings.item}
9   - </td>
10   - <td>
11   - {if ($settings.value != 'default')}
12   - {if ($settings.type) == 'boolean'}
13   - {if ($settings.value == '1')}
14   - <input name="configArray[{$settings.id}]" value="true" size="40">
15   - {else}
16   - <input name="configArray[{$settings.id}]" value="false" size="40">
17   - {/if}
18   - {else}
19   - <input name="configArray[{$settings.id}]" value="{$settings.value}" size="40">
20   - {/if}
21   - {else}
22   - {if ($settings.type) == 'boolean'}
23   - {if ($settings.default_value == '1')}
24   - <input name="configArray[{$settings.id}]" value="true" size="40">
25   - {else}
26   - <input name="configArray[{$settings.id}]" value="false" size="40">
27   - {/if}
28   - {else}
29   - <input name="configArray[{$settings.id}]" value="{$settings.default_value}" size="40">
30   - {/if}
31   - {/if}
32   - </td>
33   - </tr>
34   - <tr>
35   - <td class="descriptiveText" style="font-size:0.85em;">
36   - {$settings.helptext}
37   - </td>
38   - </tr>
39   - {/foreach}
40   -
41   - </tbody>
42   -
43   -</table>
44   -
45   -<br>
46   -<input type="submit" name="AlterConfig" value="{i18n}Save Config Settings{/i18n}" />
47   -
  1 +<script type='text/javascript'>
  2 +{literal}
  3 + function toggleSettingsDisplay(id)
  4 + {
  5 + var el = document.getElementById(id);
  6 + var visible = el.style.visibility;
  7 +
  8 + if(visible == 'visible'){
  9 + el.style.visibility = 'hidden';
  10 + el.style.display = 'none';
  11 + }else{
  12 + el.style.visibility = 'visible';
  13 + el.style.display = 'block';
  14 + }
  15 + }
  16 +{/literal}
  17 +</script>
  18 +
  19 +<h2>{$section}</h2>
  20 +
  21 +<form name="manageConfigSettings" action="{$smarty.server.PHP_SELF}" method="POST">
  22 +
  23 +{if $groupList}
  24 +
  25 + {* <!-- Display the group name and description --> *}
  26 + {foreach from=$groupList item=groupItem}
  27 + {assign var=group value=$groupItem.name}
  28 +
  29 + <h3><span onclick='javascript: toggleSettingsDisplay("{$groupItem.id}");' style='cursor: hand;'>{$group}</span></h3>
  30 + <span class='descriptiveText'>{$groupItem.description}</span>
  31 +
  32 + <div id='{$groupItem.id}' style='visibility: visible'>
  33 + <fieldset>
  34 +
  35 + {* <!-- Display the settings, render the input according to the setting type (dropdown / radio / etc) --> *}
  36 + {foreach from=$groupSettings.$group item=settings}
  37 +
  38 + <p style='padding-bottom: 15px;'>
  39 + {$settings.display_name}<br>
  40 + {if $settings.description}
  41 + <span class='descriptiveText'>{$settings.description}</span><br>
  42 + {/if}
  43 + {$context->renderInput($settings.id, $settings.type, $settings.value, $settings.default_value, $settings.options)}<br>
  44 + </p>
  45 +
  46 + {/foreach}
  47 +
  48 + </fieldset>
  49 + </div>
  50 + <br>
  51 +
  52 + {/foreach}
  53 +
  54 +{/if}
  55 +
  56 +
  57 +<input type="submit" name="AlterConfig" value="{i18n}Save Config Settings{/i18n}" />
  58 +
48 59 </form>
49 60 \ No newline at end of file
... ...