/**
  * @link http://clangers.collectiveaccess.org/jira/browse/PROV-1026
  */
 public function testDataExporterCanLoadFromFile()
 {
     $t_locale = new ca_locales();
     $va_locales = $t_locale->getLocaleList();
     $vn_locale_id = key($va_locales);
     $t_exporter = new ca_data_exporters();
     $va_errors = array();
     ca_data_exporters::loadExporterFromFile(__DIR__ . '/data/list_item_export_mapping.xlsx', $va_errors, array('locale_id' => $vn_locale_id));
     $vo_exporter = ca_data_exporters::loadExporterByCode('testmappingforunittests');
     $this->assertEmpty($va_errors, 'Should be no error messages');
     $this->assertTrue(is_object($vo_exporter), 'Should have found an exporter by the correct name');
     $this->assertInstanceOf('ca_data_exporters', $vo_exporter, 'Incorrect type loaded');
     $vo_exporter->setMode(ACCESS_WRITE);
     $vo_exporter->delete(true, array('hard' => true));
     $vo_exporter = $t_exporter->load(array('exporter_code' => 'testmappingforunittests'));
     $this->assertFalse($vo_exporter, 'Should no longer have an exporter loaded');
 }
 public function UploadExporters()
 {
     $va_response = array('uploadMessage' => '', 'skippedMessage' => '');
     foreach ($_FILES as $va_file) {
         foreach ($va_file['name'] as $vn_i => $vs_name) {
             if ($t_importer = ca_data_exporters::loadExporterFromFile($va_file['tmp_name'][$vn_i], $va_errors)) {
                 $va_response['copied'][$vs_name] = true;
             } else {
                 $va_response['skipped'][$vs_name] = true;
             }
         }
     }
     $va_response['uploadMessage'] = ($vn_upload_count = sizeof($va_response['copied'])) == 1 ? _t('Uploaded %1 worksheet', $vn_upload_count) : _t('Uploaded %1 worksheets', $vn_upload_count);
     if (is_array($va_response['skipped']) && ($vn_skip_count = sizeof($va_response['skipped'])) && !$va_response['error']) {
         $va_response['skippedMessage'] = $vn_skip_count == 1 ? _t('Skipped %1 worksheet', $vn_skip_count) : _t('Skipped %1 worksheet', $vn_skip_count);
     }
     $this->getView()->setVar('response', $va_response);
     $this->render('export/file_upload_response_json.php');
 }
Exemplo n.º 3
0
 /**
  * 
  */
 public static function load_export_mapping($po_opts = null)
 {
     require_once __CA_MODELS_DIR__ . "/ca_data_exporters.php";
     if (!($vs_file_path = $po_opts->getOption('file'))) {
         print _t("You must specify a file!") . "\n";
         return false;
     }
     if (!file_exists($vs_file_path)) {
         print _t("File '%1' does not exist!", $vs_file_path) . "\n";
         return false;
     }
     if (!($t_exporter = ca_data_exporters::loadExporterFromFile($vs_file_path, $va_errors))) {
         if (is_array($va_errors) && sizeof($va_errors)) {
             foreach ($va_errors as $vs_error) {
                 CLIUtils::addError($vs_error);
             }
         } else {
             CLIUtils::addError(_t("Could not import '%1'", $vs_file_path));
         }
         return false;
     } else {
         if (is_array($va_errors) && sizeof($va_errors)) {
             foreach ($va_errors as $vs_error) {
                 CLIUtils::addMessage(_t("Warning") . ":" . $vs_error);
             }
         }
         print _t("Created mapping %1 from %2", CLIUtils::textWithColor($t_exporter->get('exporter_code'), 'yellow'), $vs_file_path) . "\n";
         return true;
     }
 }