Commit 8a07991bd59d92eced1de56f3cf1b7b40261ee87
Committed by
Megan Watson
1 parent
c527aeaa
Merged across changes made in the 0.9.2 webservices into 0.9.1 for the Explorer CP release
Committed by: Serge Meunier
Showing
1 changed file
with
137 additions
and
51 deletions
webservice/clienttools/services/0.9.1/kt.php
| ... | ... | @@ -161,7 +161,7 @@ class kt extends client_service { |
| 161 | 161 | |
| 162 | 162 | $folder->addFolderToUserHistory(); |
| 163 | 163 | |
| 164 | - $types = (isset ( $arr ['types'] ) ? $arr ['types'] : 'DF'); | |
| 164 | + $types = (isset ( $arr ['types'] ) ? $arr ['types'] : 'DFS'); | |
| 165 | 165 | |
| 166 | 166 | $listing = $folder->get_listing ( 1, $types ); |
| 167 | 167 | |
| ... | ... | @@ -220,9 +220,29 @@ class kt extends client_service { |
| 220 | 220 | $perms = substr ( $perms, 0, strlen ( $perms ) - 2 ); |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | - if ($itemType == 'F') { | |
| 223 | + // This is done here because a shortcut can be a document or folder | |
| 224 | + switch ($itemType) | |
| 225 | + { | |
| 226 | + case 'F': $docOrFolder = 'F'; break; | |
| 227 | + case 'D': $docOrFolder = 'D'; break; | |
| 228 | + case 'S': | |
| 229 | + if (array_key_exists('linked_folder_id', $item)) { | |
| 230 | + $docOrFolder = 'F'; | |
| 231 | + } else { | |
| 232 | + $docOrFolder = 'D'; | |
| 233 | + } | |
| 234 | + break; | |
| 235 | + } | |
| 236 | + | |
| 237 | + if ($docOrFolder == 'F') { | |
| 224 | 238 | $qtip .= $this->xlate ( 'Folder name' ) . ": {$filename}<br>"; |
| 225 | - $class = 'folder'; | |
| 239 | + | |
| 240 | + if ($itemType == 'S') { | |
| 241 | + $class = 'folder_shortcut'; | |
| 242 | + } else { | |
| 243 | + $class = 'folder'; | |
| 244 | + } | |
| 245 | + | |
| 226 | 246 | $qtip .= $this->xlate ( 'Permissions:' ) . " {$perms}<br>"; |
| 227 | 247 | $qtip .= $canWrite ? $this->xlate ( 'You may add content to this folder' ) : $this->xlate ( 'You may not add content to this folder' ); |
| 228 | 248 | } |
| ... | ... | @@ -239,6 +259,11 @@ class kt extends client_service { |
| 239 | 259 | $class = 'file-' . substr ( $filename, $extpos + 1 ); // Get Extension without the dot |
| 240 | 260 | } |
| 241 | 261 | |
| 262 | + if ($itemType == 'S') { | |
| 263 | + $class .= '_shortcut'; | |
| 264 | + } | |
| 265 | + | |
| 266 | + | |
| 242 | 267 | $extensions = explode ( ',', $arr ['extensions'] ); |
| 243 | 268 | if (! in_array ( strtolower ( $ext ), $extensions ) && ! in_array ( '*', $extensions )) { |
| 244 | 269 | $includeMe = false; |
| ... | ... | @@ -300,7 +325,14 @@ class kt extends client_service { |
| 300 | 325 | $item ['filesize'] = - 1; |
| 301 | 326 | } |
| 302 | 327 | |
| 303 | - 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'], 'filesize_bytes' => $item ['filesize_bytes'], 'modified' => $item ['modified_date'], 'checked_out_by' => $item ['checked_out_by'], 'version' => $item ['version'], 'is_immutable' => $item ['is_immutable'] ); | |
| 328 | + if (array_key_exists('linked_folder_id', $item)) { | |
| 329 | + $linkedId = 'F_'.$item['linked_folder_id']; | |
| 330 | + } else { | |
| 331 | + $linkedId = 'D_'.$item['linked_document_id']; | |
| 332 | + } | |
| 333 | + | |
| 334 | + | |
| 335 | + 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'], 'filesize_bytes' => $item ['filesize_bytes'], 'modified' => $item ['modified_date'], 'checked_out_by' => $item ['checked_out_by'], 'version' => $item ['version'], 'is_immutable' => $item ['is_immutable'], 'linked_item'=>$linkedId ); | |
| 304 | 336 | } |
| 305 | 337 | |
| 306 | 338 | public function get_metadata($params) { |
| ... | ... | @@ -1284,7 +1316,7 @@ Fatal error: Cannot unset string offsets in on line 981 |
| 1284 | 1316 | } |
| 1285 | 1317 | |
| 1286 | 1318 | // Note 50 is set here as the level depth, inaccurate |
| 1287 | - $listing = $folder->get_listing(50, 'DF'); //DF | |
| 1319 | + $listing = $folder->get_listing(50, 'DFS'); //DFS | |
| 1288 | 1320 | |
| 1289 | 1321 | if ($folderId == '1') { |
| 1290 | 1322 | $path = 'KnowledgeTree'; |
| ... | ... | @@ -1328,11 +1360,54 @@ Fatal error: Cannot unset string offsets in on line 981 |
| 1328 | 1360 | $this->addFolderToList($item['items'], $path.'/'.$item['filename']); |
| 1329 | 1361 | |
| 1330 | 1362 | |
| 1363 | + } else if ($item['item_type'] == 'S') { | |
| 1364 | + if (isset($item['linked_document_id']) && $item['linked_document_id'] != '') { | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + $this->listOfFiles[] = array( | |
| 1368 | + 'folderName' => $path, | |
| 1369 | + 'documentId' => $item['linked_document_id'], | |
| 1370 | + 'filename' => $item['filename'], | |
| 1371 | + 'fullpath' => $path.'/'.$item['filename'] | |
| 1372 | + ); | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + // Need to delved again if it is a shortcut folder | |
| 1376 | + } else if (isset($item['linked_folder_id']) && $item['linked_folder_id']) { | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + $folder = $this->KT->get_folder_by_id($item['linked_folder_id']); | |
| 1381 | + | |
| 1382 | + if (PEAR::isError($folder)){ | |
| 1383 | + | |
| 1384 | + } else { | |
| 1385 | + // Note 50 is set here as the level depth, inaccurate | |
| 1386 | + $listing2 = $folder->get_listing(50, 'DFS'); //DF | |
| 1387 | + | |
| 1388 | + /* | |
| 1389 | + if ($folderId == '1') { | |
| 1390 | + $path = 'KnowledgeTree'; | |
| 1391 | + } else { | |
| 1392 | + $path = $item['filename']; | |
| 1393 | + }*/ | |
| 1394 | + | |
| 1395 | + $this->addFolderToList($listing2, $path.'/'.$item['filename']); | |
| 1396 | + } | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + } | |
| 1402 | + | |
| 1403 | + | |
| 1331 | 1404 | } |
| 1332 | 1405 | |
| 1333 | 1406 | } |
| 1334 | 1407 | } |
| 1335 | 1408 | |
| 1409 | + // *********************************************** | |
| 1410 | + | |
| 1336 | 1411 | private function convert_size_to_num($size) |
| 1337 | 1412 | { |
| 1338 | 1413 | //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case) |
| ... | ... | @@ -1388,25 +1463,31 @@ Fatal error: Cannot unset string offsets in on line 981 |
| 1388 | 1463 | { |
| 1389 | 1464 | $folderObj = &$kt->get_folder_by_id ( $folder->getFolderId() ); |
| 1390 | 1465 | |
| 1391 | - $folderArray = array(); | |
| 1392 | - $folderArray['id'] = $folderObj->folderid; | |
| 1393 | - $folderArray['name'] = $folderObj->get_folder_name(); | |
| 1394 | - | |
| 1395 | - $parentIds = explode(',', $folderObj->getParentFolderIds()); | |
| 1396 | - $path = '/F_0'; | |
| 1397 | - | |
| 1398 | - if (count($parentIds) > 0 && $folderObj->getParentFolderIds() != '') { | |
| 1399 | - foreach ($parentIds as $parentId) | |
| 1400 | - { | |
| 1401 | - $path .= '/F_'.$parentId; | |
| 1466 | + if (PEAR::isError ( $folderObj )) { | |
| 1467 | + // Ignore, dont add to list | |
| 1468 | + } else { | |
| 1469 | + | |
| 1470 | + $folderArray = array(); | |
| 1471 | + $folderArray['id'] = $folderObj->folderid; | |
| 1472 | + $folderArray['name'] = $folderObj->get_folder_name(); | |
| 1473 | + | |
| 1474 | + $parentIds = explode(',', $folderObj->getParentFolderIds()); | |
| 1475 | + $path = '/F_0'; | |
| 1476 | + | |
| 1477 | + if (count($parentIds) > 0 && $folderObj->getParentFolderIds() != '') { | |
| 1478 | + foreach ($parentIds as $parentId) | |
| 1479 | + { | |
| 1480 | + $path .= '/F_'.$parentId; | |
| 1481 | + } | |
| 1402 | 1482 | } |
| 1403 | - } | |
| 1404 | - | |
| 1405 | - $path .= '/F_'.$folderObj->folderid; | |
| 1406 | - | |
| 1407 | - $folderArray['path'] = $path; | |
| 1483 | + | |
| 1484 | + $path .= '/F_'.$folderObj->folderid; | |
| 1485 | + | |
| 1486 | + $folderArray['path'] = $path; | |
| 1487 | + | |
| 1488 | + $returnFoldersArray[] = $folderArray; | |
| 1408 | 1489 | |
| 1409 | - $returnFoldersArray[] = $folderArray; | |
| 1490 | + } | |
| 1410 | 1491 | } |
| 1411 | 1492 | |
| 1412 | 1493 | |
| ... | ... | @@ -1417,39 +1498,44 @@ Fatal error: Cannot unset string offsets in on line 981 |
| 1417 | 1498 | foreach ($items as $item) |
| 1418 | 1499 | { |
| 1419 | 1500 | $document = $kt->get_document_by_id($item->getDocumentId()); |
| 1420 | - $documentDetail = $document->get_detail(); | |
| 1421 | - | |
| 1422 | - $documentArray = array(); | |
| 1423 | 1501 | |
| 1424 | - $documentArray['id'] = $document->documentid; | |
| 1425 | - $documentArray['contentID'] = $document->documentid; | |
| 1426 | - $documentArray['title'] = $documentDetail['title']; | |
| 1427 | - $documentArray['folderId'] = $documentDetail['folder_id']; | |
| 1428 | - | |
| 1429 | - // Determine Icon Class | |
| 1430 | - $extpos = strrpos ( $documentDetail['filename'], '.' ); | |
| 1431 | - if ($extpos === false) { | |
| 1432 | - $class = 'file-unknown'; | |
| 1502 | + if (PEAR::isError ( $document )) { | |
| 1503 | + // Ignore, dont add to list | |
| 1433 | 1504 | } else { |
| 1434 | - $class = 'file-' . substr ( $documentDetail['filename'], $extpos + 1 ); // Get Extension without the dot | |
| 1435 | - } | |
| 1436 | - $documentArray['iconCls'] = $class; | |
| 1437 | - | |
| 1438 | - // Determine Icon Path | |
| 1439 | - $folderObj = $kt->get_folder_by_id ( $documentDetail['folder_id']); | |
| 1440 | - $parentIds = explode(',', $folderObj->getParentFolderIds()); | |
| 1441 | - $path = '/F_0'; | |
| 1442 | - if (count($parentIds) > 0 && $folderObj->getParentFolderIds() != '') { | |
| 1443 | - foreach ($parentIds as $parentId) | |
| 1444 | - { | |
| 1445 | - $path .= '/F_'.$parentId; | |
| 1505 | + $documentDetail = $document->get_detail(); | |
| 1506 | + | |
| 1507 | + $documentArray = array(); | |
| 1508 | + | |
| 1509 | + $documentArray['id'] = $document->documentid; | |
| 1510 | + $documentArray['contentID'] = $document->documentid; | |
| 1511 | + $documentArray['title'] = $documentDetail['title']; | |
| 1512 | + $documentArray['folderId'] = $documentDetail['folder_id']; | |
| 1513 | + | |
| 1514 | + // Determine Icon Class | |
| 1515 | + $extpos = strrpos ( $documentDetail['filename'], '.' ); | |
| 1516 | + if ($extpos === false) { | |
| 1517 | + $class = 'file-unknown'; | |
| 1518 | + } else { | |
| 1519 | + $class = 'file-' . substr ( $documentDetail['filename'], $extpos + 1 ); // Get Extension without the dot | |
| 1520 | + } | |
| 1521 | + $documentArray['iconCls'] = $class; | |
| 1522 | + | |
| 1523 | + // Determine Icon Path | |
| 1524 | + $folderObj = $kt->get_folder_by_id ( $documentDetail['folder_id']); | |
| 1525 | + $parentIds = explode(',', $folderObj->getParentFolderIds()); | |
| 1526 | + $path = '/F_0'; | |
| 1527 | + if (count($parentIds) > 0 && $folderObj->getParentFolderIds() != '') { | |
| 1528 | + foreach ($parentIds as $parentId) | |
| 1529 | + { | |
| 1530 | + $path .= '/F_'.$parentId; | |
| 1531 | + } | |
| 1446 | 1532 | } |
| 1533 | + $path .= '/F_'.$documentDetail['folder_id']; | |
| 1534 | + | |
| 1535 | + $documentArray['folderPath'] = $path; | |
| 1536 | + | |
| 1537 | + $returnDocumentArray[] = $documentArray; | |
| 1447 | 1538 | } |
| 1448 | - $path .= '/F_'.$documentDetail['folder_id']; | |
| 1449 | - | |
| 1450 | - $documentArray['folderPath'] = $path; | |
| 1451 | - | |
| 1452 | - $returnDocumentArray[] = $documentArray; | |
| 1453 | 1539 | } |
| 1454 | 1540 | |
| 1455 | 1541 | $this->setResponse(array('documents'=>$returnDocumentArray, 'folders'=>$returnFoldersArray)); | ... | ... |