getItems($conditions) as $item) { $data = array_filter(tmgmt_flatten_data($item->getData()), '_tmgmt_filter_data'); foreach ($data as $key => $value) { $items[$item->tjiid][$this->encodeIdSafeBase64($item->tjiid . '][' . $key)] = $value; } } return theme('tmgmt_file_html_template', array( 'tjid' => $job->tjid, 'source_language' => $job->getTranslator()->mapToRemoteLanguage($job->source_language), 'target_language' => $job->getTranslator()->mapToRemoteLanguage($job->target_language), 'items' => $items, )); } /** * {@inheritdoc} */ public function import($imported_file, $is_file = TRUE) { $dom = new DOMDocument(); $dom->loadHTMLFile($imported_file); $xml = simplexml_import_dom($dom); $data = array(); foreach ($xml->xpath("//div[@class='atom']") as $atom) { // Assets are our strings (eq fields in nodes). $key = $this->decodeIdSafeBase64((string) $atom['id']); $data[$key]['#text'] = (string) $atom; } return tmgmt_unflatten_data($data); } /** * {@inheritdoc} */ public function validateImport($imported_file) { $dom = new DOMDocument(); if (!$dom->loadHTMLFile($imported_file)) { return FALSE; } $xml = simplexml_import_dom($dom); // Collect meta information. $meta_tags = $xml->xpath('//meta'); $meta = array(); foreach ($meta_tags as $meta_tag) { $meta[(string) $meta_tag['name']] = (string) $meta_tag['content']; } // Check required meta tags. foreach (array('JobID', 'languageSource', 'languageTarget') as $name) { if (!isset($meta[$name])) { return FALSE; } } // Attempt to load the job. if (!$job = tmgmt_job_load($meta['JobID'])) { drupal_set_message(t('The imported file job id @file_tjid is not available.', array( '@file_tjid' => $job->tjid, )), 'error'); return FALSE; } // Check language. if ($meta['languageSource'] != $job->getTranslator()->mapToRemoteLanguage($job->source_language) || $meta['languageTarget'] != $job->getTranslator()->mapToRemoteLanguage($job->target_language)) { return FALSE; } // Validation successful. return $job; } }