private function getRemoteCategoriesAsOptions($syncInfo, $parentId, $descending) { $controller = new Services_RemoteController($syncInfo['provider'], 'category'); $categories = $controller->list_categories(array('parentId' => $parentId, 'descends' => $descending)); $parts = array(); foreach ($categories as $categ) { $parts[] = $categ['categId'] . '=' . $categ['name']; } return implode(',', $parts); }
private function getRemoteTranslations($syncInfo, $type, $remoteSource) { $controller = new Services_RemoteController($syncInfo['provider'], 'translation'); $data = $controller->manage(array('type' => $type, 'source' => $remoteSource)); $out = array(); if ($data['translations']) { foreach ($data['translations'] as $translation) { if ($translation['objId'] != $remoteSource) { $out[] = $translation['objId']; } } } return $out; }
function importRemoteField(array $info, array $syncInfo) { $groupIds = $this->getOption('groupIds', ''); $groupIds = array_filter(explode('|', $groupIds)); $groupIds = array_map('intval', $groupIds); $controller = new Services_RemoteController($syncInfo['provider'], 'user'); $users = $controller->getResultLoader('list_users', array('groupIds' => $groupIds)); $list = array(); foreach ($users as $user) { $list[] = $user['login']; } if (count($list)) { $info['type'] = 'd'; $info['options'] = implode(',', $list); } else { $info['type'] = 't'; $info['options'] = ''; } return $info; }
private function getRemoteItemLinks($syncInfo, $trackerId, $fieldId, $status) { $controller = new Services_RemoteController($syncInfo['provider'], 'tracker'); $items = $controller->getResultLoader('list_items', array('trackerId' => $trackerId, 'status' => $status)); $result = $controller->edit_field(array('trackerId' => $trackerId, 'fieldId' => $fieldId)); $permName = $result['field']['permName']; if (empty($permName)) { return ''; } $parts = array(); foreach ($items as $item) { $parts[] = $item['itemId'] . '=' . $item['fields'][$permName]; } return implode(',', $parts); }