Commit 0989bdd4e2a30c16240ca61a1b455d1cd9d5e819

Authored by Megan Watson
2 parents 1ed9ca49 495c099e

Merge branch 'edge' of git@github.com:ktgit/knowledgetree into edge

ktapi/KTAPIDocument.inc.php
... ... @@ -2225,6 +2225,7 @@ class KTAPI_Document extends KTAPI_FolderItem
2225 2225 $version['user'] = $username;
2226 2226 $version['metadata_version'] = $document->getMetadataVersion();
2227 2227 $version['content_version'] = $document->getVersion();
  2228 + $version['datetime'] = $document->getVersionCreated();
2228 2229 if ($wsversion >= 2)
2229 2230 {
2230 2231 $version['metadata_version'] = (int) $version['metadata_version'];
... ...
plugins/ktcore/KTBulkActions.php
... ... @@ -259,16 +259,9 @@ class KTBulkDeleteAction extends KTBulkAction {
259 259 return parent::do_performaction();
260 260 }
261 261  
262   - /*
  262 + /**
263 263 * Bulk delete
264   - * Author : Jarrett Jordaan
265   - * Modified : 28/04/09
266   - *
267 264 * @params : KTDocumentUtil/KTFolderUtil $oEntity
268   - *
269   - * Description : Since its a bulk operation, the delete function needs to
270   - * know that. Added extra boolean param to the delete
271   - * function.
272 265 */
273 266 function perform_action($oEntity) {
274 267 $sReason = $this->res['reason'];
... ... @@ -526,16 +519,10 @@ class KTBulkMoveAction extends KTBulkAction {
526 519 return parent::do_performaction();
527 520 }
528 521  
529   - /*
  522 + /**
530 523 * Bulk move
531   - * Author : Jarrett Jordaan
532   - * Modified : 28/04/09
533   - *
534 524 * @params : KTDocumentUtil/KTFolderUtil $oEntity
535 525 *
536   - * Description : Since its a bulk operation, the move function needs to
537   - * know that. Added extra boolean param to the move
538   - * function.
539 526 */
540 527 function perform_action($oEntity) {
541 528 if(is_a($oEntity, 'Document')) {
... ... @@ -771,16 +758,10 @@ class KTBulkCopyAction extends KTBulkAction {
771 758 return parent::do_performaction();
772 759 }
773 760  
774   - /*
  761 + /**
775 762 * Bulk copy
776   - * Author : Jarrett Jordaan
777   - * Modified : 28/04/09
778   - *
779 763 * @params : KTDocumentUtil/KTFolderUtil $oEntity
780   - *
781   - * Description : Since its a bulk operation, the copy function needs to
782   - * know that. Added extra boolean param to the copy
783   - * function.
  764 + *
784 765 */
785 766 function perform_action($oEntity) {
786 767 if(is_a($oEntity, 'Document')) {
... ... @@ -1029,16 +1010,10 @@ class KTBulkArchiveAction extends KTBulkAction {
1029 1010 return parent::do_performaction();
1030 1011 }
1031 1012  
1032   - /*
  1013 + /**
1033 1014 * Bulk archive
1034   - * Author : Jarrett Jordaan
1035   - * Modified : 28/04/09
1036   - *
1037 1015 * @params : KTDocumentUtil/KTFolderUtil $oEntity
1038 1016 *
1039   - * Description : Since its a bulk operation, the archive function needs
1040   - * to know that. Added extra boolean param to the archive
1041   - * function.
1042 1017 */
1043 1018 function perform_action($oEntity) {
1044 1019 if(is_a($oEntity, 'Document')) {
... ... @@ -1216,16 +1191,10 @@ class KTBrowseBulkExportAction extends KTBulkAction {
1216 1191 return $str;
1217 1192 }
1218 1193  
1219   - /*
  1194 + /**
1220 1195 * Bulk export
1221   - * Author : Jarrett Jordaan
1222   - * Modified : 28/04/09
1223   - *
1224 1196 * @params : KTDocumentUtil/KTFolderUtil $oEntity
1225 1197 *
1226   - * Description : Since its a bulk operation, the export function needs
1227   - * to know that. Added extra boolean param to the export
1228   - * function.
1229 1198 */
1230 1199 function perform_action($oEntity) {
1231 1200 // TODO find a way to do bulk email
... ... @@ -1489,16 +1458,10 @@ class KTBrowseBulkCheckoutAction extends KTBulkAction {
1489 1458 return $result;
1490 1459 }
1491 1460  
1492   - /*
  1461 + /**
1493 1462 * Bulk checkout
1494   - * Author : Jarrett Jordaan
1495   - * Modified : 28/04/09
1496   - *
1497 1463 * @params : KTDocumentUtil/KTFolderUtil $oEntity
1498 1464 *
1499   - * Description : Since its a bulk operation, the checkout function needs
1500   - * to know that. Added extra boolean param to the checkout
1501   - * function.
1502 1465 */
1503 1466 function perform_action($oEntity) {
1504 1467 // checkout document
... ...
plugins/ktcore/admin/workflowsv2.php
... ... @@ -2365,8 +2365,7 @@ class KTWorkflowAdminV2 extends KTAdminDispatcher {
2365 2365  
2366 2366 if (!empty($sFilter)) {
2367 2367 $allowed = array();
2368   - // Modified Jarrett Jordaan Only notify enabled users
2369   - $q = sprintf('name like "%%%s%%" AND disabled = 0', DBUtil::escapeSimple($sFilter));
  2368 + $q = sprintf('name like "%%%s%%" AND disabled = 0', DBUtil::escapeSimple($sFilter)); // notify enabled users
2370 2369 $aUsers = User::getList($q);
2371 2370 $q = sprintf('name like "%%%s%%"', DBUtil::escapeSimple($sFilter));
2372 2371 $aGroups = Group::getList($q);
... ...
plugins/multiselect/templates/ktcore/search2/adv_query_builder.smarty
... ... @@ -519,8 +519,6 @@ function addFieldTypeSelection(groupid, fid, type, options)
519 519 default:
520 520 html += 'unknown: ' + type;
521 521 }
522   - // Jarrett Jordaan
523   - // Closing tags added
524 522 html += "</nobr></td>";
525 523  
526 524 return {html: html, init: callback};
... ...
setup/migrate/steps/migrateComplete.php
... ... @@ -164,7 +164,6 @@ class migrateComplete extends Step {
164 164 if($state == "STARTED" || $state == "RUNNING")
165 165 $running = true;
166 166 } else {
167   - //TODO : Read fomr my.cnf file
168 167 $mysqlPid = "/var/run/mysqld/mysqld.sock";
169 168 if(file_exists($mysqlPid))
170 169 $running = true;
... ...
setup/migrate/steps/migrateDatabase.php
... ... @@ -155,31 +155,20 @@ class migrateDatabase extends Step
155 155 unlink($sqlFile);
156 156 }
157 157 }
158   - $noFile = true;
159 158 // Handle failed dump
160 159 if(WINDOWS_OS) {
161 160 // Could be permissions, check error code.
162   - if(!$noFile) {
163   - $sqlFile = "C:\\kt-backup-$date.sql"; // Use tmp instead due to permissions
164   - }
  161 + $sqlFile = "C:\\kt-backup-$date.sql"; // Use tmp instead due to permissions
165 162 } else {
166   - if(!$noFile) {
167   - $sqlFile = "/tmp/kt-backup-$date.sql"; // Use tmp instead due to permissions
168   - }
  163 + $sqlFile = "/tmp/kt-backup-$date.sql"; // Use tmp instead due to permissions
169 164 }
170 165 $cmd = $exe.' -u"'.$dbAdminUser.'" -p"'.$dbAdminPass.'" --port="'.$port.'" '.$dbName.' > '.$sqlFile;
171   - if($noFile) {
172   - $this->error[]['error'] = "The KnowledgeTree Setup Wizard was unable to connect to your KnowledgeTree 3.6.1 database.";
173   - $this->error[]['msg'] = "Ensure that your KnowledgeTree Mysql service is running.";
174   - $this->error[]['cmd'] = "Click <b>Next</b> after resolving the above errors.";
175   - $this->temp_variables['manual_export'] = "";
176   - } else {
177   - $this->error[]['error'] = "Could not export database:";
178   - $this->error[]['msg'] = "Execute the following command in a $termOrBash.";
179   - $this->error[]['cmd'] = $cmd;
180   - $this->temp_variables['manual_export'] = $sqlFile;
181   - }
182   -
  166 + $this->error[]['error'] = "The KnowledgeTree Setup Wizard was unable to connect to your KnowledgeTree 3.6.1 database.";
  167 + $this->error[]['msg'] = "Ensure that your KnowledgeTree Mysql service is running.";
  168 + $this->error[]['cmd'] = "Click <b>Next</b> after resolving the above errors.";
  169 + $this->temp_variables['dumpLocation'] = $sqlFile;
  170 + $this->temp_variables['manual_export'] = $sqlFile;
  171 + $this->error[]['manual'] = $cmd;
183 172 return false;
184 173 }
185 174  
... ... @@ -274,7 +263,7 @@ class migrateDatabase extends Step
274 263 return $this->error;
275 264 }
276 265  
277   - private function storeSilent() {
  266 + public function storeSilent() {
278 267 // TODO
279 268 $_SESSION['migrate']['database']['dumpLocation'] = $this->sqlDumpFile;
280 269 $this->temp_variables['dumpLocation'] = $this->sqlDumpFile;
... ...
setup/migrate/steps/migrateServices.php
... ... @@ -398,7 +398,7 @@ class migrateServices extends Step
398 398 * @access private
399 399 * @return void
400 400 */
401   - private function storeSilent() {
  401 + public function storeSilent() {
402 402 $this->temp_variables['alreadyUninstalled'] = $this->alreadyUninstalled;
403 403 $this->temp_variables['serviceCheck'] = $this->serviceCheck;
404 404 $this->temp_variables['msg'] = "Turn off KnowledgeTree Mysql Instance.";
... ...
setup/migrate/templates/database.tpl
... ... @@ -118,6 +118,16 @@
118 118 <?php } ?>
119 119 </p>
120 120 <br/>
  121 +<p class="description">
  122 + Manually perform a KnowledgeTree 3.6.1 database export
  123 +</p>
  124 +<p class="disclaimer">
  125 +<?php
  126 +if(isset($error['manual'])) {
  127 + echo $error['manual'];
  128 + }
  129 +?>
  130 +</p>
121 131 <?php
122 132 }
123 133 ?>
... ...
setup/migrate/templates/wizard.tpl
... ... @@ -21,7 +21,7 @@
21 21 <div id="outer-wrapper" align="left">
22 22 <div id="header">
23 23 <div id="logo"><?php echo $html->image('dame/installer-header_logo.png'); ?> </div>
24   - <div id="install_details">
  24 + <div id="version_details">
25 25 <span style="font-size:120%;"> <?php if (isset($vars['migrate_version'])) echo $vars['migrate_version']; ?> </span>
26 26 <span style="font-size:120%;"> <?php if (isset($vars['migrate_version'])) echo $vars['migrate_type']; ?></span>
27 27 </div>
... ...
setup/upgrade/steps/upgradeComplete.php
... ... @@ -88,7 +88,7 @@ class upgradeComplete extends Step {
88 88 * Set all silent mode varibles
89 89 *
90 90 */
91   - protected function storeSilent() {
  91 + public function storeSilent() {
92 92 $v = $this->getDataFromSession('upgradeProperties');
93 93 $this->temp_variables['sysVersion'] = $this->util->readVersion();
94 94 $this->temp_variables['migrateCheck'] = $this->migrateCheck;
... ...
setup/upgrade/templates/complete.tpl
... ... @@ -31,11 +31,15 @@
31 31 <br/>
32 32 [START MENU] => [Programs] => [KnowledgeTree 3.7.x] => [services]
33 33 <br/>
34   - Right-Click and run [Install Services] as administrator
  34 + Right-Click and run [Install Services] as administrator, if applicable, or
  35 + <br/>
  36 + Click [Install Services]
35 37 <br/>
36 38 [START MENU] => [Programs] => [KnowledgeTree 3.7.x] => [services]
37 39 <br/>
38   - Right-Click and run [Start Services] as administrator
  40 + Right-Click and run [Start Services] as administrator, if applicable, or
  41 + <br/>
  42 + Click [Start Services]
39 43 <br/>
40 44 <br/>
41 45 <b>Alternatively:</b>
... ...
setup/upgrade/templates/wizard.tpl
... ... @@ -21,7 +21,7 @@
21 21 <div id="outer-wrapper" align="left">
22 22 <div id="header">
23 23 <div id="logo"><?php echo $html->image('dame/installer-header_logo.png'); ?></div>
24   - <div id="upgrade_details">
  24 + <div id="version_details">
25 25 <span style="font-size:120%;"> <?php echo $vars['upgrade_version']; ?> </span>
26 26 <span style="font-size:120%;"> <?php echo $vars['upgrade_type']; ?> </span>
27 27 </div>
... ...
setup/wizard/resources/css/wizard.css
1 1 * { margin: 0; padding: 0; }
2   -
3 2 body {
4 3 background-attachment:scroll;
5 4 background-color:transparent;
... ... @@ -70,7 +69,7 @@ select {
70 69 #outer-wrapper {
71 70 border:1px solid #B7B7B7;
72 71 margin-top:20px;
73   - /*width:1024px;*/width:964px;
  72 + width:964px;
74 73 }
75 74  
76 75 #header {
... ... @@ -87,12 +86,12 @@ select {
87 86 #container {
88 87 background: white url("../graphics/left.png") repeat-y left;
89 88 overflow:auto;
90   - /*min-height:630px;height:410px;*/min-height:500px;
  89 + min-height:500px;
91 90 }
92 91  
93 92 #content {
94 93 margin-left: 220px;
95   - /*height:515px;*/height:500px;
  94 + height:500px;
96 95 }
97 96  
98 97 #content_container {
... ... @@ -105,19 +104,19 @@ select {
105 104 border: 1px solid rgb(207, 207, 207);
106 105 padding: 5px;
107 106 overflow: auto;
108   - /*min-height: 400px;*/min-height: 300px;
  107 + min-height: 300px;
109 108 }
110 109  
111 110 #step_content_dependencies {
112 111 border: 1px solid rgb(207, 207, 207);
113   - /*padding: 5px;*/padding: 12px;
114   - /*min-height:270px;*/min-height:170px;
  112 + padding: 12px;
  113 + /min-height:170px;
115 114 }
116 115  
117 116 #step_content_configuration {
118 117 border: 1px solid rgb(207, 207, 207);
119 118 padding: 5px;
120   - /*min-height:320px;*//*height:330px*/min-height:130px;
  119 + min-height:130px;
121 120 }
122 121  
123 122 #step_content_services {
... ... @@ -129,25 +128,25 @@ select {
129 128 #step_content_registration {
130 129 border: 1px solid rgb(207, 207, 207);
131 130 padding: 5px;
132   - /*min-height:320px;*/min-height:100px;
  131 + min-height:100px;
133 132 }
134 133  
135 134 #step_content_registration_confirm {
136 135 border: 1px solid rgb(207, 207, 207);
137 136 padding: 5px;
138   - /*min-height:400px;*/min-height:300px;
  137 + min-height:300px;
139 138 }
140 139  
141 140 #step_content_install {
142 141 border: 1px solid rgb(207, 207, 207);
143 142 padding: 5px;
144   - /*min-height:400px;*/min-height:150px;
  143 + min-height:150px;
145 144 }
146 145  
147 146 #step_content_database {
148 147 border: 1px solid rgb(207, 207, 207);
149 148 padding: 5px;
150   - /*min-height:365px;*/min-height:240px;
  149 + min-height:240px;
151 150 }
152 151  
153 152 #step_content_database_confirm {
... ... @@ -164,7 +163,7 @@ select {
164 163  
165 164 .license_agreement {
166 165 overflow: scroll;
167   - /*height:370px;*/height:270px;
  166 + height:270px;
168 167 overflow-x:hidden;
169 168 border:1px solid #CFCFCF;
170 169 }
... ... @@ -204,11 +203,11 @@ select {
204 203  
205 204 #logo {
206 205 position:relative;
207   - /*right:760px;*/right:75%;
208   - /*top:20px;*/top:25%;
  206 + right:75%;
  207 + top:25%;
209 208 }
210 209  
211   -#install_details {
  210 +#version_details {
212 211 bottom:20px;
213 212 position:relative;
214 213 right:10px;
... ... @@ -282,7 +281,7 @@ select {
282 281 }
283 282  
284 283 .conf_paths {
285   - /*width:755px;*/width:100%;
  284 + width:100%;
286 285 }
287 286  
288 287 .errors {
... ... @@ -320,7 +319,6 @@ select {
320 319 font-size:13px;
321 320 font-weight:bold;
322 321 margin-left:5px;
323   - /*margin-top:10px;*/
324 322 }
325 323  
326 324 .step .radio {
... ... @@ -368,7 +366,9 @@ select {
368 366 .onclick {
369 367 cursor: pointer;
370 368 color: #EC7725;
371   - /*width: 150px;*//*width:350px;top:12px;position:relative;*/width:350px;padding-top:12px;position:static;
  369 + width:350px;
  370 + padding-top:12px;
  371 + position:static;
372 372 }
373 373  
374 374 .description {
... ... @@ -415,18 +415,10 @@ table#dbconf tr td input{
415 415 padding: 5px 8px;
416 416 }
417 417  
418   -/*#section {
419   -
420   -}*/
421   -
422 418 .php_ext_details table {
423   - width:745px;
  419 + width:645px;
424 420 }
425 421  
426   -/*.php_ext_details table tr {
427   -
428   -}*/
429   -
430 422 td.ext_indicator {
431 423 width:10px;
432 424 }
... ... @@ -456,7 +448,7 @@ td.dir_description {
456 448 }
457 449  
458 450 .php_con_details table {
459   - /*width:745px;*/width:675px;
  451 + width:675px;
460 452 }
461 453  
462 454 .error_message {
... ... @@ -515,12 +507,6 @@ td.dir_description {
515 507 font-size:12pt;
516 508 }
517 509  
518   -.demo {
519   - /*left:75px;
520   - position:relative;
521   - width:600px*/
522   -}
523   -
524 510 .text_message {
525 511  
526 512 }
... ... @@ -540,7 +526,7 @@ td.dir_description {
540 526  
541 527 #loading {
542 528 bottom:250px;
543   - /*left:500px;*/left:400px;
  529 + left:400px;
544 530 position:relative;
545 531 height:0px;
546 532 width:0px;
... ... @@ -563,15 +549,15 @@ td.dir_description {
563 549 }
564 550  
565 551 .dependency_details {
566   - /*top:12px;*/padding-top:12px;
567   - /*position:relative;*/position:static;
  552 + padding-top:12px;
  553 + position:static;
568 554 width:650px;
569 555 }
570 556  
571 557 .dependencies {
572   - /*position:relative;*/position:static;
  558 + position:static;
573 559 right:30%;
574   - /*width:880px;*/width:650px;
  560 + width:650px;
575 561 }
576 562  
577 563 .registration_template {
... ... @@ -583,7 +569,7 @@ td.dir_description {
583 569 }
584 570  
585 571 .description_complete {
586   - /*position:relative;*/position:static;
  572 + position:static;
587 573 right:35%;
588 574 width:100%;
589 575 }
... ... @@ -603,14 +589,6 @@ td.dir_description {
603 589 font-family:sans-serif;
604 590 }
605 591  
606   -.twitter {
607   -
608   -}
609   -
610   -.facebook {
611   -
612   -}
613   -
614 592 .connect {
615 593 float:none;
616 594 padding-bottom:0;
... ...
setup/wizard/steps/complete.php
... ... @@ -169,7 +169,6 @@ class complete extends Step {
169 169 $this->util->dbUtilities->load($dbconf['dhost'], $dbconf['dport'], $dbconf['dmsusername'], $dbconf['dmsuserpassword'], $dbconf['dname']);
170 170 $loaded = $this->util->dbUtilities->getDatabaseLink();
171 171 // if we can log in to the database, check access
172   - // TODO check write access?
173 172 if ($loaded)
174 173 {
175 174 $this->temp_variables['dbConnectUser'] .= sprintf($html, 'tick', '', 'Database connectivity successful (user: ' . $dbconf['dmsusername'] . ')');
... ... @@ -257,7 +256,7 @@ class complete extends Step {
257 256 * Set all silent mode varibles
258 257 *
259 258 */
260   - private function storeSilent() {
  259 + public function storeSilent() {
261 260 $this->temp_variables['services_check'] = $this->services_check;
262 261 $this->temp_variables['paths_check'] = $this->paths_check;
263 262 $this->temp_variables['privileges_check'] = $this->privileges_check;
... ...
setup/wizard/steps/configuration.php
... ... @@ -703,17 +703,17 @@ class configuration extends Step
703 703 */
704 704 public function getContentPath() {
705 705 $configPath = realpath('../../../config/config-path');
706   - if($configPath == '')
  706 + if(!file_exists($configPath))
707 707 $configPath = realpath('../../config/config-path');
708   - if(!$configPath) return false;
  708 + if(!file_exists($configPath)) return false;
709 709 return $configPath;
710 710 }
711 711  
712 712 public function getCachePath() {
713 713 $cachePath = realpath('../../../config/cache-path');
714   - if($cachePath == '')
  714 + if(!file_exists($cachePath))
715 715 $cachePath = realpath('../../config/cache-path');
716   - if(!$cachePath) return false;
  716 + if(!file_exists($cachePath)) return false;
717 717 return $cachePath;
718 718 }
719 719 }
... ...
setup/wizard/steps/database.php
... ... @@ -150,22 +150,13 @@ class database extends Step
150 150 private $dmsuserpassword = '';
151 151  
152 152 /**
153   - * Location of database binaries.
154   - *
155   - * @author KnowledgeTree Team
156   - * @access private
157   - * @var string
158   - */
159   - private $mysqlDir; // TODO:multiple databases
160   -
161   - /**
162 153 * Name of database binary.
163 154 *
164 155 * @author KnowledgeTree Team
165 156 * @access private
166 157 * @var string
167 158 */
168   - private $dbbinary = ''; // TODO:multiple databases
  159 + private $dbbinary = '';
169 160  
170 161 /**
171 162 * Database table prefix
... ... @@ -230,7 +221,7 @@ class database extends Step
230 221 */
231 222 protected $silent = true;
232 223  
233   - private $salt = 'installers';
  224 + //protected $salt = 'installers';
234 225  
235 226 /**
236 227 * Main control of database setup
... ... @@ -284,7 +275,8 @@ class database extends Step
284 275 $this->setPostConfig(); // Set any posted variables
285 276 return 'next';
286 277 } else if($this->edit()) {
287   - $this->setDataFromSession("database"); // Set Session Information, since its an edit
  278 + if($this->setDataFromSession("database")) // Set Session Information, since its an edit
  279 + $this->setDetails(); // Set any posted variables
288 280 $this->temp_variables['state'] = 'edit';
289 281  
290 282 return 'landing';
... ... @@ -363,8 +355,8 @@ class database extends Step
363 355 * @return boolean
364 356 */
365 357 private function setErrorsFromSession() {
366   - if(isset($_SESSION[$this->salt]['database']['errors'])) {
367   - $this->error[] = $_SESSION[$this->salt]['database']['errors'];
  358 + if(isset($_SESSION['installers']['database']['errors'])) {
  359 + $this->error[] = $_SESSION['installers']['database']['errors'];
368 360  
369 361 return true;
370 362 }
... ... @@ -382,7 +374,7 @@ class database extends Step
382 374 */
383 375 public function setPostConfig() {
384 376 $this->dtype = $this->getPostSafe("dtype");
385   - $this->dtypes = array("0"=>"mysql"); // TODO:multiple databases
  377 + $this->dtypes = array("0"=>"mysql");
386 378 $this->dhost = $this->getPostSafe("dhost");
387 379 $this->dport = $this->getPostSafe("dport");
388 380 $this->dname = $this->getPostSafe("dname");
... ... @@ -408,7 +400,7 @@ class database extends Step
408 400 public function loadDefaults($simplexml) {
409 401 if($simplexml) {
410 402 $this->temp_variables['dtype'] = "";
411   - $this->temp_variables['dtypes'] = array("0"=>"mysql"); // TODO:multiple databases
  403 + $this->temp_variables['dtypes'] = array("0"=>"mysql");
412 404 $this->temp_variables['dname'] = (string) $simplexml->dname;
413 405 $this->temp_variables['duname'] = (string) $simplexml->duname;
414 406 $this->temp_variables['dhost'] = (string) $simplexml->dhost;
... ... @@ -416,8 +408,8 @@ class database extends Step
416 408 $this->temp_variables['dpassword'] = '';
417 409 $this->temp_variables['dmsname'] = (string) $simplexml->dmsadminuser;
418 410 $this->temp_variables['dmsusername'] = (string) $simplexml->dmsuser;
419   - $this->temp_variables['dmspassword'] = (string) $simplexml->dmsaupass;
420   - $this->temp_variables['dmsuserpassword'] = (string) $simplexml->dmsupass;
  411 + $this->temp_variables['dmspassword'] = substr(md5(rand()), 0, 9);
  412 + $this->temp_variables['dmsuserpassword'] = substr(md5(rand()), 0, 9);
421 413 if(WINDOWS_OS) {
422 414 $this->temp_variables['dbbinary'] = 'mysql.exe';
423 415 } else {
... ... @@ -445,7 +437,7 @@ class database extends Step
445 437 $this->temp_variables['state'] = '';
446 438 }
447 439 $this->temp_variables['dtype'] = $this->getPostSafe('dtype');
448   - $this->temp_variables['dtypes'] = array("0"=>"mysql"); // TODO:multiple databases;
  440 + $this->temp_variables['dtypes'] = array("0"=>"mysql");
449 441 $this->temp_variables['dhost'] = $this->getPostSafe('dhost');
450 442 $this->temp_variables['dport'] = $this->getPostSafe('dport');
451 443 $this->temp_variables['dname'] = $this->getPostSafe('dname');
... ... @@ -771,16 +763,34 @@ class database extends Step
771 763 $dbMigrate = $this->util->getDataFromPackage('migrate', 'database');
772 764 $sqlFile = $dbMigrate['dumpLocation'];
773 765 $this->parse_mysql_dump($sqlFile);
774   - $dropPluginHelper = "TRUNCATE plugin_helper;"; // Remove plugin helper table
775   - $this->util->dbUtilities->query($dropPluginHelper);
  766 + $this->prepDatabase();
  767 +
  768 + return true;
  769 + }
  770 +
  771 + private function prepDatabase() {
  772 + $this->truncatePluginHelper();
  773 + $this->truncateActiveSessions();
776 774 $this->addServerPort();
777   - $updateExternalBinaries = 'UPDATE config_settings c SET c.value = "default" where c.group_name = "externalBinary";'; // Remove references to old paths
778   - $this->util->dbUtilities->query($updateExternalBinaries);
  775 + $this->updateConfigSettings();
779 776 $this->reBuildPaths();
780 777 $this->writeBinaries(); // Rebuild some of the binaries
781   - $this->util->getSystemIdentifier(); // ensure a guid was generated and is stored
782   -
783   - return true;
  778 + $this->util->getSystemIdentifier(); // ensure a guid was generated and is stored
  779 + }
  780 +
  781 + private function truncateActiveSessions() {
  782 + $dropActiveSessions = "TRUNCATE active_sessions;"; // Remove plugin helper table
  783 + $this->util->dbUtilities->query($dropActiveSessions);
  784 + }
  785 +
  786 + private function truncatePluginHelper() {
  787 + $dropPluginHelper = "TRUNCATE plugin_helper;"; // Remove plugin helper table
  788 + $this->util->dbUtilities->query($dropPluginHelper);
  789 + }
  790 +
  791 + private function updateConfigSettings() {
  792 + $updateExternalBinaries = 'UPDATE config_settings c SET c.value = "default" where c.group_name = "externalBinary";'; // Remove references to old paths
  793 + $this->util->dbUtilities->query($updateExternalBinaries);
784 794 }
785 795  
786 796 private function reBuildPaths() {
... ... @@ -876,7 +886,7 @@ class database extends Step
876 886 private function closeMysql() {
877 887 try {
878 888 $this->util->dbUtilities->close();
879   - } catch (Exeption $e) {
  889 + } catch (Exception $e) {
880 890 $this->error['con'] = "Could not close: " . $e;
881 891 }
882 892 }
... ...
setup/wizard/steps/services.php
... ... @@ -245,8 +245,7 @@ class services extends Step
245 245 $this->serviceCheck = 'tick';
246 246 }
247 247 $this->storeSilent(); // Store info needed for silent mode
248   - if(!empty($errors))
249   - return false;
  248 +
250 249 return true;
251 250 }
252 251  
... ...
setup/wizard/templates/database.tpl
... ... @@ -21,7 +21,6 @@
21 21 $input_size = '45';
22 22 $align = 'left';
23 23 ?>
24   -<!-- TODO: Different Databases-->
25 24 <?php if($state != 'edit') { ?>
26 25 <tr><td>Your current database type is: </td>
27 26 <?php if($dtypes) {
... ... @@ -86,7 +85,6 @@
86 85 <input type="button" name="Next" value="Next" onclick="javascript:{w.showStep(1, 'n');}" class="button_next"/>
87 86 <?php } ?>
88 87 </div>
89   -
90 88 <!-- STEP 2 of the database configuration - Admin user password settings -->
91 89 <div id="database" class="step2" style="display:none;">
92 90 <div class="description">
... ... @@ -114,7 +112,6 @@ An administrative user is required for creating tables within the database.
114 112 <input type="button" name="Previous" value="Previous" onclick="javascript:{w.showStep(2, 'p');}" class="button_previous"/>
115 113 <input type="button" name="Next" value="Next" onclick="javascript:{w.showStep(2, 'n');}" class="button_next"/>
116 114 </div>
117   -
118 115 <!-- STEP 3 of the database configuration - default user password settings -->
119 116 <div id="database" class="step3" style="display:none;">
120 117 <div class="description">
... ...
setup/wizard/templates/database_confirm.tpl
1 1 <form id="services_database_registration" action="index.php?step_name=<?php echo $step_name; ?>" method="post">
2 2 <p class="title">Confirming Database Configurations</p>
3   -
4 3 <div class="description">
5 4 Confirm whether KnowledgeTree has correctly determined your database settings before proceeding. Print this page for future use. <a href="javascript:window.print()">Click to Print This Page</a>
6 5 </div>
... ... @@ -41,9 +40,7 @@
41 40 </tr>
42 41 <?php } ?>
43 42 </table>
44   - <!--</div>-->
45 43 <h3><b>Advanced Settings</b></h3>
46   -
47 44 <table class="dbconf">
48 45 <tr>
49 46 <td width="153px">Host: </td>
... ... @@ -68,29 +65,23 @@
68 65 </tr>
69 66 <?php } ?>
70 67 </table>
71   -
72 68 <h3><b>Database Users (System Generated)</b></h3>
73   -
74 69 <table class="dbconf">
75   - <?php //if (!$silent) { ?>
76 70 <tr>
77 71 <td width="153px">DMS Admin Username: </td>
78 72 <td width="15px"> <div id="tooltips" title="Database Administrative User for KnowledgeTree System">&nbsp;</div> </td>
79 73 <td><?php echo $dmsname; ?></td>
80 74 </tr>
81   - <?php //} ?>
82 75 <tr>
83 76 <td>DMS Admin Password: </td>
84 77 <td> <div id="tooltips" title="Database Administrative User password">&nbsp;</div> </td>
85 78 <td><?php echo $dmspassword; ?></td>
86 79 </tr>
87   - <?php //if (!$silent) { ?>
88 80 <tr>
89 81 <td>DMS User Username: </td>
90 82 <td> <div id="tooltips" title="Database User for KnowledgeTree System">&nbsp;</div> </td>
91 83 <td><?php echo $dmsusername; ?></td>
92 84 </tr>
93   - <?php //} ?>
94 85 <tr>
95 86 <td>DMS User Password: </td>
96 87 <td> <div id="tooltips" title="Database User password">&nbsp;</div> </td>
... ...
setup/wizard/templates/wizard.tpl
... ... @@ -20,7 +20,7 @@
20 20 <div id="outer-wrapper" align="left">
21 21 <div id="header">
22 22 <div id="logo"><?php echo $html->image('dame/installer-header_logo.png'); ?> </div>
23   - <div id="install_details">
  23 + <div id="version_details">
24 24 <span style="font-size:120%;"> <?php echo $vars['install_version']; ?> </span>
25 25 <span style="font-size:120%;"><?php echo $vars['install_type']; ?></span>
26 26 </div>
... ... @@ -45,7 +45,6 @@
45 45 </div>
46 46 <div class="clearing">&nbsp;</div>
47 47 </div>
48   -
49 48 <div id="footer">
50 49 <?php echo $html->image('dame/powered-by-kt.png', array("height"=>"23px", "width"=>"105px", "style"=>"padding: 5px;")); ?>
51 50 </div>
... ...
templates/ktcore/search2/adv_query_builder.smarty
... ... @@ -472,8 +472,6 @@ function addFieldTypeSelection(groupid, fid, type, options)
472 472 default:
473 473 html += 'unknown: ' + type;
474 474 }
475   - // Jarrett Jordaan
476   - // Closing tags added
477 475 html += "</nobr></td>";
478 476  
479 477 return {html: html, init: callback};
... ...
webservice/clienttools/client_service.php
... ... @@ -44,6 +44,18 @@ class client_service{
44 44 return $var;
45 45 }
46 46  
  47 + protected function logTrace($location=NULL,$message=NULL){
  48 + Clienttools_Syslog::logTrace($this->AuthInfo['user'],'SERVICE - '.$location,$message);
  49 + }
  50 +
  51 + protected function logError($location=NULL,$detail=NULL,$err=NULL){
  52 + Clienttools_Syslog::logError($this->AuthInfo['user'],'SERVICE - '.$location,$detail,$err);
  53 + }
  54 +
  55 + protected function logInfo($location=NULL,$message=NULL,$debugData=NULL){
  56 + Clienttools_Syslog::logInfo($this->AuthInfo['user'],'SERVICE - '.$location,$message,$debugData);
  57 + }
  58 +
47 59 protected function checkPearError($obj,$errMsg,$debug=NULL,$response=NULL){
48 60 if (PEAR::isError($obj)){
49 61 if($response===NULL)$response=array('status_code' => 1);
... ...
webservice/clienttools/clienttools_syslog.php
... ... @@ -7,14 +7,22 @@ class Clienttools_Syslog{
7 7 private static $errorLogTemplate='[date] | [time] | ERROR | [session] | [user] | [location] | [error_detail] | ([error])';
8 8  
9 9  
  10 + /**
  11 + * Parse an array into a string template
  12 + * @param $template The template string - array keys in square brackets : [date] | [time] | ERROR | [session] | [user] | [location] | [error_detail] | ([error])
  13 + * @param $data The associative array to parse into template. Keys will replace [keys] in template string.
  14 + * @return string The parsed template string
  15 + */
10 16 private static function parseTemplate($template=NULL,$data=NULL){
11 17 $ret=null;
12 18 if(is_array($data)){
13 19 $txs=array_keys($data);
  20 + foreach($txs as $idx=>$val){
  21 + $txs[$idx]='['.$val.']';
  22 + }
14 23 $txd=array_values($data);
15 24 $ret=str_replace($txs,$txd,$template);
16 25 };
17   -// echo print_r(Array('s'=>$txs,'d'=>$txd),true)."\n\n\n\n\n\n";
18 26 return $ret;
19 27 }
20 28  
... ... @@ -29,8 +37,12 @@ class Clienttools_Syslog{
29 37 }
30 38  
31 39  
  40 + /**
  41 + * Write a line to the log file.
  42 + * @param $line
  43 + * @return void
  44 + */
32 45 private static function writeLogLine($line=NULL){
33   -// echo('LOGFILE: '.realpath(self::getLogFile()));
34 46 if($line){
35 47 $fp=fopen(self::getLogFile(),'a');
36 48 fwrite($fp,$line."\n");
... ... @@ -43,7 +55,6 @@ class Clienttools_Syslog{
43 55 * @return boolean
44 56 */
45 57 private static function doErrorLogging(){
46   -// $GLOBALS['default']['debugLevel']; //Another less secure way of finding the configured debugLevel
47 58 return KTConfig::getSingleton()->get('explorerCPSettings/debugLevel')=='error' || self::doDebugLogging();
48 59 }
49 60  
... ... @@ -55,45 +66,80 @@ class Clienttools_Syslog{
55 66 return KTConfig::getSingleton()->get('explorerCPSettings/debugLevel')=='debug';
56 67 }
57 68  
  69 + /**
  70 + * Store a line in the log file.. the message and a json string containing the data information will be stored
  71 + * @param $user The logged in user
  72 + * @param $location Information about the location from whence the function was called
  73 + * @param $message The descriptive message explaining the debug data that follows
  74 + * @param $data The debug data - this will be converted to a json string.
  75 + * @return void
  76 + */
58 77 public static function logInfo($user,$location,$message,$data){
59   - $entry=self::parseTemplate(self::$debugLogTemplate,array(
60   - 'date' =>date('Y-m-d'),
61   - 'time' =>date('h:i:s'),
62   - 'user' =>$user,
63   - 'session'=>session_id(),
64   - 'location'=>$location,
65   - 'debug_message'=>$message,
66   - 'debug_data'=>json_encode($data)
67   - ));
68   -
69   - self::writeLogLine($entry);
  78 + if(self::doDebugLogging()){
  79 + list($usec, $sec) = explode(" ", microtime());
  80 + $usec=ceil($usec*1000);
  81 + $entry=self::parseTemplate(self::$debugLogTemplate,array(
  82 + 'date' =>date('Y-m-d'),
  83 + 'time' =>date('h:i:s').':'.$usec,
  84 + 'user' =>$user,
  85 + 'session'=>session_id(),
  86 + 'location'=>$location,
  87 + 'debug_message'=>$message,
  88 + 'debug_data'=>json_encode($data)
  89 + ));
  90 +
  91 + self::writeLogLine($entry);
  92 + }
70 93 }
71 94  
  95 + /**
  96 + * Store a line in the log file.. A simple string to indicate a point in the software
  97 + * @param $user The logged in user
  98 + * @param $location Information about the location from whence the function was called
  99 + * @param $message A string indicating a point reached in the software
  100 + * @return void
  101 + */
72 102 public static function logTrace($user,$location,$message){
73   - $entry=self::parseTemplate(self::$traceLogTemplate,array(
74   - 'date' =>date('Y-m-d'),
75   - 'time' =>date('h:i:s'),
76   - 'user' =>$user,
77   - 'session'=>session_id(),
78   - 'location'=>$location,
79   - 'trace_message'=>$message,
80   - ));
81   -
82   - self::writeLogLine($entry);
  103 + if(self::doDebugLogging()){
  104 + list($usec, $sec) = explode(" ", microtime());
  105 + $usec=ceil($usec*1000);
  106 + $entry=self::parseTemplate(self::$traceLogTemplate,array(
  107 + 'date' =>date('Y-m-d'),
  108 + 'time' =>date('h:i:s').':'.$usec,
  109 + 'user' =>$user,
  110 + 'session'=>session_id(),
  111 + 'location'=>$location,
  112 + 'trace_message'=>$message,
  113 + ));
  114 +
  115 + self::writeLogLine($entry);
  116 + }
83 117 }
84 118  
  119 + /**
  120 + * Store a line in the log file.. An Error log
  121 + * @param $user The logged in user
  122 + * @param $location Information about the location from whence the function was called
  123 + * @param $detail A string providing information as to the context of the encountered error
  124 + * @param $err The exception object - this will be serialized
  125 + * @return void
  126 + */
85 127 public static function logError($user=NULL,$location=NULL,$detail=NULL,$err=NULL){
86   - $entry=self::parseTemplate(self::$errorLogTemplate,array(
87   - 'date' =>date('Y-m-d'),
88   - 'time' =>date('h:i:s'),
89   - 'user' =>$user,
90   - 'session'=>session_id(),
91   - 'location'=>$location,
92   - 'error_detail'=>json_encode($detail),
93   - 'error'=>json_encode($err),
94   - ));
95   -
96   - self::writeLogLine($entry);
  128 + if(self::doErrorLogging()){
  129 + list($usec, $sec) = explode(" ", microtime());
  130 + $usec=ceil($usec*1000);
  131 + $entry=self::parseTemplate(self::$errorLogTemplate,array(
  132 + 'date' =>date('Y-m-d'),
  133 + 'time' =>date('h:i:s').':'.$usec,
  134 + 'user' =>$user,
  135 + 'session'=>session_id(),
  136 + 'location'=>$location,
  137 + 'error_detail'=>json_encode($detail),
  138 + 'error'=>json_encode($err),
  139 + ));
  140 +
  141 + self::writeLogLine($entry);
  142 + }
97 143  
98 144 }
99 145 }
... ...
webservice/clienttools/services/0.9/auth.php
... ... @@ -3,6 +3,7 @@
3 3 class auth extends client_service {
4 4  
5 5 public function login(){
  6 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
6 7 $params=$this->AuthInfo;
7 8  
8 9 $username=$params['user'];
... ... @@ -71,6 +72,7 @@ class auth extends client_service {
71 72 }
72 73  
73 74 public function japiLogin(){
  75 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
74 76 global $default;
75 77  
76 78 $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']);
... ... @@ -82,6 +84,7 @@ class auth extends client_service {
82 84 }
83 85  
84 86 public function pickup_session(){
  87 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
85 88 $params=$this->AuthInfo;
86 89 $app_type=$params['appType'];
87 90 $session_id=$params['session'];
... ... @@ -98,6 +101,7 @@ class auth extends client_service {
98 101  
99 102  
100 103 public function ping(){
  104 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
101 105 global $default;
102 106 $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']);
103 107 $versions=$this->handler->getServerVersions();
... ... @@ -120,12 +124,19 @@ class auth extends client_service {
120 124 }
121 125  
122 126 function logout($params){
  127 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
123 128 $params=$this->AuthInfo;
124 129 $app_type=$params['appType'];
125 130 $session_id=$params['session'];
126 131 $ip=$_SERVER['REMOTE_ADDR'];
127 132  
128   - $session = $this->KT->get_active_session($session_id, $ip, $app_type);
  133 + $session=$this->KT->get_session();
  134 + $this->logInfo((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Logout Session Object (From KT)',$session);
  135 +
  136 + if(get_class($session)!='KTAPI_UserSession'){
  137 + $session = $this->KT->get_active_session($session_id, $ip, $app_type);
  138 + }
  139 + $this->logInfo((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Logout Session Object (To Logout)',$session);
129 140  
130 141 if (PEAR::isError($session)){
131 142 return false;
... ...
webservice/clienttools/services/0.9/kt.php
1 1 <?php
2   -class kt extends client_service {
3   -
4   -
  2 +class kt extends client_service {
5 3  
6   -/**
7   - * Get Supported (?) Languages
8   - *
9   - * returns array containing languages, count, & defaultlanguage
10   - *
11   - */
12   - function get_languages($passthru=false){
  4 + /**
  5 + * Get Supported (?) Languages
  6 + *
  7 + * returns array containing languages, count, & defaultlanguage
  8 + *
  9 + */
  10 + function get_languages($passthru = false) {
  11 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
13 12 global $default;
14   - $oReg =& KTi18nregistry::getSingleton();
15   - $aRegisteredLangs=$oReg->geti18nLanguages('knowledgeTree');
16   - $aLanguageNames=$oReg->getLanguages('knowledgeTree');
17   - $languages=array();
18   -
19   - if(!empty($aRegisteredLangs)){
20   - foreach (array_keys($aRegisteredLangs) as $sLang){
21   - $languages[]=array(
22   - 'isoCode'=>$sLang,
23   - 'language'=>$aLanguageNames[$sLang]
24   - );
  13 + $oReg = & KTi18nregistry::getSingleton ();
  14 + $aRegisteredLangs = $oReg->geti18nLanguages ( 'knowledgeTree' );
  15 + $aLanguageNames = $oReg->getLanguages ( 'knowledgeTree' );
  16 + $languages = array ();
  17 +
  18 + if (! empty ( $aRegisteredLangs )) {
  19 + foreach ( array_keys ( $aRegisteredLangs ) as $sLang ) {
  20 + $languages [] = array ('isoCode' => $sLang, 'language' => $aLanguageNames [$sLang] );
25 21 }
26 22 }
27   - $response=array('languages'=>$languages, 'count'=>count($languages), 'defaultLanguage'=>$default->defaultLanguage);
28   - if(is_bool($passthru))if($passthru)return $response;
29   - $this->setResponse($response);
  23 + $response = array ('languages' => $languages, 'count' => count ( $languages ), 'defaultLanguage' => $default->defaultLanguage );
  24 + if (is_bool ( $passthru ))
  25 + if ($passthru)
  26 + return $response;
  27 + $this->setResponse ( $response );
30 28 }
31   -
32   -
33   - function get_rootfolder_detail($params){
34   - $params['folderId']='1';
35   - $this->get_folder_detail($params);
  29 +
  30 + function get_rootfolder_detail($params) {
  31 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  32 + $params ['folderId'] = '1';
  33 + $this->get_folder_detail ( $params );
36 34 }
37   -
38   -
39   - function get_folder_detail($params) {
40   - if(isset($params['node'])&&!isset($params['folderId'])){
41   - $params['node']=split('_',$params['node']);
42   - $params['folderId']=$params['node'][1];
  35 +
  36 + function get_folder_detail($params) {
  37 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  38 + if (isset ( $params ['node'] ) && ! isset ( $params ['folderId'] )) {
  39 + $params ['node'] = split ( '_', $params ['node'] );
  40 + $params ['folderId'] = $params ['node'] [1];
43 41 }
44   - $kt=&$this->KT;
45   -
46   - $folder=&$kt->get_folder_by_id($params['folderId']);
47   - if (PEAR::isError($folder))
48   - {
49   - $this->setError("Could not get folder by Id: {$params['folderId']}");
50   - $this->setDebug('FolderError',array('kt'=>$kt,'folder'=>$folder));
  42 + $kt = &$this->KT;
  43 +
  44 + $folder = &$kt->get_folder_by_id ( $params ['folderId'] );
  45 + if (PEAR::isError ( $folder )) {
  46 + $this->setError ( "Could not get folder by Id: {$params['folderId']}" );
  47 + $this->setDebug ( 'FolderError', array ('kt' => $kt, 'folder' => $folder ) );
51 48 return false;
52 49 }
53   -
54   - $detail=$folder->get_detail();
55   - if (PEAR::isError($detail)){
56   - $this->setResponse("detail error {$params['node']}");
  50 +
  51 + $detail = $folder->get_detail ();
  52 + if (PEAR::isError ( $detail )) {
  53 + $this->setResponse ( "detail error {$params['node']}" );
57 54 return false;
58 55 }
59   -
60   - if(strtolower($detail['folder_name'])=='root folder'){
61   - $detail['folder_name']='KnowledgeTree';
  56 +
  57 + if (strtolower ( $detail ['folder_name'] ) == 'root folder') {
  58 + $detail ['folder_name'] = 'KnowledgeTree';
62 59 }
63   -
64   - $qtip .= $this->xlate('Folder name').": {$detail['folder_name']}<br>";
65   - $class='folder';
66   -
67   - $permissions=$detail['permissions'];
68   - $perms='';
69   - $canWrite=false;
70   -
71   - for ($j=0; $j < strlen($permissions); $j++){
72   - switch (strtoupper($permissions{$j})){
73   - case 'W':
74   - $canWrite=true;
75   - $perms .= $this->xlate('write, ');
76   - break;
77   - case 'R':
78   - $perms .= $this->xlate('read, ');
79   - break;
80   - case 'A':
81   - $perms .= $this->xlate('add folder, ');
82   - break;
  60 +
  61 + $qtip .= $this->xlate ( 'Folder name' ) . ": {$detail['folder_name']}<br>";
  62 + $class = 'folder';
  63 +
  64 + $permissions = $detail ['permissions'];
  65 + $perms = '';
  66 + $canWrite = false;
  67 +
  68 + for($j = 0; $j < strlen ( $permissions ); $j ++) {
  69 + switch (strtoupper ( $permissions {$j} )) {
  70 + case 'W' :
  71 + $canWrite = true;
  72 + $perms .= $this->xlate ( 'write, ' );
  73 + break;
  74 + case 'R' :
  75 + $perms .= $this->xlate ( 'read, ' );
  76 + break;
  77 + case 'A' :
  78 + $perms .= $this->xlate ( 'add folder, ' );
  79 + break;
83 80 }
84 81 }
85   -
86   - if (strlen($perms) > 2){
87   - $perms=substr($perms, 0, strlen($perms)-2);
  82 +
  83 + if (strlen ( $perms ) > 2) {
  84 + $perms = substr ( $perms, 0, strlen ( $perms ) - 2 );
88 85 }
89   -
90   - $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
91   - $qtip .= $canWrite ? $this->xlate('You may add content to this folder') : $this->xlate('You may not add content to this folder');
92   -
93   - $result[]=array(
94   - 'text'=>$detail['folder_name'],
95   - 'id'=>'F_'. $params['folderId'],
96   - 'filename'=>$detail['folder_name'],
97   - 'cls'=>'folder',
98   - 'leaf'=>false,
99   - 'document_type'=>'',
100   - 'item_type'=>'F',
101   - 'permissions'=>$permissions,
102   - 'qtip'=> $qtip
103   - );
104   -
105   - $this->setResponse($result);
  86 +
  87 + $qtip .= $this->xlate ( 'Permissions:' ) . " {$perms}<br>";
  88 + $qtip .= $canWrite ? $this->xlate ( 'You may add content to this folder' ) : $this->xlate ( 'You may not add content to this folder' );
  89 +
  90 + $result [] = array ('text' => $detail ['folder_name'], 'id' => 'F_' . $params ['folderId'], 'filename' => $detail ['folder_name'], 'cls' => 'folder', 'leaf' => false, 'document_type' => '', 'item_type' => 'F', 'permissions' => $permissions, 'qtip' => $qtip );
  91 +
  92 + $this->setResponse ( $result );
106 93 return true;
107 94 }
108   -
109   -
110   - function get_folder_contents($params){
111   - $kt=&$this->KT;
112   -
113   - $params['control']='F_';
114   - $params['node']=substr($params['node'], strlen($params['control']));
115   -
116   - $folder=&$kt->get_folder_by_id($params['node']);
117   - if(!$this->checkPearError($folder,"[error 1] Folder Not Found: {$params['control']}{$params['node']}",'',array()))return false;
118   -
119   - $types=(isset($params['types']) ? $params['types'] : 'DF');
120   - $listing=$folder->get_listing(1, $types);
121   - $result=$this->_processListing($listing, 'folderContents', $params);
122   -
123   - $this->setResponse($result);
124   - return true;
  95 +
  96 + function get_folder_contents($params) {
  97 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  98 + $kt = &$this->KT;
  99 +
  100 + $params ['control'] = 'F_';
  101 + $params ['node'] = substr ( $params ['node'], strlen ( $params ['control'] ) );
  102 +
  103 + $folder = &$kt->get_folder_by_id ( $params ['node'] );
  104 + if (! $this->checkPearError ( $folder, "[error 1] Folder Not Found: {$params['control']}{$params['node']}", '', array () ))
  105 + return false;
  106 +
  107 + $types = (isset ( $params ['types'] ) ? $params ['types'] : 'DF');
  108 + $listing = $folder->get_listing ( 1, $types );
  109 + $result = $this->_processListing ( $listing, 'folderContents', $params );
  110 +
  111 + $this->setResponse ( $result );
  112 + return true;
125 113 }
126   -
127   -
128   - /**
129   - * Returns the contents of a folder formatted for a grid view.
130   - *
131   - * @param array $arr
132   - * @return array
133   - */
134   - function get_folder_contents_for_grid($arr)
135   - {
136   - $kt=&$this->KT;
137   -
138   - $arr['control']='F_';
139   - $arr['node']=substr($arr['node'], strlen($arr['control']));
140   -
141   - $folder=&$kt->get_folder_by_id($arr['node']);
142   - if (PEAR::isError($folder)){
143   - echo '<pre>'.print_r($arr,true).'</pre>';
144   - $this->addError('Folder Not found');
  114 +
  115 + /**
  116 + * Returns the contents of a folder formatted for a grid view.
  117 + *
  118 + * @param array $arr
  119 + * @return array
  120 + */
  121 + function get_folder_contents_for_grid($arr) {
  122 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  123 + $kt = &$this->KT;
  124 +
  125 + $arr ['control'] = 'F_';
  126 + $arr ['node'] = substr ( $arr ['node'], strlen ( $arr ['control'] ) );
  127 +
  128 + $folder = &$kt->get_folder_by_id ( $arr ['node'] );
  129 + if (PEAR::isError ( $folder )) {
  130 + echo '<pre>' . print_r ( $arr, true ) . '</pre>';
  131 + $this->addError ( 'Folder Not found' );
145 132 return false;
146 133 }
147   -
148   - $types=(isset($arr['types']) ? $arr['types'] : 'DF');
149 134  
150   - $listing=$folder->get_listing(1, $types);
151   -
152   - $result=$this->_processListing($listing, 'grid', $arr);
  135 + $types = (isset ( $arr ['types'] ) ? $arr ['types'] : 'DF');
153 136  
154   - $this->setResponse(array('totalCount'=>count($listing), 'items'=>$result));
  137 + $listing = $folder->get_listing ( 1, $types );
  138 +
  139 + $result = $this->_processListing ( $listing, 'grid', $arr );
  140 +
  141 + $this->setResponse ( array ('totalCount' => count ( $listing ), 'items' => $result ) );
155 142  
156 143 return true;
157 144 }
158   -
159   -
160 145  
161   - private function _processListing($listing, $type, $arr){
162   - $result=array();
163   - $methodToIncludeItem='_processItemInclusion_'.$type;
164   -
165   - foreach($listing as $item){
  146 + private function _processListing($listing, $type, $arr) {
  147 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  148 + $result = array ();
  149 + $methodToIncludeItem = '_processItemInclusion_' . $type;
  150 +
  151 + foreach ( $listing as $item ) {
166 152 /* Trying to fix folder sizes */
167   - if($item['filesize']<=0){
168   - $item['filesize']='';
169   - }else{
170   - $item['filesize']=serviceHelper::size_readable($item['filesize']);
  153 + if ($item ['filesize'] <= 0) {
  154 + $item ['filesize'] = '';
  155 + } else {
  156 + $item ['filesize'] = serviceHelper::size_readable ( $item ['filesize'] );
171 157 }
172 158  
173   - $filename=$item['filename'];
174   - $itemType=$item['item_type'];
175   -
176   - $includeMe=true;
177   - $qtip='';
178   - $canWrite=false;
179   - $immutable=false;
180   - $permissions=$item['permissions'];
181   - $perms='';
182   -
183   - for ($j=0; $j < strlen($permissions); $j++){
184   - switch (strtoupper($permissions{$j})){
185   - case 'W':
186   - $canWrite=true;
187   - $perms .= $this->xlate('write, ');
  159 + $filename = $item ['filename'];
  160 + $itemType = $item ['item_type'];
  161 +
  162 + $includeMe = true;
  163 + $qtip = '';
  164 + $canWrite = false;
  165 + $immutable = false;
  166 + $permissions = $item ['permissions'];
  167 + $perms = '';
  168 +
  169 + for($j = 0; $j < strlen ( $permissions ); $j ++) {
  170 + switch (strtoupper ( $permissions {$j} )) {
  171 + case 'W' :
  172 + $canWrite = true;
  173 + $perms .= $this->xlate ( 'write, ' );
188 174 break;
189   - case 'R':
190   - $perms .= $this->xlate('read, ');
  175 + case 'R' :
  176 + $perms .= $this->xlate ( 'read, ' );
191 177 break;
192   - case 'A':
193   - $perms .= $this->xlate('add folder, ');
  178 + case 'A' :
  179 + $perms .= $this->xlate ( 'add folder, ' );
194 180 break;
195 181 }
196 182 }
197   -
198   - if(strlen($perms) > 2){
199   - $perms=substr($perms, 0, strlen($perms)-2);
200   - }
201   -
202   - if($itemType=='F'){
203   - $qtip .= $this->xlate('Folder name').": {$filename}<br>";
204   - $class='folder';
205   - $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
206   - $qtip .= $canWrite ? $this->xlate('You may add content to this folder') : $this->xlate('You may not add content to this folder');
  183 +
  184 + if (strlen ( $perms ) > 2) {
  185 + $perms = substr ( $perms, 0, strlen ( $perms ) - 2 );
207 186 }
  187 +
  188 + if ($itemType == 'F') {
  189 + $qtip .= $this->xlate ( 'Folder name' ) . ": {$filename}<br>";
  190 + $class = 'folder';
  191 + $qtip .= $this->xlate ( 'Permissions:' ) . " {$perms}<br>";
  192 + $qtip .= $canWrite ? $this->xlate ( 'You may add content to this folder' ) : $this->xlate ( 'You may not add content to this folder' );
  193 + }
208 194  
209 195 //documents
210   - else{
211   - $qtip='';
212   - $extpos=strrpos($filename, '.') ;
213   -
214   - if($extpos === false){
215   - $class='file-unknown';
216   - }else{
217   - $ext=substr($filename, $extpos); // Get Extension including the dot
218   - $class='file-' . substr($filename, $extpos +1); // Get Extension without the dot
  196 + else {
  197 + $qtip = '';
  198 + $extpos = strrpos ( $filename, '.' );
  199 +
  200 + if ($extpos === false) {
  201 + $class = 'file-unknown';
  202 + } else {
  203 + $ext = substr ( $filename, $extpos ); // Get Extension including the dot
  204 + $class = 'file-' . substr ( $filename, $extpos + 1 ); // Get Extension without the dot
219 205 }
220 206  
221   - $extensions=explode(',', $arr['extensions']);
222   - if(!in_array(strtolower($ext), $extensions) && !in_array('*',$extensions)){
223   - $includeMe=false;
224   - }else{
225   - $qtip .= $this->xlate('Filename') . ": {$filename}<br>";
226   - $qtip .= $this->xlate('File Size') . ": " . serviceHelper::fsize_desc($item['filesize']) . "<br>";
227   - $qtip .= $this->xlate('Modified') . ": {$item['modified_date']}<br>";
228   - $qtip .= $this->xlate('Owner') . ": {$item['created_by']}<br>";
229   - $qtip .= $this->xlate('Version') . ": {$item['version']}<br>";
230   - if (serviceHelper::bool2str(strtolower($item['is_immutable']))=='true'){
231   - $canWrite=false;
232   - $immutable=true;
  207 + $extensions = explode ( ',', $arr ['extensions'] );
  208 + if (! in_array ( strtolower ( $ext ), $extensions ) && ! in_array ( '*', $extensions )) {
  209 + $includeMe = false;
  210 + } else {
  211 + $qtip .= $this->xlate ( 'Filename' ) . ": {$filename}<br>";
  212 + $qtip .= $this->xlate ( 'File Size' ) . ": " . serviceHelper::fsize_desc ( $item ['filesize'] ) . "<br>";
  213 + $qtip .= $this->xlate ( 'Modified' ) . ": {$item['modified_date']}<br>";
  214 + $qtip .= $this->xlate ( 'Owner' ) . ": {$item['created_by']}<br>";
  215 + $qtip .= $this->xlate ( 'Version' ) . ": {$item['version']}<br>";
  216 + if (serviceHelper::bool2str ( strtolower ( $item ['is_immutable'] ) ) == 'true') {
  217 + $canWrite = false;
  218 + $immutable = true;
233 219 }
234 220  
235   - if($immutable){
236   - $qtip .= $this->xlate('Status: Immutable') . '<br>';
237   - }else if (strtolower($item['checked_out_by']) != 'n/a' && ($item['checked_out_by'] != '')){
238   - $qtip .= $this->xlate('Status: Checked out by') . " {$item['checked_out_by']}<br>";
239   - }else{
240   - $qtip .= $this->xlate('Status: Available') . '<br>';
  221 + if ($immutable) {
  222 + $qtip .= $this->xlate ( 'Status: Immutable' ) . '<br>';
  223 + } else if (strtolower ( $item ['checked_out_by'] ) != 'n/a' && ($item ['checked_out_by'] != '')) {
  224 + $qtip .= $this->xlate ( 'Status: Checked out by' ) . " {$item['checked_out_by']}<br>";
  225 + } else {
  226 + $qtip .= $this->xlate ( 'Status: Available' ) . '<br>';
241 227 }
242   - $qtip .= $this->xlate('Permissions:') . " {$perms}<br>";
243   -
244   - if($immutable){
245   - $qtip .= $this->xlate('This document is not editable');
246   - }else if ($canWrite){
247   - $qtip .= $this->xlate('You may edit this document');
248   - }else{
249   - $qtip .= $this->xlate('This document is not editable');
  228 + $qtip .= $this->xlate ( 'Permissions:' ) . " {$perms}<br>";
  229 +
  230 + if ($immutable) {
  231 + $qtip .= $this->xlate ( 'This document is not editable' );
  232 + } else if ($canWrite) {
  233 + $qtip .= $this->xlate ( 'You may edit this document' );
  234 + } else {
  235 + $qtip .= $this->xlate ( 'This document is not editable' );
250 236 }
251 237 }
252   - }//end of if for files
253   - if($includeMe){
254   - $result[]=$this->$methodToIncludeItem($item, $class, $qtip);
  238 + } //end of if for files
  239 + if ($includeMe) {
  240 + $result [] = $this->$methodToIncludeItem ( $item, $class, $qtip );
255 241 }
256 242 }
257 243 return $result;
258   - }
259   -
260   -
261   -
262   -
263   - private function _processItemInclusion_folderContents($item, $class, $qtip){
264   - return array (
265   - 'text'=>htmlspecialchars($item['title']),
266   - 'originaltext'=>$item['title'],
267   - 'id'=>($item['item_type']=='F' ? $item['item_type']."_" : "").$item['id'],
268   - 'filename'=>$item['filename'],
269   - 'cls'=>$class,
270   - 'leaf'=>($item['item_type']=='D'),
271   - 'document_type'=>$item['document_type'],
272   - 'item_type'=>$item['item_type'],
273   - 'permissions'=>$item['permissions'],
274   - 'content_id'=>$item['content_id'],
275   - 'checked_out_by'=>$item['checked_out_by'],
276   - 'qtip'=> $qtip
277   - );
278   - }
279   -
280   -
281   - private function _processItemInclusion_search($item, $class, $qtip)
282   - {
283   - if ($item['filesize']=='n/a') {
284   - $item['filesize']=-1;
285   - }
286   - return array (
287   - 'text'=>htmlspecialchars($item['title']),
288   - 'originaltext'=>$item['title'],
289   - 'id'=>$item['document_id'],
290   - 'filename'=>$item['filename'],
291   - 'cls'=>$class,
292   - 'leaf'=>true,
293   - 'document_type'=>$item['document_type'],
294   - 'item_type'=>'D',
295   - 'permissions'=>$item['permissions'],
296   - 'content_id'=>$item['content_id'],
297   - 'filesize'=>$item['filesize'],
298   - 'modified'=>$item['modified_date'],
299   - 'created_date'=>$item['created_date'],
300   - 'checked_out_by'=>$item['checked_out_by'],
301   - 'relevance'=>$item['relevance'],
302   - 'qtip'=> $qtip,
303   - 'version'=>$item['version']
304   - );
305   - }
  244 + }
  245 +
  246 + private function _processItemInclusion_folderContents($item, $class, $qtip) {
  247 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  248 + return array ('text' => htmlspecialchars ( $item ['title'] ), 'originaltext' => $item ['title'], 'id' => ($item ['item_type'] == 'F' ? $item ['item_type'] . "_" : "") . $item ['id'], 'filename' => $item ['filename'], 'cls' => $class, 'leaf' => ($item ['item_type'] == 'D'), 'document_type' => $item ['document_type'], 'item_type' => $item ['item_type'], 'permissions' => $item ['permissions'], 'content_id' => $item ['content_id'], 'checked_out_by' => $item ['checked_out_by'], 'qtip' => $qtip );
  249 + }
  250 +
  251 + private function _processItemInclusion_search($item, $class, $qtip) {
  252 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  253 + if ($item ['filesize'] == 'n/a') {
  254 + $item ['filesize'] = - 1;
  255 + }
  256 + return array ('text' => htmlspecialchars ( $item ['title'] ), 'originaltext' => $item ['title'], 'id' => $item ['document_id'], 'filename' => $item ['filename'], 'cls' => $class, 'leaf' => true, 'document_type' => $item ['document_type'], 'item_type' => 'D', 'permissions' => $item ['permissions'], 'content_id' => $item ['content_id'], 'filesize' => $item ['filesize'], 'modified' => $item ['modified_date'], 'created_date' => $item ['created_date'], 'checked_out_by' => $item ['checked_out_by'], 'relevance' => $item ['relevance'], 'qtip' => $qtip, 'version' => $item ['version'] );
  257 + }
  258 +
  259 + private function _processItemInclusion_grid($item, $class, $qtip) {
  260 + $this->logTrace ((__METHOD__.'('.__FILE__.' '.__LINE__.')'), 'Enter Function' );
  261 + //var_dump($item);
  262 +
306 263  
307   - private function _processItemInclusion_grid($item, $class, $qtip)
308   - {
309   - //var_dump($item);
310   -
311   - if ($item['filesize']=='n/a') {
312   - $item['filesize']=-1;
313   - }
314   -
315   - return array (
316   - 'text'=>htmlspecialchars($item['title']),
317   - 'originaltext'=>$item['title'],
318   - 'id'=>$item['id'],
319   - 'filename'=>$item['filename'],
320   - 'cls'=>$class,
321   - 'owner'=>$item['created_by'],
322   - 'document_type'=>$item['document_type'],
323   - 'item_type'=>$item['item_type'],
324   - 'permissions'=>$item['permissions'],
325   - 'created_date'=>$item['created_date'],
326   - 'content_id'=>$item['content_id'],
327   - 'filesize'=>$item['filesize'],
328   - 'modified'=>$item['modified_date'],
329   - 'checked_out_by'=>$item['checked_out_by'],
330   - 'version'=>$item['version']
331   - );
332   - }
333   -
334   -
  264 + if ($item ['filesize'] == 'n/a') {
  265 + $item ['filesize'] = - 1;
  266 + }
  267 +
  268 + return array ('text' => htmlspecialchars ( $item ['title'] ), 'originaltext' => $item ['title'], 'id' => $item ['id'], 'filename' => $item ['filename'], 'cls' => $class, 'owner' => $item ['created_by'], 'document_type' => $item ['document_type'], 'item_type' => $item ['item_type'], 'permissions' => $item ['permissions'], 'created_date' => $item ['created_date'], 'content_id' => $item ['content_id'], 'filesize' => $item ['filesize'], 'modified' => $item ['modified_date'], 'checked_out_by' => $item ['checked_out_by'], 'version' => $item ['version'] );
  269 + }
  270 +
335 271 public function get_metadata($params) {
336   - $kt=&$this->KT;
337   -
338   - if (substr($params['document_id'], 0, 2)=='D_') {
339   - $params['document_id']=substr($params['document_id'], 2);
  272 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  273 + $kt = &$this->KT;
  274 +
  275 + if (substr ( $params ['document_id'], 0, 2 ) == 'D_') {
  276 + $params ['document_id'] = substr ( $params ['document_id'], 2 );
340 277 }
341   -
342   - $document_id=(int)$params['document_id'];
343   - if($document_id > 0) {
344   - $document=$kt->get_document_by_id($params['document_id']);
345   - $detail=$document->get_metadata();
346   - $document_detail=$document->get_detail();
347   - $title=$document_detail['title'];
348   - $document_type=$document_detail['document_type'];
349   -
350   - }else{
351   - if(isset($params['document_type'])) {
352   - $document_type=$params['document_type'];
353   - }else{
354   - $document_type='Default';
355   - }
356   - $detail=$kt->get_document_type_metadata($document_type);
357   - $title="";
358   - }
359   -
360   - $result=array();
361   - $items=array();
362   - $index=0;
363   - $items[]=array("name"=>"__title", "index"=>0, "value"=>$title, "control_type"=>"string");
364   -
365   -
  278 +
  279 + $document_id = ( int ) $params ['document_id'];
  280 + if ($document_id > 0) {
  281 + $document = $kt->get_document_by_id ( $params ['document_id'] );
  282 + $detail = $document->get_metadata ();
  283 + $document_detail = $document->get_detail ();
  284 + $title = $document_detail ['title'];
  285 + $document_type = $document_detail ['document_type'];
  286 +
  287 + } else {
  288 + if (isset ( $params ['document_type'] )) {
  289 + $document_type = $params ['document_type'];
  290 + } else {
  291 + $document_type = 'Default';
  292 + }
  293 + $detail = $kt->get_document_type_metadata ( $document_type );
  294 + $title = "";
  295 + }
  296 +
  297 + $result = array ();
  298 + $items = array ();
  299 + $index = 0;
  300 + $items [] = array ("name" => "__title", "index" => 0, "value" => $title, "control_type" => "string" );
  301 +
366 302 // Commented out for timebeing - will be used by 'Save in Format'
  303 +
367 304  
368   - if (isset($params['extensions'])) {
369   -
370   - $fileParts=pathinfo($document_detail['filename']);
371   -
372   - $items[]=array("name"=>"__document_extension", "index"=>0, "value"=>strtolower($fileParts['extension']), "control_type"=>"lookup", "selection"=>explode(',', str_replace('.', '', $params['extensions'])));
  305 + if (isset ( $params ['extensions'] )) {
  306 +
  307 + $fileParts = pathinfo ( $document_detail ['filename'] );
  308 +
  309 + $items [] = array ("name" => "__document_extension", "index" => 0, "value" => strtolower ( $fileParts ['extension'] ), "control_type" => "lookup", "selection" => explode ( ',', str_replace ( '.', '', $params ['extensions'] ) ) );
373 310 }
  311 +
  312 + $document_types = $kt->get_documenttypes ( $params );
  313 + $items [] = array ("name" => "__document_type", "index" => 0, "value" => $document_type, "control_type" => "lookup", "selection" => $document_types );
  314 +
  315 + foreach ( $detail as $fieldset ) {
  316 + foreach ( $fieldset ['fields'] as $field ) {
  317 +
  318 + $prepArray = array ('fieldset' => $fieldset ['fieldset'], 'name' => $field ['name'],
374 319  
375   - $document_types=$kt->get_documenttypes($params);
376   - $items[]=array("name"=>"__document_type", "index"=>0, "value"=>$document_type, "control_type"=>"lookup", "selection"=>$document_types);
377   -
378   - foreach ($detail as $fieldset) {
379   - foreach ($fieldset['fields'] as $field) {
  320 + // Change for value. If blank value is set to 1, change value to ''
  321 + // Overcomes issue of n/a
  322 + 'value' => ($document_id > 0 ? ($field ['blankvalue'] == '1' ? '' : $field ['value']) : ''),
380 323  
381   - $prepArray = array(
382   - 'fieldset' => $fieldset['fieldset'],
383   - 'name' => $field['name'],
384   -
385   - // Change for value. If blank value is set to 1, change value to ''
386   - // Overcomes issue of n/a
387   - 'value' => ($document_id > 0 ? ($field['blankvalue'] == '1' ? '' : $field['value']) : ''),
388   -
389   - 'description' => $field['description'],
390   - 'control_type' => $field['control_type'],
391   - 'selection' => $field['selection'],
392   - 'required' => $field['required'],
393   - 'blankvalue' => $field['blankvalue'],
394   - 'index' => $index
395   - );
396   -
397   - // Small Adjustment for multiselect to real type
398   - if ($field['control_type'] == 'multiselect') {
399   - $prepArray['control_type'] = $field['options']['type'];
400   - }
401   -
402   -
403   - if (isset($field['options']['ishtml'])) {
404   - $prepArray['ishtml'] = $field['options']['ishtml'];
  324 + 'description' => $field ['description'], 'control_type' => $field ['control_type'], 'selection' => $field ['selection'], 'required' => $field ['required'], 'blankvalue' => $field ['blankvalue'], 'index' => $index );
  325 +
  326 + // Small Adjustment for multiselect to real type
  327 + if ($field ['control_type'] == 'multiselect') {
  328 + $prepArray ['control_type'] = $field ['options'] ['type'];
  329 + }
  330 +
  331 + if (isset ( $field ['options'] ['ishtml'] )) {
  332 + $prepArray ['ishtml'] = $field ['options'] ['ishtml'];
405 333 } else {
406   - $prepArray['ishtml'] = '0';
  334 + $prepArray ['ishtml'] = '0';
407 335 }
408 336  
409   - if (isset($field['options']['maxlength'])) {
410   - $prepArray['maxlength'] = $field['options']['maxlength'];
  337 + if (isset ( $field ['options'] ['maxlength'] )) {
  338 + $prepArray ['maxlength'] = $field ['options'] ['maxlength'];
411 339 } else {
412   - $prepArray['maxlength'] = '-1';
  340 + $prepArray ['maxlength'] = '-1';
413 341 }
414   -
415   - $items[] = $prepArray;
416   - $index++;
417   - }
418   - }
419   -
420   -
421   -
422   - $this->setResponse(array('id'=>$title, 'items'=>$items, 'count'=>count($items)));
423   -
  342 +
  343 + $items [] = $prepArray;
  344 + $index ++;
  345 + }
  346 + }
  347 +
  348 + $this->setResponse ( array ('id' => $title, 'items' => $items, 'count' => count ( $items ) ) );
  349 +
424 350 return true;
425 351 }
426   -
427   -
  352 +
428 353 public function get_documenttypes($params) {
429   -
430   - $kt=&$this->KT;
431   -
432   - $detail=$kt->get_documenttypes();
433   - $result=array();
434   - $items=array();
435   - for($i=0;$i<count($detail);$i++) {
436   - if(strtolower(substr($detail[$i], -5)) != 'email')
437   - {
438   - $items[]=array(
439   - 'name'=>$detail[$i]
440   - );
  354 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  355 +
  356 + $kt = &$this->KT;
  357 +
  358 + $detail = $kt->get_documenttypes ();
  359 + $result = array ();
  360 + $items = array ();
  361 + for($i = 0; $i < count ( $detail ); $i ++) {
  362 + if (strtolower ( substr ( $detail [$i], - 5 ) ) != 'email') {
  363 + $items [] = array ('name' => $detail [$i] );
441 364 }
442 365 }
443   - $this->setResponse(array('items'=>$items, 'count'=>count($items)));
  366 + $this->setResponse ( array ('items' => $items, 'count' => count ( $items ) ) );
444 367 return true;
445 368 }
446   -
  369 +
447 370 function update_document_type($params) {
448   - $kt=&$this->KT;
449   - $document_id=(int)$params['document_id'];
450   - if($document_id > 0) {
451   - $document=$kt->get_document_by_id($document_id);
452   - $document->change_document_type($params['document_type']);
453   - $this->setResponse(array('status_code'=>0));
454   - return true;
455   -
456   - }else{
457   - $this->addError("Invalid document Id : {$document_id}");
458   - $this->setResponse(array('status_code'=>1));
459   - return false;
460   - }
461   -
  371 + $kt = &$this->KT;
  372 + $document_id = ( int ) $params ['document_id'];
  373 + if ($document_id > 0) {
  374 + $document = $kt->get_document_by_id ( $document_id );
  375 + $document->change_document_type ( $params ['document_type'] );
  376 + $this->setResponse ( array ('status_code' => 0 ) );
  377 + return true;
  378 +
  379 + } else {
  380 + $this->addError ( "Invalid document Id : {$document_id}" );
  381 + $this->setResponse ( array ('status_code' => 1 ) );
  382 + return false;
  383 + }
  384 +
462 385 }
463   -
  386 +
464 387 /**
465 388 * Get a url for downloading the specified document
466 389 * Parameters:
... ... @@ -470,91 +393,86 @@ class kt extends client_service {
470 393 *
471 394 * @param unknown_type $params
472 395 */
473   - function download_document($params,$returnResult=false) {
474   -
475   - $kt=&$this->KT;
476   - $params['session_id']=$params['session_id']?$params['session_id']:$this->AuthInfo['session'];
477   - $params['app_type']=$params['app_type']?$params['app_type']:$this->AuthInfo['appType'];
478   - $params['app_type']='air';
479   - $multipart=isset($params['multipart'])?(bool)$params['multipart']:false;
480   - $multipart=false;
481   -
482   - $this->Response->addDebug('download_document Parameters',$params);
483   -
484   -
485   - $session_id=$params['session_id'];
486   -
487   -
488   - $document=&$kt->get_document_by_id($params['document_id']);
489   - // $docname='test.txt';
490   - if (PEAR::isError($document))
491   - {
492   - $response['message']=$document->getMessage();
493   - $this->addDebug("download_document - cannot get $document_id - " . $document->getMessage(), $document);
494   -
495   -// $this->setResponse(new SOAP_Value('$this->response=',"{urn:$this->namespace}kt_response", $response));
496   - $this->setResponse($response);
497   - return;
498   - }
499   - $docname=$document->document->getFileName();
500   - $result=$document->download();
501   - if (PEAR::isError($result))
502   - {
503   - $response['message']=$result->getMessage();
504   - $this->setResponse(array('status_code'=>1, 'message'=>$result->getMessage()));
  396 + function download_document($params, $returnResult = false){
  397 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  398 +
  399 + $kt = &$this->KT;
  400 + $params ['session_id'] = $params ['session_id'] ? $params ['session_id'] : $this->AuthInfo ['session'];
  401 + $params ['app_type'] = $params ['app_type'] ? $params ['app_type'] : $this->AuthInfo ['appType'];
  402 + $params ['app_type'] = 'air';
  403 + $multipart = isset ( $params ['multipart'] ) ? ( bool ) $params ['multipart'] : false;
  404 + $multipart = false;
  405 +
  406 + $this->Response->addDebug ( 'download_document Parameters', $params );
  407 +
  408 + $session_id = $params ['session_id'];
  409 +
  410 + $document = &$kt->get_document_by_id ( $params ['document_id'] );
  411 + // $docname='test.txt';
  412 + if (PEAR::isError ( $document )) {
  413 + $response ['message'] = $document->getMessage ();
  414 + $this->addDebug ( "download_document - cannot get $document_id - " . $document->getMessage (), $document );
  415 +
  416 + // $this->setResponse(new SOAP_Value('$this->response=',"{urn:$this->namespace}kt_response", $response));
  417 + $this->setResponse ( $response );
505 418 return;
506   - }
507   -
508   - $session=&$kt->get_session();
509   - $download_manager=new KTDownloadManager();
510   - $download_manager->set_session($session->session);
511   - $download_manager->cleanup();
512   - $url=$download_manager->allow_download($document,NULL,$multipart);
513   - //http://ktair.dev?code=750f7a09d40a3d855f2897f417baf0bbb9a1f615&d=16&u=evm2pdkkhfagon47eh2b9slqj6
514   - /*
  419 + }
  420 + $docname = $document->document->getFileName ();
  421 + $result = $document->download ();
  422 + if (PEAR::isError ( $result )) {
  423 + $response ['message'] = $result->getMessage ();
  424 + $this->setResponse ( array ('status_code' => 1, 'message' => $result->getMessage () ) );
  425 + return;
  426 + }
  427 +
  428 + $session = &$kt->get_session ();
  429 + $download_manager = new KTDownloadManager ( );
  430 + $download_manager->set_session ( $session->session );
  431 + $download_manager->cleanup ();
  432 + $url = $download_manager->allow_download ( $document, NULL, $multipart );
  433 + //http://ktair.dev?code=750f7a09d40a3d855f2897f417baf0bbb9a1f615&d=16&u=evm2pdkkhfagon47eh2b9slqj6
  434 + /*
515 435 $this->addDebug('url before split',$url);
516 436 $url=split('\?',$url);
517 437 $this->addDebug('url after split',$url);
518 438 $url=$url[0].'/ktwebservice/download.php?'.$url[1];
519 439 $this->addDebug('url after recombo',$url);
520 440 */
521   -
522   - $response['status_code']=0;
523   - $response['message']=$url.'&apptype='.$params['app_type'];
524   - $response['filename']=$docname;
525   -
526   - $this->addDebug('effective params',$params);
527   -
528   - if($returnResult){
529   - return $response;
530   - }else{
531   - $this->setResponse($response);
532   - }
533   - }
534   -
535   - /**
536   - * Get download URLS for multiple documents
537   - * params contains:
538   - * app_type
539   - * documents = array of doc_id
540   - *
541   - * @param unknown_type $params
542   - */
543   - public function download_multiple_documents($params){
544   - $response=array();
545   - foreach($params['documents'] as $docId){
546   - $ret=$this->download_document(array('document_id'=>$docId,'app_type'=>$params['app_type'],'multipart'=>$params['multipart']),true);
547   - $this->Response->addDebug('Trying to create Download Link for '.$docId,$ret);
548   - $rec=array(
549   - 'filename' =>$ret['filename'],
550   - 'url' =>$ret['message'],
551   - 'succeeded' =>$ret['status_code']==0?true:false
552   - );
553   - if(is_array($ret))$response[$docId]=$rec;
554   - }
555   - $this->setResponse($response);
556   - }
557   -
  441 +
  442 + $response ['status_code'] = 0;
  443 + $response ['message'] = $url . '&apptype=' . $params ['app_type'];
  444 + $response ['filename'] = $docname;
  445 +
  446 + $this->addDebug ( 'effective params', $params );
  447 +
  448 + if ($returnResult) {
  449 + return $response;
  450 + } else {
  451 + $this->setResponse ( $response );
  452 + }
  453 + }
  454 +
  455 + /**
  456 + * Get download URLS for multiple documents
  457 + * params contains:
  458 + * app_type
  459 + * documents = array of doc_id
  460 + *
  461 + * @param unknown_type $params
  462 + */
  463 + public function download_multiple_documents($params) {
  464 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  465 + $response = array ();
  466 + foreach ( $params ['documents'] as $docId ) {
  467 + $ret = $this->download_document ( array ('document_id' => $docId, 'app_type' => $params ['app_type'], 'multipart' => $params ['multipart'] ), true );
  468 + $this->Response->addDebug ( 'Trying to create Download Link for ' . $docId, $ret );
  469 + $rec = array ('filename' => $ret ['filename'], 'url' => $ret ['message'], 'succeeded' => $ret ['status_code'] == 0 ? true : false );
  470 + if (is_array ( $ret ))
  471 + $response [$docId] = $rec;
  472 + }
  473 + $this->setResponse ( $response );
  474 + }
  475 +
558 476 /**
559 477 * Checkout a Document
560 478 * params contains:
... ... @@ -564,39 +482,36 @@ class kt extends client_service {
564 482 * @param array $params
565 483 *
566 484 */
567   - function checkout_document($params){
568   - $responseType='kt_response';
569   - $kt=&$this->KT;
570   -
571   - $document=&$kt->get_document_by_id($params['document_id']);
572   - if (PEAR::isError($document))
573   - {
574   - $this->addError("checkout_document - cannot get documentid {$params['document_id']} - " . $document->getMessage());
575   - $this->setResponse(array('status_code'=>1, 'message'=>$document->getMessage()));
  485 + function checkout_document($params) {
  486 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  487 + $responseType = 'kt_response';
  488 + $kt = &$this->KT;
  489 +
  490 + $document = &$kt->get_document_by_id ( $params ['document_id'] );
  491 + if (PEAR::isError ( $document )) {
  492 + $this->addError ( "checkout_document - cannot get documentid {$params['document_id']} - " . $document->getMessage () );
  493 + $this->setResponse ( array ('status_code' => 1, 'message' => $document->getMessage () ) );
576 494 return;
577   - }
578   -
579   - $result=$document->checkout($params['reason']);
580   - if (PEAR::isError($result))
581   - {
582   - $this->addError($result->getMessage());
583   - $this->setResponse(array('status_code'=>1, 'message'=>$result->getMessage()));
584   - return;
585   - }
586   -
587   - $url='';
588   - if ($params['download'])
589   - {
590   - $download_manager=new KTDownloadManager();
591   - $download_manager->set_session($params['session_id']);
592   - $download_manager->cleanup();
593   - $url=$download_manager->allow_download($document);
594   - }
595   -
596   - $this->setResponse(array('status_code'=>0, 'message'=>$url));
597   - }
598   -
599   -
  495 + }
  496 +
  497 + $result = $document->checkout ( $params ['reason'] );
  498 + if (PEAR::isError ( $result )) {
  499 + $this->addError ( $result->getMessage () );
  500 + $this->setResponse ( array ('status_code' => 1, 'message' => $result->getMessage () ) );
  501 + return;
  502 + }
  503 +
  504 + $url = '';
  505 + if ($params ['download']) {
  506 + $download_manager = new KTDownloadManager ( );
  507 + $download_manager->set_session ( $params ['session_id'] );
  508 + $download_manager->cleanup ();
  509 + $url = $download_manager->allow_download ( $document );
  510 + }
  511 +
  512 + $this->setResponse ( array ('status_code' => 0, 'message' => $url ) );
  513 + }
  514 +
600 515 /**
601 516 * Checkin Document //TODO: Find out how upload works
602 517 * params contains:
... ... @@ -607,706 +522,692 @@ class kt extends client_service {
607 522 *
608 523 * @param array $params
609 524 */
610   - function checkin_document($params){
611   - $session_id=$this->AuthInfo['session'];
612   - $document_id=$params['document_id'];
613   - $filename=$params['filename'];
614   - $reason=$params['reason'];
615   - $tempfilename=$params['tempfilename'];
616   - $major_update=$params['major_update'];
617   - $application=$this->AuthInfo['appType'];
618   -
619   - $this->addDebug('Checkin',"checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application', $major_update)");
620   - $kt=&$this->KT;
621   -
622   - // we need to add some security to ensure that people don't frig the checkin process to access restricted files.
  525 + function checkin_document($params) {
  526 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  527 + $session_id = $this->AuthInfo ['session'];
  528 + $document_id = $params ['document_id'];
  529 + $filename = $params ['filename'];
  530 + $reason = $params ['reason'];
  531 + $tempfilename = $params ['tempfilename'];
  532 + $major_update = $params ['major_update'];
  533 + $application = $this->AuthInfo ['appType'];
  534 +
  535 + $this->addDebug ( 'Checkin', "checkin_document('$session_id',$document_id,'$filename','$reason','$tempfilename', '$application', $major_update)" );
  536 + $kt = &$this->KT;
  537 +
  538 + // we need to add some security to ensure that people don't frig the checkin process to access restricted files.
623 539 // possibly should change 'tempfilename' to be a hash or id of some sort if this is troublesome.
624   - $upload_manager=new KTUploadManager();
625   - if (!$upload_manager->is_valid_temporary_file($tempfilename))
626   - {
627   - $this->setResponse(array('status_code'=>12));
  540 + $upload_manager = new KTUploadManager ( );
  541 + if (! $upload_manager->is_valid_temporary_file ( $tempfilename )) {
  542 + $this->setResponse ( array ('status_code' => 12 ) );
628 543 return;
629   - }
630   -
631   - $document=&$kt->get_document_by_id($document_id);
632   - if (PEAR::isError($document))
633   - {
634   - $this->setResponse(array('status_code'=>13));
635 544 }
636   -
  545 +
  546 + $document = &$kt->get_document_by_id ( $document_id );
  547 + if (PEAR::isError ( $document )) {
  548 + $this->setResponse ( array ('status_code' => 13 ) );
  549 + }
  550 +
637 551 // checkin
638   - $result=$document->checkin($filename, $reason, $tempfilename, $major_update);
639   - if (PEAR::isError($result))
640   - {
641   - $this->setResponse(array('status_code'=>14));
  552 + $result = $document->checkin ( $filename, $reason, $tempfilename, $major_update );
  553 + if (PEAR::isError ( $result )) {
  554 + $this->setResponse ( array ('status_code' => 14 ) );
642 555 }
643   -
644   - // get status after checkin
  556 +
  557 + // get status after checkin
645 558 //$this->response= $this->get_document_detail($session_id, $document_id);
646   - $detail=$document->get_detail();
647   - $detail['status_code']=0;
648   - $detail['message']='';
649   -
650   - $this->setResponse($detail);
651   - }
652   -
653   -
654   - /**
655   - * Upload a document
656   - *
657   - * @param unknown_type $arr
658   - */
659   - function add_document_with_metadata($arr){
660   - $session_id=$arr['session_id'];
661   - //error_reporting(E_ALL);
662   - $metadata=array();
663   - $packed=$arr['metadata'];
664   -
665   - foreach($meta as $item){
666   - $fieldSet=$item['fieldset'];
667   - unset($item['fieldset']);
668   - $metadata[$fieldSet]['fieldset']=$fieldSet;
669   - $metadata[$fieldSet]['fields'][]=$item;
670   - }
671   -
672   - $kt=&$this->KT;
673   -
674   - $upload_manager=new KTUploadManager();
675   - if (!$upload_manager->is_valid_temporary_file($arr['tempfilename'])) {
676   - $this->addError('Temporary File Not Valid');
677   - $this->setResponse(array('status_code'=>1, 'message'=>'Temporary File Not Valid'));
  559 + $detail = $document->get_detail ();
  560 + $detail ['status_code'] = 0;
  561 + $detail ['message'] = '';
  562 +
  563 + $this->setResponse ( $detail );
  564 + }
  565 +
  566 + /**
  567 + * Upload a document
  568 + *
  569 + * @param unknown_type $arr
  570 + */
  571 + function add_document_with_metadata($arr) {
  572 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  573 + $session_id = $arr ['session_id'];
  574 + //error_reporting(E_ALL);
  575 + $metadata = array ();
  576 + $packed = $arr ['metadata'];
  577 +
  578 + foreach ( $meta as $item ) {
  579 + $fieldSet = $item ['fieldset'];
  580 + unset ( $item ['fieldset'] );
  581 + $metadata [$fieldSet] ['fieldset'] = $fieldSet;
  582 + $metadata [$fieldSet] ['fields'] [] = $item;
  583 + }
  584 +
  585 + $kt = &$this->KT;
  586 +
  587 + $upload_manager = new KTUploadManager ( );
  588 + if (! $upload_manager->is_valid_temporary_file ( $arr ['tempfilename'] )) {
  589 + $this->addError ( 'Temporary File Not Valid' );
  590 + $this->setResponse ( array ('status_code' => 1, 'message' => 'Temporary File Not Valid' ) );
678 591 return false;
679   - }
680   - $this->addDebug('','Exited is_valid_temporary file');
681   -
682   - $folder=&$kt->get_folder_by_id($arr['folder_id']);
683   - if (PEAR::isError($folder)){
684   - $this->addError('Could not find Folder '.$arr['folder_id']);
685   - $this->setResponse(array('status_code'=>1, 'message'=>'Could not find Folder '.$arr['folder_id']));
686   - return false;
687 592 }
  593 + $this->addDebug ( '', 'Exited is_valid_temporary file' );
688 594  
689   - $document=&$folder->add_document($arr['title'], $arr['filename'], $arr['documenttype'], $arr['tempfilename']);
690   - if (PEAR::isError($document)){
691   - $this->addError("Could not add Document [title:{$title},filename:{$filename},documenttype:{$documenttype},tempfilename:{$tempfilename}]");
692   - $this->setResponse(array('status_code'=>1, 'message'=>'Could not add Document'));
693   - return false;
  595 + $folder = &$kt->get_folder_by_id ( $arr ['folder_id'] );
  596 + if (PEAR::isError ( $folder )) {
  597 + $this->addError ( 'Could not find Folder ' . $arr ['folder_id'] );
  598 + $this->setResponse ( array ('status_code' => 1, 'message' => 'Could not find Folder ' . $arr ['folder_id'] ) );
  599 + return false;
694 600 }
695   -
696   -
697   - $document_id=$document->get_documentid();
698   -
699   - $update_result=$this->update_document_metadata($arr['session_id'], $document_id, $metadata, $arr['application'], array());
700   -
701   - $status_code=$update_result['status_code'];
702   - if ($status_code != 0)
703   - {
704   - $this->delete_document(array('session_id' => $arr['session_id'], 'document_id' => $document_id, 'reason' => 'Rollback because metadata could not be added', 'application' => $arr['application']));
705   - $this->response= $update_result;
  601 +
  602 + $document = &$folder->add_document ( $arr ['title'], $arr ['filename'], $arr ['documenttype'], $arr ['tempfilename'] );
  603 + if (PEAR::isError ( $document )) {
  604 + $this->addError ( "Could not add Document [title:{$title},filename:{$filename},documenttype:{$documenttype},tempfilename:{$tempfilename}]" );
  605 + $this->setResponse ( array ('status_code' => 1, 'message' => 'Could not add Document' ) );
  606 + return false;
706 607 }
707   -
708   -
709   - $result=$document->mergeWithLastMetadataVersion();
710   - if (PEAR::isError($result))
711   - {
  608 +
  609 + $document_id = $document->get_documentid ();
  610 +
  611 + $update_result = $this->update_document_metadata ( $arr ['session_id'], $document_id, $metadata, $arr ['application'], array () );
  612 +
  613 + $status_code = $update_result ['status_code'];
  614 + if ($status_code != 0) {
  615 + $this->delete_document ( array ('session_id' => $arr ['session_id'], 'document_id' => $document_id, 'reason' => 'Rollback because metadata could not be added', 'application' => $arr ['application'] ) );
  616 + $this->response = $update_result;
  617 + }
  618 +
  619 + $result = $document->mergeWithLastMetadataVersion ();
  620 + if (PEAR::isError ( $result )) {
712 621 // not much we can do, maybe just log!
713 622 }
714   -
715   - $this->response= array('status_code'=>0, 'document_id'=>$document_id);
716   - }
  623 +
  624 + $this->response = array ('status_code' => 0, 'document_id' => $document_id );
  625 + }
717 626  
718   - function create_empty_upload_file($params){
719   - $config=KTConfig::getSingleton();
720   - $this->addDebug('KTConfig Singleton',$config);
721   - $uploadFolder=$config->get('webservice/uploadDirectory');
  627 + function create_empty_upload_file($params) {
  628 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  629 + $config = KTConfig::getSingleton ();
  630 + $this->addDebug ( 'KTConfig Singleton', $config );
  631 + $uploadFolder = $config->get ( 'webservice/uploadDirectory' );
722 632  
723   - $result = array();
  633 + $result = array ();
724 634  
725   - if ($file = fopen($uploadFolder."/".$params['filename'], 'w')) {
726   - fclose($file);
727   - $result['status_code'] = '0';
728   - $result['filename'] = $uploadFolder."/".$params['filename'];
  635 + if ($file = fopen ( $uploadFolder . "/" . $params ['filename'], 'w' )) {
  636 + fclose ( $file );
  637 + $result ['status_code'] = '0';
  638 + $result ['filename'] = $uploadFolder . "/" . $params ['filename'];
729 639 } else {
730   - $result['status_code'] = '1';
731   - $result['filename'] = $uploadFolder."/".$params['filename'];
  640 + $result ['status_code'] = '1';
  641 + $result ['filename'] = $uploadFolder . "/" . $params ['filename'];
732 642 }
733   - $this->setResponse($result);
  643 + $this->setResponse ( $result );
734 644 return true;
735 645 }
736   -
737   - function get_all_client_policies(){
738   - $config=KTConfig::getSingleton();
739   - $this->addDebug('KTConfig Singleton',$config);
  646 +
  647 + function get_all_client_policies() {
  648 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  649 + $config = KTConfig::getSingleton ();
  650 + $this->addDebug ( 'KTConfig Singleton', $config );
740 651  
741   - $policies=array('allowRememberPassword', 'captureReasonsCheckin', 'captureReasonsCheckout');
  652 + $policies = array ('allowRememberPassword', 'captureReasonsCheckin', 'captureReasonsCheckout' );
742 653  
743   - $returnPolicies=array();
  654 + $returnPolicies = array ();
744 655  
745   - foreach ($policies as $policy_name)
746   - {
747   - $policyInfo=array(
748   - 'name'=>$policy_name,
749   - 'value'=>serviceHelper::bool2str($config->get('addInPolicies/'.$policy_name)),
750   - 'type'=>'boolean'
751   - );
  656 + foreach ( $policies as $policy_name ) {
  657 + $policyInfo = array ('name' => $policy_name, 'value' => serviceHelper::bool2str ( $config->get ( 'addInPolicies/' . $policy_name ) ), 'type' => 'boolean' );
752 658  
753   - $returnPolicies[$policy_name] =$policyInfo;
  659 + $returnPolicies [$policy_name] = $policyInfo;
754 660 }
755 661  
756   - $languages=$this->get_languages(true);
757   -
758   - $metadata=array('totalProperty'=>'resultsCounter', 'root'=>'languages', 'fields'=>array('isoCode', 'language'));
  662 + $languages = $this->get_languages ( true );
759 663  
760   - $finalArray=array();
761   - $finalArray['metaData']=$metadata;
762   - $finalArray['policies']=$returnPolicies;
763   - $finalArray['languages']=$languages['languages'];
764   - $finalArray['defaultLanguage']=$languages['defaultLanguage'];
765   - $finalArray['resultsCounter']=$languages['count'];
  664 + $metadata = array ('totalProperty' => 'resultsCounter', 'root' => 'languages', 'fields' => array ('isoCode', 'language' ) );
766 665  
  666 + $finalArray = array ();
  667 + $finalArray ['metaData'] = $metadata;
  668 + $finalArray ['policies'] = $returnPolicies;
  669 + $finalArray ['languages'] = $languages ['languages'];
  670 + $finalArray ['defaultLanguage'] = $languages ['defaultLanguage'];
  671 + $finalArray ['resultsCounter'] = $languages ['count'];
767 672  
768   - $this->setResponse($finalArray);
  673 + $this->setResponse ( $finalArray );
769 674 return true;
770 675 }
771   -
772   - function get_all_explorer_policies(){
773   - $config=KTConfig::getSingleton();
774   - $this->addDebug('KTConfig Singleton',$config);
  676 +
  677 + function get_all_explorer_policies() {
  678 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  679 + $config = KTConfig::getSingleton ();
  680 + $this->addDebug ( 'KTConfig Singleton', $config );
775 681  
776   - $policies=array('allowRememberPassword', 'explorerMetadataCapture', 'officeMetadataCapture', 'captureReasonsCheckin', 'captureReasonsCheckout', 'captureReasonsDelete', 'captureReasonsCancelCheckout', 'captureReasonsCopyInKT', 'captureReasonsMoveInKT');
  682 + $policies = array ('allowRememberPassword', 'explorerMetadataCapture', 'officeMetadataCapture', 'captureReasonsCheckin', 'captureReasonsCheckout', 'captureReasonsDelete', 'captureReasonsCancelCheckout', 'captureReasonsCopyInKT', 'captureReasonsMoveInKT' );
777 683  
778   - $returnPolicies=array();
779   - $test = $config->get('clientToolPolicies/allowRememberPassword');
  684 + $returnPolicies = array ();
  685 + $test = $config->get ( 'clientToolPolicies/allowRememberPassword' );
780 686 global $default;
781   - $default->log->error('I am here-'.$test);
782   - foreach ($policies as $policy_name)
783   - {
784   - $policyInfo=array(
785   - 'name'=>$policy_name,
786   - 'value'=>serviceHelper::bool2str($config->get('clientToolPolicies/'.$policy_name)),
787   - 'type'=>'boolean'
788   - );
  687 + $default->log->error ( 'I am here-' . $test );
  688 + foreach ( $policies as $policy_name ) {
  689 + $policyInfo = array ('name' => $policy_name, 'value' => serviceHelper::bool2str ( $config->get ( 'clientToolPolicies/' . $policy_name ) ), 'type' => 'boolean' );
789 690  
790   - $returnPolicies[$policy_name] =$policyInfo;
  691 + $returnPolicies [$policy_name] = $policyInfo;
791 692 }
792 693  
793   - $languages=$this->get_languages(true);
794   -
795   - $metadata=array('totalProperty'=>'resultsCounter', 'root'=>'languages', 'fields'=>array('isoCode', 'language'));
  694 + $languages = $this->get_languages ( true );
796 695  
797   - $finalArray=array();
798   - $finalArray['metaData']=$metadata;
799   - $finalArray['policies']=$returnPolicies;
800   - $finalArray['languages']=$languages['languages'];
801   - $finalArray['defaultLanguage']=$languages['defaultLanguage'];
802   - $finalArray['resultsCounter']=$languages['count'];
  696 + $metadata = array ('totalProperty' => 'resultsCounter', 'root' => 'languages', 'fields' => array ('isoCode', 'language' ) );
803 697  
  698 + $finalArray = array ();
  699 + $finalArray ['metaData'] = $metadata;
  700 + $finalArray ['policies'] = $returnPolicies;
  701 + $finalArray ['languages'] = $languages ['languages'];
  702 + $finalArray ['defaultLanguage'] = $languages ['defaultLanguage'];
  703 + $finalArray ['resultsCounter'] = $languages ['count'];
804 704  
805   - $this->setResponse($finalArray);
  705 + $this->setResponse ( $finalArray );
806 706 return true;
807 707 }
808 708  
809   - public function switchlang($params){
810   - setcookie("kt_language", $params['lang'], 2147483647, '/');
  709 + public function switchlang($params) {
  710 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  711 + setcookie ( "kt_language", $params ['lang'], 2147483647, '/' );
811 712 }
812   -
813   -
814   - function add_document_params($params){
815   - $folder_id=$params['folder_id'];
816   - $title=$params['title'];
817   - $filename=$params['filename'];
818   - $documenttype=$params['documenttype'];
819   - $tempfilename=$params['tempfilename'];
820   - $application=$params['application'];
821   -
822   - $this->addDebug('','Entered add_document');
823   - $kt=&$this->KT;
824   -
825   - $upload_manager=new KTUploadManager();
826   - if (!$upload_manager->is_valid_temporary_file($tempfilename)) {
827   - $this->addError('Temporary File Not Valid');
828   - $this->setResponse(array('status_code'=>1));
  713 +
  714 + function add_document_params($params) {
  715 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  716 + $folder_id = $params ['folder_id'];
  717 + $title = $params ['title'];
  718 + $filename = $params ['filename'];
  719 + $documenttype = $params ['documenttype'];
  720 + $tempfilename = $params ['tempfilename'];
  721 + $application = $params ['application'];
  722 +
  723 + $this->addDebug ( '', 'Entered add_document' );
  724 + $kt = &$this->KT;
  725 +
  726 + $upload_manager = new KTUploadManager ( );
  727 + if (! $upload_manager->is_valid_temporary_file ( $tempfilename )) {
  728 + $this->addError ( 'Temporary File Not Valid' );
  729 + $this->setResponse ( array ('status_code' => 1 ) );
829 730 return false;
830   - }
831   - $this->addDebug('','Exited is_valid_temporary file');
832   -
833   - $folder=&$kt->get_folder_by_id($folder_id);
834   - if (PEAR::isError($folder)){
835   - $this->addError('Could not find Folder '.$folder_id);
836   - $this->setResponse(array('status_code'=>1));
837   - return false;
838 731 }
839   -
840   - $this->addDebug('','Exited get_folder_by_id');
841   -
842   - $document=&$folder->add_document($title, $filename, $documenttype, $tempfilename);
843   - if (PEAR::isError($document)){
844   - $this->addError("Could add Document [title:{$title},filename:{$filename},documenttype:{$documenttype},tempfilename:{$tempfilename}]");
845   - $this->setResponse(array('status_code'=>1));
846   - return false;
  732 + $this->addDebug ( '', 'Exited is_valid_temporary file' );
  733 +
  734 + $folder = &$kt->get_folder_by_id ( $folder_id );
  735 + if (PEAR::isError ( $folder )) {
  736 + $this->addError ( 'Could not find Folder ' . $folder_id );
  737 + $this->setResponse ( array ('status_code' => 1 ) );
  738 + return false;
847 739 }
848   -
849   - $this->addDebug('','Exited folder add_document');
850   -
851   - $detail=$document->get_detail();
852   - $detail['status_code']=0;
853   - $detail['message']='';
854   -
855   - $this->setResponse($detail);
856   - }
  740 +
  741 + $this->addDebug ( '', 'Exited get_folder_by_id' );
  742 +
  743 + $document = &$folder->add_document ( $title, $filename, $documenttype, $tempfilename );
  744 + if (PEAR::isError ( $document )) {
  745 + $this->addError ( "Could add Document [title:{$title},filename:{$filename},documenttype:{$documenttype},tempfilename:{$tempfilename}]" );
  746 + $this->setResponse ( array ('status_code' => 1 ) );
  747 + return false;
  748 + }
  749 +
  750 + $this->addDebug ( '', 'Exited folder add_document' );
  751 +
  752 + $detail = $document->get_detail ();
  753 + $detail ['status_code'] = 0;
  754 + $detail ['message'] = '';
  755 +
  756 + $this->setResponse ( $detail );
  757 + }
857 758  
858   - function delete_document($params){
859   - $session_id = $params['session_id'];
860   - $document_id = $params['document_id'];
861   - $reason = $params['reason'];
862   - $application = $params['application'];
  759 + function delete_document($params) {
  760 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  761 + $session_id = $params ['session_id'];
  762 + $document_id = $params ['document_id'];
  763 + $reason = $params ['reason'];
  764 + $application = $params ['application'];
863 765  
864   - $kt=&$this->KT;
865   -
866   - $document=&$kt->get_document_by_id($document_id);
867   - if (PEAR::isError($document)){
868   - $this->addError("Invalid document {$document_id}");
869   - $this->setResponse(array('status_code'=>1));
870   - return false;
871   - }
872   -
873   - $result=$document->delete($reason);
874   - if (PEAR::isError($result)) {
875   - $this->addError("Could not delete document {$document_id}");
876   - $this->setResponse(array('status_code'=>1));
877   - return false;
878   - }
879   - $this->setResponse(array('status_code'=>0));
880   - return true;
881   - }
882   -
883   -
884   -
885   - private function update_document_metadata($session_id, $document_id, $metadata, $application, $sysdata=null){
886   - $this->addDebug('update_document_metadata','entered update_document_metadata');
887   - $kt=&$this->KT;
888   - $responseType='kt_document_detail';
889   -
890   - $document=&$kt->get_document_by_id($document_id);
891   - if (PEAR::isError($document)){
892   - return array('status_code'=>1, 'error'=>'Error getting document');
893   - }
894   -
895   - $result=$document->update_metadata($metadata);
896   - if (PEAR::isError($result)){
897   - return array('status_code'=>1, 'error'=>'Error updating metadata');
898   - }
899   -
900   - $result=$document->update_sysdata($sysdata);
901   - if (PEAR::isError($result)){
902   - return array('status_code'=>1, 'error'=>'Error update_sysdata');
  766 + $kt = &$this->KT;
  767 +
  768 + $document = &$kt->get_document_by_id ( $document_id );
  769 + if (PEAR::isError ( $document )) {
  770 + $this->addError ( "Invalid document {$document_id}" );
  771 + $this->setResponse ( array ('status_code' => 1 ) );
  772 + return false;
903 773 }
904   -
905   - return array('status_code'=>0);
  774 +
  775 + $result = $document->delete ( $reason );
  776 + if (PEAR::isError ( $result )) {
  777 + $this->addError ( "Could not delete document {$document_id}" );
  778 + $this->setResponse ( array ('status_code' => 1 ) );
  779 + return false;
  780 + }
  781 + $this->setResponse ( array ('status_code' => 0 ) );
  782 + return true;
906 783 }
907   -
908   - function get_client_policy($arr){
909   - $policy_name=$arr['policy_name'];
910   -
911   - $config=KTConfig::getSingleton();
912   -
913   - $policy=array(
914   - 'name'=>$policy_name,
915   - 'value'=>serviceHelper::bool2str($config->get($policy_name)),
916   - 'type'=>'boolean'
917   - );
918   -
919   - $response['policy']=$policy;
920   - $response['message']='Knowledgetree client policies retrieval succeeded.';
921   - $response['status_code']=0;
922   -
923   - $this->setResponse($response);
  784 +
  785 + private function update_document_metadata($session_id, $document_id, $metadata, $application, $sysdata = null) {
  786 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  787 + $this->addDebug ( 'update_document_metadata', 'entered update_document_metadata' );
  788 + $kt = &$this->KT;
  789 + $responseType = 'kt_document_detail';
  790 +
  791 + $document = &$kt->get_document_by_id ( $document_id );
  792 + if (PEAR::isError ( $document )) {
  793 + return array ('status_code' => 1, 'error' => 'Error getting document' );
  794 + }
  795 +
  796 + $result = $document->update_metadata ( $metadata );
  797 + if (PEAR::isError ( $result )) {
  798 + return array ('status_code' => 1, 'error' => 'Error updating metadata' );
  799 + }
  800 +
  801 + $result = $document->update_sysdata ( $sysdata );
  802 + if (PEAR::isError ( $result )) {
  803 + return array ('status_code' => 1, 'error' => 'Error update_sysdata' );
  804 + }
  805 +
  806 + return array ('status_code' => 0 );
  807 + }
  808 +
  809 + function get_client_policy($arr) {
  810 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  811 + $policy_name = $arr ['policy_name'];
  812 +
  813 + $config = KTConfig::getSingleton ();
  814 +
  815 + $policy = array ('name' => $policy_name, 'value' => serviceHelper::bool2str ( $config->get ( $policy_name ) ), 'type' => 'boolean' );
  816 +
  817 + $response ['policy'] = $policy;
  818 + $response ['message'] = 'Knowledgetree client policies retrieval succeeded.';
  819 + $response ['status_code'] = 0;
  820 +
  821 + $this->setResponse ( $response );
924 822 return true;
925 823 }
926   -
927   -
928   - function search($arr){
929   - $kt=&$this->KT;
930   -
931   - $listing=processSearchExpression("(GeneralText contains \"".$arr['query']."\")");
932   -
933   - $result=$this->_processListing($listing, 'search', $arr);
934   -
935   - if(!count($result)) {
936   - $result[]=array(
937   - 'text'=>$this->xlate("No results found"),
938   - 'id'=>($listing[$i]['item_type']=='F' ? $listing[$i]['item_type']."_" : "").$listing[$i]['id'],
939   - 'leaf'=>true,
940   - 'relevance'=>0,
941   - 'qtip'=> $this->xlate("Please retry your search")
942   - );
943   - }else{
944   - $result=array_slice($result, 0, 200);
  824 +
  825 + function search($arr) {
  826 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  827 + $kt = &$this->KT;
  828 +
  829 + $listing = processSearchExpression ( "(GeneralText contains \"" . $arr ['query'] . "\")" );
  830 +
  831 + $result = $this->_processListing ( $listing, 'search', $arr );
  832 +
  833 + if (! count ( $result )) {
  834 + $result [] = array ('text' => $this->xlate ( "No results found" ), 'id' => ($listing [$i] ['item_type'] == 'F' ? $listing [$i] ['item_type'] . "_" : "") . $listing [$i] ['id'], 'leaf' => true, 'relevance' => 0, 'qtip' => $this->xlate ( "Please retry your search" ) );
  835 + } else {
  836 + $result = array_slice ( $result, 0, 200 );
945 837 }
946   -
  838 +
947 839 //$this->setResponse($result);
948   - $this->setResponse(array('totalCount'=>count($listing), 'items'=>$result));
949   -
  840 + $this->setResponse ( array ('totalCount' => count ( $listing ), 'items' => $result ) );
  841 +
950 842 return true;
951 843 }
952   -
953   -
954   - public function update_metadata($arr){
955   - $metadata=array();
956   - $meta=$arr['metadata'];
957   -
958   - $this->addDebug('','Entered add_document_with_metadata');
959   - $this->addDebug('metadata received',$meta);
960   -
961   - $special=array();
962   -// foreach($apacked as $packed){
963   -// foreach($packed as $key=>$val) {
964   -// if(substr($val->name,0,2) != '__') {
965   -// if(!is_array($metadata[$val->fieldset])) {
966   -// $metadata[$val->fieldset]['fieldset']=$val->fieldset;
967   -// $metadata[$val->fieldset]['fields']=array();
968   -// }
969   -// $metadata[$val->fieldset]['fields'][]=array(
970   -// 'name'=>$val->name,
971   -// 'value'=>$val->value
972   -// );
973   -// }else{
974   -// $special[$val->name]=$val->value;
975   -// }
976   -// }
977   -// }
  844 +
  845 + public function update_metadata($arr) {
  846 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  847 + $metadata = array ();
  848 + $meta = $arr ['metadata'];
  849 +
  850 + $this->addDebug ( '', 'Entered add_document_with_metadata' );
  851 + $this->addDebug ( 'metadata received', $meta );
  852 +
  853 + $special = array ();
  854 + // foreach($apacked as $packed){
  855 + // foreach($packed as $key=>$val) {
  856 + // if(substr($val->name,0,2) != '__') {
  857 + // if(!is_array($metadata[$val->fieldset])) {
  858 + // $metadata[$val->fieldset]['fieldset']=$val->fieldset;
  859 + // $metadata[$val->fieldset]['fields']=array();
  860 + // }
  861 + // $metadata[$val->fieldset]['fields'][]=array(
  862 + // 'name'=>$val->name,
  863 + // 'value'=>$val->value
  864 + // );
  865 + // }else{
  866 + // $special[$val->name]=$val->value;
  867 + // }
  868 + // }
  869 + // }
  870 +
978 871  
979 872 /**
980 873  
981 874 Fatal error: Cannot unset string offsets in on line 981
982 875 */
  876 +
  877 + // foreach($meta as $item){
  878 + // $isSpecial=substr($item['name'],0,2)=='__';
  879 + // if($isSpecial){
  880 + // $special[$item['name']]=$item['value'];
  881 + // }else{
  882 + // $fieldSet=$item['fieldset'];
  883 + // unset($item['fieldset']);
  884 + // $metadata[$fieldSet]['fieldset']=$fieldSet;
  885 + // $metadata[$fieldSet]['fields'][]=$item;
  886 + // }
  887 + // }
  888 +
983 889  
984   -// foreach($meta as $item){
985   -// $isSpecial=substr($item['name'],0,2)=='__';
986   -// if($isSpecial){
987   -// $special[$item['name']]=$item['value'];
988   -// }else{
989   -// $fieldSet=$item['fieldset'];
990   -// unset($item['fieldset']);
991   -// $metadata[$fieldSet]['fieldset']=$fieldSet;
992   -// $metadata[$fieldSet]['fields'][]=$item;
993   -// }
994   -// }
995   -
996   - $metadata=array();
997   - $special=array();
998   -
999   - foreach($meta as $item){
1000   - if(substr($item['name'],0,2)=='__'){
1001   - $special[$item['name']]=$item['value'];
1002   - }else{
1003   - $metadata[$item['fieldset']]['fieldset']=$item['fieldset'];
1004   - $metadata[$item['fieldset']]['fields'][]=array('name'=>$item['name'],'value'=>$item['value']);
  890 + $metadata = array ();
  891 + $special = array ();
  892 +
  893 + foreach ( $meta as $item ) {
  894 + if (substr ( $item ['name'], 0, 2 ) == '__') {
  895 + $special [$item ['name']] = $item ['value'];
  896 + } else {
  897 + $metadata [$item ['fieldset']] ['fieldset'] = $item ['fieldset'];
  898 + $metadata [$item ['fieldset']] ['fields'] [] = array ('name' => $item ['name'], 'value' => $item ['value'] );
1005 899 }
1006 900 }
1007 901  
  902 + $this->addDebug ( 'after processing', array ('metadata' => $metadata, 'special' => $special ) );
1008 903  
  904 + $document_id = $arr ['document_id'];
1009 905  
1010   - $this->addDebug('after processing',array('metadata'=>$metadata,'special'=>$special));
  906 + $update_result = $this->update_document_metadata ( $arr ['session_id'], $document_id, $metadata, $arr ['application'], array () );
  907 + $this->addDebug ( '', '$this->response= from update_document_metadata' );
1011 908  
1012   - $document_id=$arr['document_id'];
1013   -
1014   - $update_result=$this->update_document_metadata($arr['session_id'], $document_id, $metadata, $arr['application'], array());
1015   - $this->addDebug('','$this->response= from update_document_metadata');
1016   -
1017   - $status_code=$update_result['status_code'];
1018   - if ($status_code != 0){
1019   - $this->setResponse($update_result);
  909 + $status_code = $update_result ['status_code'];
  910 + if ($status_code != 0) {
  911 + $this->setResponse ( $update_result );
1020 912 }
1021   -
1022   - $kt=&$this->KT;
1023   -
1024   - if(!empty($special)) {
1025   - if($document_id > 0) {
1026   - $document=$kt->get_document_by_id($document_id);
1027   -
1028   - if(isset($special['__title'])) {
1029   - $this->addDebug("Renaming to {$special['__title']}");
1030   - $res=$document->rename($special['__title']);
1031   - }
1032   - }
1033   - }
1034   -
1035   - $this->setResponse(array('status_code'=>0, 'document_id'=>$document_id));
1036   - }
1037   -
1038   -
1039   -
1040   - function check_document_title($arr){
1041   - $kt=&$this->KT;
1042   -
1043   - $folder=$kt->get_folder_by_id($arr['folder_id']);
1044   - if(PEAR::isError($folder)) {
1045   - $this->setResponse(array('status_code'=>1, 'reason'=>'No such folder'));
1046   - return false;
1047   - }
1048   -
1049   - $doc=$folder->get_document_by_name($arr['title']);
1050   - if(PEAR::isError($doc)) {
1051   - $this->setResponse(array('status_code'=>1, 'reason'=>'No document with that title '.$arr['title']));
1052   - return false;
1053   - }
1054   -
1055   - $this->setResponse(array('status_code'=>0));
1056   - return true;
  913 +
  914 + $kt = &$this->KT;
  915 +
  916 + if (! empty ( $special )) {
  917 + if ($document_id > 0) {
  918 + $document = $kt->get_document_by_id ( $document_id );
  919 +
  920 + if (isset ( $special ['__title'] )) {
  921 + $this->addDebug ( "Renaming to {$special['__title']}" );
  922 + $res = $document->rename ( $special ['__title'] );
  923 + }
  924 + }
  925 + }
  926 +
  927 + $this->setResponse ( array ('status_code' => 0, 'document_id' => $document_id ) );
1057 928 }
1058   -
1059   -
1060   - function cancel_checkout($params){
1061   - $kt=&$this->KT;
1062   -
1063   - $document=&$kt->get_document_by_id($params['document_id']);
1064   - if (PEAR::isError($document)){
1065   - $this->setResponse(array('status_code'=>1, 'message'=>$document->getMessage()));
1066   - return false;
1067   - }
1068   -
1069   - $result=$document->undo_checkout($params['reason']);
1070   - if (PEAR::isError($result)){
1071   - $this->setResponse(array('status_code'=>1, 'message'=>$result->getMessage()));
  929 +
  930 + function check_document_title($arr) {
  931 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  932 + $kt = &$this->KT;
  933 +
  934 + $folder = $kt->get_folder_by_id ( $arr ['folder_id'] );
  935 + if (PEAR::isError ( $folder )) {
  936 + $this->setResponse ( array ('status_code' => 1, 'reason' => 'No such folder' ) );
1072 937 return false;
1073   - }
1074   - $response['status_code']=0;
1075   - $this->setResponse($response);
1076   - }
1077   -
1078   - function get_transaction_history($params){
1079   - $kt=&$this->KT;
1080   -
1081   - $document=&$kt->get_document_by_id($params['document_id']);
1082   - if (PEAR::isError($document)){
1083   - $this->setResponse(array('status_code'=>1, 'message'=>$document->getMessage()));
1084   - return false;
1085   - }
1086   -
1087   - $versions=$document->get_version_history();
1088   - $transactions=$document->get_transaction_history();
1089   - $response['status_code']=0;
1090   - $response['transactions'] = $transactions;
1091   - $response['versions'] = $versions;
1092   - $this->setResponse($response);
1093   - }
  938 + }
  939 +
  940 + $doc = $folder->get_document_by_name ( $arr ['title'] );
  941 + if (PEAR::isError ( $doc )) {
  942 + $this->setResponse ( array ('status_code' => 1, 'reason' => 'No document with that title ' . $arr ['title'] ) );
  943 + return false;
  944 + }
  945 +
  946 + $this->setResponse ( array ('status_code' => 0 ) );
  947 + return true;
  948 + }
1094 949  
  950 + function cancel_checkout($params) {
  951 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  952 + $kt = &$this->KT;
  953 +
  954 + $document = &$kt->get_document_by_id ( $params ['document_id'] );
  955 + if (PEAR::isError ( $document )) {
  956 + $this->setResponse ( array ('status_code' => 1, 'message' => $document->getMessage () ) );
  957 + return false;
  958 + }
  959 +
  960 + $result = $document->undo_checkout ( $params ['reason'] );
  961 + if (PEAR::isError ( $result )) {
  962 + $this->setResponse ( array ('status_code' => 1, 'message' => $result->getMessage () ) );
  963 + return false;
  964 + }
  965 + $response ['status_code'] = 0;
  966 + $this->setResponse ( $response );
  967 + }
1095 968  
1096   -
1097   - public function get_users_groups($params){
1098   - $kt=&$this->KT;
1099   - $query=$params['query'];
  969 + function get_transaction_history($params) {
  970 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  971 + $kt = &$this->KT;
  972 +
  973 + $document = &$kt->get_document_by_id ( $params ['document_id'] );
  974 + if (PEAR::isError ( $document )) {
  975 + $this->setResponse ( array ('status_code' => 1, 'message' => $document->getMessage () ) );
  976 + return false;
  977 + }
  978 +
  979 + $versions = $document->get_version_history ();
  980 + $transactions = $document->get_transaction_history ();
  981 + $response ['status_code'] = 0;
  982 + $response ['transactions'] = $transactions;
  983 + $response ['versions'] = $versions;
  984 + $this->setResponse ( $response );
  985 + }
  986 +
  987 + public function get_users_groups($params) {
  988 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  989 + $kt = &$this->KT;
  990 + $query = $params ['query'];
1100 991 //$start=$params['start'];
1101 992 //$page=$params['page'];
  993 +
1102 994  
1103   - $results=KTAPI_User::getList('name LIKE "%'.$query.'%" AND id>0');
1104   - $returnArray=array();
1105   - if (count($results) > 0){
1106   - foreach ($results as $user){
1107   - $returnArray[]=array('emailid'=>'u_'.$user->getId(), 'name'=> $user->getName(), 'to'=>preg_replace('/('.$query.')/i', '<b>${0}</b>', $user->getName()));
  995 + $results = KTAPI_User::getList ( 'name LIKE "%' . $query . '%" AND id>0' );
  996 + $returnArray = array ();
  997 + if (count ( $results ) > 0) {
  998 + foreach ( $results as $user ) {
  999 + $returnArray [] = array ('emailid' => 'u_' . $user->getId (), 'name' => $user->getName (), 'to' => preg_replace ( '/(' . $query . ')/i', '<b>${0}</b>', $user->getName () ) );
1108 1000 }
1109 1001 }
1110 1002  
1111   - $groups=KTAPI_Group::getList('name LIKE "%'.$query.'%"');
1112   - if (count($groups) > 0){
1113   - foreach ($groups as $group){
1114   - $returnArray[]=array('emailid'=>'g_'.$group->getId(), 'name'=> $group->getName(), 'to'=>preg_replace('/('.$query.')/i', '<b>${0}</b>', $group->getName()));
  1003 + $groups = KTAPI_Group::getList ( 'name LIKE "%' . $query . '%"' );
  1004 + if (count ( $groups ) > 0) {
  1005 + foreach ( $groups as $group ) {
  1006 + $returnArray [] = array ('emailid' => 'g_' . $group->getId (), 'name' => $group->getName (), 'to' => preg_replace ( '/(' . $query . ')/i', '<b>${0}</b>', $group->getName () ) );
1115 1007 }
1116 1008 }
1117 1009  
1118   - $sendArray=array ('emails'=>$returnArray, 'metaData'=>array('count'=>count($finalArray), 'root'=>'emails', fields=>array('name', 'to', 'emailid')));
1119   - $this->setResponse($sendArray);
  1010 + $sendArray = array ('emails' => $returnArray, 'metaData' => array ('count' => count ( $finalArray ), 'root' => 'emails', fields => array ('name', 'to', 'emailid' ) ) );
  1011 + $this->setResponse ( $sendArray );
1120 1012 return true;
1121 1013 }
1122   -
1123 1014  
1124   - function send_email($params){
1125   - $kt=&$this->KT;
  1015 + function send_email($params) {
  1016 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1017 + $kt = &$this->KT;
1126 1018  
1127   - $message=$params['message'];
1128   - $list=$params['users'];
1129   - $list=explode(',', $list);
  1019 + $message = $params ['message'];
  1020 + $list = $params ['users'];
  1021 + $list = explode ( ',', $list );
1130 1022  
1131   - $recipientsList=array();
  1023 + $recipientsList = array ();
1132 1024  
1133   - foreach ($list as $recipient){
1134   - if (trim($recipient) != ''){ // check that value is present
  1025 + foreach ( $list as $recipient ) {
  1026 + if (trim ( $recipient ) != '') { // check that value is present
1135 1027 // if @ sign is present, signifies email address
1136   - if(strpos($recipient, '@') === false) {
1137   - $recipient=trim($recipient);
1138   - switch (substr($recipient, 0, 2)){
1139   - case 'u_':
1140   - $id=substr($recipient, 2);
1141   - $user=KTAPI_User::getById($id);
1142   - if ($user != null){
1143   - $recipientsList[]=$user;
  1028 + if (strpos ( $recipient, '@' ) === false) {
  1029 + $recipient = trim ( $recipient );
  1030 + switch (substr ( $recipient, 0, 2 )) {
  1031 + case 'u_' :
  1032 + $id = substr ( $recipient, 2 );
  1033 + $user = KTAPI_User::getById ( $id );
  1034 + if ($user != null) {
  1035 + $recipientsList [] = $user;
1144 1036 }
1145 1037 break;
1146   - case 'g_':
1147   - $id=substr($recipient, 2);
1148   - $group=KTAPI_Group::getById($id);
  1038 + case 'g_' :
  1039 + $id = substr ( $recipient, 2 );
  1040 + $group = KTAPI_Group::getById ( $id );
1149 1041 if ($group != null) {
1150   - $recipientsList[]=$group;
  1042 + $recipientsList [] = $group;
1151 1043 }
1152 1044 break;
1153 1045 }
1154   - }else{ // Email - just add to list
1155   - $recipientsList[]=trim($recipient);
  1046 + } else { // Email - just add to list
  1047 + $recipientsList [] = trim ( $recipient );
1156 1048 }
1157 1049 }
1158 1050 }
1159 1051  
1160   - $document=$kt->get_document_by_id($params['document']);
1161   - if (count($recipientsList)==0) {
1162   - $this->setResponse(array('status'=>'norecipients'));
  1052 + $document = $kt->get_document_by_id ( $params ['document'] );
  1053 + if (count ( $recipientsList ) == 0) {
  1054 + $this->setResponse ( array ('status' => 'norecipients' ) );
1163 1055 return false;
1164   - }else{
1165   - $result = $document->email($recipientsList, $message, TRUE); // true to attach document
1166   - if (PEAR::isError($result)) {
1167   - $this->setResponse(array('status'=>$result->getMessage()));;
1168   - return false;
1169   - }
1170   - $this->setResponse(array('status'=>'documentemailed'));
  1056 + } else {
  1057 + $result = $document->email ( $recipientsList, $message, TRUE ); // true to attach document
  1058 + if (PEAR::isError ( $result )) {
  1059 + $this->setResponse ( array ('status' => $result->getMessage () ) );
  1060 + ;
  1061 + return false;
  1062 + }
  1063 + $this->setResponse ( array ('status' => 'documentemailed' ) );
1171 1064 }
1172 1065 return true;
1173 1066 }
1174   -
1175   -
1176   - function is_latest_version($params){
1177   - $kt=&$this->KT;
  1067 +
  1068 + function is_latest_version($params) {
  1069 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1070 + $kt = &$this->KT;
1178 1071  
1179   - $documentId=$params['document_id'];
1180   - $contentId=$params['content_id'];
  1072 + $documentId = $params ['document_id'];
  1073 + $contentId = $params ['content_id'];
1181 1074  
1182   - $result=$kt->is_latest_version($documentId, $contentId);
  1075 + $result = $kt->is_latest_version ( $documentId, $contentId );
1183 1076  
1184   - $this->setResponse($result);
  1077 + $this->setResponse ( $result );
1185 1078 return true;
1186 1079 }
1187 1080  
1188   - function check_permission($params){
1189   - $kt=&$this->KT;
1190   -
1191   - $user=$kt->get_user();
1192   - $document=$kt->get_document_by_id($params['document_id']);
1193   - $folder=&$kt->get_folder_by_id($document->ktapi_folder->folderid);
1194   - $folderDetail=$folder->get_detail();
1195   - $permissions=$folderDetail['permissions'];
1196   - if ($user->getId()==$document->document->getCheckedOutUserID()){
  1081 + function check_permission($params) {
  1082 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1083 + $kt = &$this->KT;
  1084 +
  1085 + $user = $kt->get_user ();
  1086 + $document = $kt->get_document_by_id ( $params ['document_id'] );
  1087 + $folder = &$kt->get_folder_by_id ( $document->ktapi_folder->folderid );
  1088 + $folderDetail = $folder->get_detail ();
  1089 + $permissions = $folderDetail ['permissions'];
  1090 + if ($user->getId () == $document->document->getCheckedOutUserID ()) {
1197 1091 $permissions .= 'E';
1198 1092 }
1199 1093  
1200   - $this->setResponse(array('status_code'=>0, 'permissions'=>$permissions));
  1094 + $this->setResponse ( array ('status_code' => 0, 'permissions' => $permissions ) );
1201 1095 return true;
1202 1096 }
1203   -
1204   - function copydocument($params){
1205   - $kt=&$this->KT;
1206   -
1207   - $response=$kt->copy_document($params['documentid'], $params['destfolderid'], $params['reason']);
1208   - if ($response['status_code']==0) {
1209   - $this->setResponse(array('status_code'=>0, 'status'=>'itemupdated', 'icon'=>'success', 'title'=>$this->xlate('Document Copied'), 'message'=>$this->xlate('Document has been successfully copied')));
1210   - return true;
1211   - }else{
1212   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to copy document'), 'message'=>$this->xlate('Unable to copy document')));
1213   - return false;
1214   - }
1215   - }
1216   -
1217   - function movedocument($params){
1218   - $kt=$this->KT;
1219   -
1220   - $response=$kt->move_document($params['documentid'], $params['destfolderid'], $params['reason']);
1221   - if ($response['status_code']==0) {
1222   - $this->setResponse(array('status_code'=>0, 'status'=>'itemupdated', 'icon'=>'success', 'title'=>$this->xlate('Document Moved'), 'message'=>$this->xlate('Document has been successfully moved')));
1223   - return true;
1224   - }else{
1225   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to move document'), 'message'=>$this->xlate('Unable to move document')));
1226   - return false;
1227   - }
1228   -
1229   - }
1230   -
1231   - function copyfolder($params){
1232   - $kt=&$this->KT;
1233   -
1234   - $response=$kt->copy_folder($params['sourcefolderid'], $params['destfolderid'], $params['reason']);
1235   - if ($response['status_code']==0) {
1236   - $this->setResponse(array('status_code'=>0, 'status'=>'itemupdated', 'icon'=>'success', 'title'=>$this->xlate('Folder Copied'), 'message'=>$this->xlate('Folder has been successfully copied')));
1237   - return true;
1238   - }else{
1239   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to copy folder'), 'message'=>$this->xlate('Unable to copy folder')));
1240   - return false;
1241   - }
1242   -
1243   - }
1244   -
1245   - function movefolder($params){
1246   - $kt=&$this->KT;
1247   -
1248   - $response=$kt->move_folder($params['sourcefolderid'], $params['destfolderid'], $params['reason']);
1249   - if ($response['status_code']==0) {
1250   - $this->setResponse(array('status_code'=>0, 'status'=>'itemupdated', 'icon'=>'success', 'title'=>$this->xlate('Folder Moved'), 'message'=>$this->xlate('Folder has been successfully moved')));
1251   - return true;
1252   - }else{
1253   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to move folder'), 'message'=>$this->xlate('Unable to move folder')));
1254   - return false;
1255   - }
1256   - }
1257   -
1258   -
1259   - function renamefolder($params){
1260   - $kt=&$this->KT;
1261   -
1262   - $response=$kt->rename_folder($params['currentfolderid'], $params['newname']);
1263   - if ($response['status_code']==0) {
1264   - $this->setResponse(array('status_code'=>0, 'status'=>'folderupdated', 'icon'=>'success', 'title'=>$this->xlate('Folder Renamed'), 'message'=>$this->xlate('Folder has been successfully renamed')));
1265   - return true;
1266   - }else{
1267   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to rename folder'), 'message'=>$this->xlate('Unable to rename folder')));
1268   - return false;
1269   - }
1270   - }
1271   -
1272   - function addfolder($params) {
1273   - $kt=&$this->KT;
1274   - $this->addDebug('parameters',$params);
1275   - $response=$kt->create_folder($params['currentfolderid'], $params['newname']);
1276   - $this->setResponse($response);
  1097 +
  1098 + function copydocument($params) {
  1099 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1100 + $kt = &$this->KT;
  1101 +
  1102 + $response = $kt->copy_document ( $params ['documentid'], $params ['destfolderid'], $params ['reason'] );
  1103 + if ($response ['status_code'] == 0) {
  1104 + $this->setResponse ( array ('status_code' => 0, 'status' => 'itemupdated', 'icon' => 'success', 'title' => $this->xlate ( 'Document Copied' ), 'message' => $this->xlate ( 'Document has been successfully copied' ) ) );
  1105 + return true;
  1106 + } else {
  1107 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to copy document' ), 'message' => $this->xlate ( 'Unable to copy document' ) ) );
  1108 + return false;
  1109 + }
  1110 + }
  1111 +
  1112 + function movedocument($params) {
  1113 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1114 + $kt = $this->KT;
  1115 +
  1116 + $response = $kt->move_document ( $params ['documentid'], $params ['destfolderid'], $params ['reason'] );
  1117 + if ($response ['status_code'] == 0) {
  1118 + $this->setResponse ( array ('status_code' => 0, 'status' => 'itemupdated', 'icon' => 'success', 'title' => $this->xlate ( 'Document Moved' ), 'message' => $this->xlate ( 'Document has been successfully moved' ) ) );
  1119 + return true;
  1120 + } else {
  1121 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to move document' ), 'message' => $this->xlate ( 'Unable to move document' ) ) );
  1122 + return false;
  1123 + }
  1124 +
  1125 + }
  1126 +
  1127 + function copyfolder($params) {
  1128 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1129 + $kt = &$this->KT;
  1130 +
  1131 + $response = $kt->copy_folder ( $params ['sourcefolderid'], $params ['destfolderid'], $params ['reason'] );
  1132 + if ($response ['status_code'] == 0) {
  1133 + $this->setResponse ( array ('status_code' => 0, 'status' => 'itemupdated', 'icon' => 'success', 'title' => $this->xlate ( 'Folder Copied' ), 'message' => $this->xlate ( 'Folder has been successfully copied' ) ) );
  1134 + return true;
  1135 + } else {
  1136 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to copy folder' ), 'message' => $this->xlate ( 'Unable to copy folder' ) ) );
  1137 + return false;
  1138 + }
  1139 +
  1140 + }
  1141 +
  1142 + function movefolder($params) {
  1143 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1144 + $kt = &$this->KT;
  1145 +
  1146 + $response = $kt->move_folder ( $params ['sourcefolderid'], $params ['destfolderid'], $params ['reason'] );
  1147 + if ($response ['status_code'] == 0) {
  1148 + $this->setResponse ( array ('status_code' => 0, 'status' => 'itemupdated', 'icon' => 'success', 'title' => $this->xlate ( 'Folder Moved' ), 'message' => $this->xlate ( 'Folder has been successfully moved' ) ) );
  1149 + return true;
  1150 + } else {
  1151 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to move folder' ), 'message' => $this->xlate ( 'Unable to move folder' ) ) );
  1152 + return false;
  1153 + }
  1154 + }
  1155 +
  1156 + function renamefolder($params) {
  1157 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1158 + $kt = &$this->KT;
  1159 +
  1160 + $response = $kt->rename_folder ( $params ['currentfolderid'], $params ['newname'] );
  1161 + if ($response ['status_code'] == 0) {
  1162 + $this->setResponse ( array ('status_code' => 0, 'status' => 'folderupdated', 'icon' => 'success', 'title' => $this->xlate ( 'Folder Renamed' ), 'message' => $this->xlate ( 'Folder has been successfully renamed' ) ) );
  1163 + return true;
  1164 + } else {
  1165 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to rename folder' ), 'message' => $this->xlate ( 'Unable to rename folder' ) ) );
  1166 + return false;
  1167 + }
  1168 + }
  1169 +
  1170 + function addfolder($params) {
  1171 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1172 + $kt = &$this->KT;
  1173 + $this->addDebug ( 'parameters', $params );
  1174 + $response = $kt->create_folder ( $params ['currentfolderid'], $params ['newname'] );
  1175 + $this->setResponse ( $response );
1277 1176 return true;
1278   - }
1279   -
1280   - function deletefolder($params){
1281   - $kt=&$this->KT;
1282   -
1283   - $response=$kt->delete_folder($params['folderid'], $params['reason']);
1284   - if ($response['status_code']==0) {
1285   - $this->setResponse(array('status_code'=>0, 'status'=>'folderdeleted', 'icon'=>'success', 'title'=>$this->xlate('Folder Deleted'), 'message'=>$this->xlate('Folder has been successfully deleted')));
1286   - return true;
1287   - }else{
1288   - $this->setResponse(array('status_code'=>1, 'status'=>'error', 'icon'=>'failure', 'title'=>$this->xlate('Unable to delete folder'), 'message'=>$this->xlate('Unable to delete folder')));
1289   - return false;
1290   - }
1291   - }
1292   -
1293   - function candeletefolder($arr){
1294   - $kt=&$this->KT;
1295   -
1296   - $folder=&$kt->get_folder_by_id($arr['folderid']);
1297   - if (PEAR::isError($folder)){
1298   - $this->setResponse('error 1');
1299   - return false;
1300   - }
1301   -
1302   - $listing=$folder->get_listing(1, 'DF');
1303   - if (count($listing)==0) {
1304   - $this->setResponse(array('status_code'=>0, 'candelete'=>TRUE));
1305   - return true;
1306   - }else{
1307   - $this->setResponse(array('status_code'=>0, 'candelete'=>FALSE));
1308   - return true;
1309   - }
1310   - }
  1177 + }
  1178 +
  1179 + function deletefolder($params) {
  1180 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1181 + $kt = &$this->KT;
  1182 +
  1183 + $response = $kt->delete_folder ( $params ['folderid'], $params ['reason'] );
  1184 + if ($response ['status_code'] == 0) {
  1185 + $this->setResponse ( array ('status_code' => 0, 'status' => 'folderdeleted', 'icon' => 'success', 'title' => $this->xlate ( 'Folder Deleted' ), 'message' => $this->xlate ( 'Folder has been successfully deleted' ) ) );
  1186 + return true;
  1187 + } else {
  1188 + $this->setResponse ( array ('status_code' => 1, 'status' => 'error', 'icon' => 'failure', 'title' => $this->xlate ( 'Unable to delete folder' ), 'message' => $this->xlate ( 'Unable to delete folder' ) ) );
  1189 + return false;
  1190 + }
  1191 + }
  1192 +
  1193 + function candeletefolder($arr) {
  1194 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
  1195 + $kt = &$this->KT;
  1196 +
  1197 + $folder = &$kt->get_folder_by_id ( $arr ['folderid'] );
  1198 + if (PEAR::isError ( $folder )) {
  1199 + $this->setResponse ( 'error 1' );
  1200 + return false;
  1201 + }
  1202 +
  1203 + $listing = $folder->get_listing ( 1, 'DF' );
  1204 + if (count ( $listing ) == 0) {
  1205 + $this->setResponse ( array ('status_code' => 0, 'candelete' => TRUE ) );
  1206 + return true;
  1207 + } else {
  1208 + $this->setResponse ( array ('status_code' => 0, 'candelete' => FALSE ) );
  1209 + return true;
  1210 + }
  1211 + }
1311 1212 }
1312 1213 ?>
1313 1214 \ No newline at end of file
... ...
webservice/clienttools/services/0.9/server.php
1 1 <?php
2 2 class server extends client_service {
3 3 public function status(){
  4 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
4 5 $this->setResponse(array('online'=>true));
5 6 }
6 7  
7 8 public function ping(){
  9 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
8 10 $this->addResponse('pong',time());
9 11 }
10 12  
11 13 public function getToken(){
  14 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
12 15  
13 16 }
14 17  
15 18 public function phpInfo(){
  19 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
16 20 ob_start();
17 21 phpinfo();
18 22 $this->addResponse('phpinfo',ob_get_clean());
... ...
webservice/clienttools/standardservices/system.php
1 1 <?php
2 2 class system extends client_service{
3 3 public function checkVersion(){
  4 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
4 5 global $default;
5 6 $user=$this->KT->get_user_object_by_username($this->AuthInfo['user']);
6 7 $versions=$this->handler->getServerVersions();
... ... @@ -19,11 +20,14 @@ class system extends client_service{
19 20  
20 21 );
21 22 $this->setResponse($ret);
  23 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Exit Function');
22 24 return true;
23 25 }
24 26  
25 27 public function jsondecode($params){
  28 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Enter Function');
26 29 $this->setResponse(@json_decode(trim($params['code'])));
  30 + $this->logTrace((__METHOD__.'('.__FILE__.' '.__LINE__.')'),'Exit Function');
27 31 }
28 32 }
29 33  
... ...