コード例 #1
0
 /**
  * Gets the singleton instance of the Account class.
  *
  * @return LingotekAccount
  *   An instantiated LingotekAccount object.
  */
 public static function instance()
 {
     if (!isset(self::$instance)) {
         $class_name = __CLASS__;
         self::$instance = new $class_name();
     }
     return self::$instance;
 }
コード例 #2
0
 /**
  * Add a document to the Lingotek platform.
  *
  * Uploads the node's field content in the node's selected language.
  *
  * @param object $node
  *   A Drupal node object.
  */
 public function addContentDocument($node, $with_targets = FALSE)
 {
     global $_lingotek_locale;
     $success = FALSE;
     $project_id = empty($node->lingotek_project_id) ? NULL : $node->lingotek_project_id;
     $project_id = empty($project_id) ? lingotek_lingonode($node->nid, 'project_id') : $project_id;
     $project_id = empty($project_id) ? variable_get('lingotek_project', NULL) : $project_id;
     $vault_id = empty($node->lingotek_vault_id) ? NULL : $node->lingotek_vault_id;
     $vault_id = empty($vault_id) ? lingotek_lingonode($node->nid, 'vault_id') : $vault_id;
     $vault_id = empty($vault_id) ? variable_get('lingotek_vault', 1) : $vault_id;
     $workflow_id = empty($node->workflow_id) ? NULL : $node->workflow_id;
     $workflow_id = empty($workflow_id) ? lingotek_lingonode($node->nid, 'workflow_id') : $workflow_id;
     $workflow_id = empty($workflow_id) ? variable_get('workflow_id', NULL) : $workflow_id;
     $source_language = isset($_lingotek_locale[$node->language]) ? $_lingotek_locale[$node->language] : $_lingotek_locale[lingotek_get_source_language()];
     if ($project_id) {
         $parameters = array('projectId' => $project_id, 'documentName' => $node->title, 'documentDesc' => $node->title, 'format' => $this->xmlFormat(), 'sourceLanguage' => $source_language, 'tmVaultId' => $vault_id, 'content' => lingotek_xml_node_body($node), 'note' => url('node/' . $node->nid, array('absolute' => TRUE, 'alias' => TRUE)));
         if (!empty($workflow_id)) {
             $parameters['workflowId'] = $workflow_id;
         }
         $this->addAdvancedParameters($parameters, $node);
         if ($with_targets) {
             $parameters['targetAsJSON'] = LingotekAccount::instance()->getManagedTargetsAsJSON();
             $parameters['applyWorkflow'] = 'true';
             // API expects a 'true' string
             $result = $this->request('addContentDocumentWithTargets', $parameters);
         } else {
             $result = $this->request('addContentDocument', $parameters);
         }
         if ($result) {
             lingotek_lingonode($node->nid, 'document_id', $result->id);
             lingotek_lingonode($node->nid, 'project_id', $project_id);
             LingotekSync::setNodeAndTargetsStatus($node->nid, LingotekSync::STATUS_CURRENT, LingotekSync::STATUS_PENDING);
             $success = TRUE;
         }
     }
     return $success;
 }