public function getDestinationType() { $vo_dm = Datamodel::load(); $vs_destination = $this->get("destination"); $t_importer = new ca_data_importers($this->get("importer_id")); $t_instance = $vo_dm->getInstanceByTableNum($t_importer->get("table_num")); $va_split = explode(".", $vs_destination); switch (sizeof($va_split)) { case 1: return __CA_DATA_IMPORTER_DESTINATION_RELATED__; case 2: if (trim($va_split[0]) == $t_instance->tableName()) { if ($t_instance->hasField(trim($va_split[1]))) { return __CA_DATA_IMPORTER_DESTINATION_INTRINSIC__; } else { if ($t_instance->isValidMetadataElement(trim($va_split[1]))) { return __CA_DATA_IMPORTER_DESTINATION_ATTRIBUTE__; } else { return __CA_DATA_IMPORTER_DESTINATION_META__; } } } else { return __CA_DATA_IMPORTER_DESTINATION_RELATED__; } case 3: default: return __CA_DATA_IMPORTER_DESTINATION_META__; } }
* the terms of the provided license as published by Whirl-i-Gig * * CollectiveAccess is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTIES whatsoever, including any implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * This source code is free and modifiable under the terms of * GNU General Public License. (http://www.gnu.org/copyleft/gpl.html). See * the "license.txt" file for details, or visit the CollectiveAccess web site at * http://www.CollectiveAccess.org * * ---------------------------------------------------------------------- */ $t_item = $this->getVar('t_item'); if (!$t_item->getPrimaryKey()) { $vn_importer_count = ca_data_importers::getImporterCount(); ?> <h3 class='importers'><?php print _t('Importers'); ?> : <div><?php if ($vn_importer_count == 1) { print _t("1 importer is defined"); } else { print _t("%1 importers are defined", $vn_importer_count); } ?> </div> </h3><?php } else {
msg = msg.replace("%1", jQuery("#caImporterList option:selected").text()) caConfirmBatchExecutionPanel.showPanel(); jQuery('#caConfirmBatchExecutionPanelAlertText').html(msg); } $(document).bind('drop dragover', function (e) { e.preventDefault(); }); var caDataReaderInfo = <?php print json_encode(ca_data_importers::getInfoForAvailableInputFormats()); ?> ; var caImporterInfo = <?php print json_encode(ca_data_importers::getImporters()); ?> ; function caSetBatchMetadataImportFormState(dontAnimate) { var info; var currentFormat = jQuery("#caInputFormatList").val(); // Set format list var relevantFormats = []; var curImporterID = jQuery("#caImporterList").val(); if (caImporterInfo[curImporterID]) { relevantFormats = caImporterInfo[curImporterID]['settings']['inputFormats']; } var opts = [];
/** * */ public static function import_data($po_opts = null) { require_once __CA_MODELS_DIR__ . "/ca_data_importers.php"; if (!($vs_data_source = $po_opts->getOption('source'))) { CLIUtils::addError(_t('You must specify a data source for import')); return false; } if (!$vs_data_source) { CLIUtils::addError(_t('You must specify a source')); return false; } if (!($vs_mapping = $po_opts->getOption('mapping'))) { CLIUtils::addError(_t('You must specify a mapping')); return false; } if (!ca_data_importers::mappingExists($vs_mapping)) { CLIUtils::addError(_t('Mapping %1 does not exist', $vs_mapping)); return false; } $vb_no_ncurses = (bool) $po_opts->getOption('disable-ncurses'); $vs_format = $po_opts->getOption('format'); $vs_log_dir = $po_opts->getOption('log'); $vn_log_level = CLIUtils::import_getLogLevel($po_opts); if (!ca_data_importers::importDataFromSource($vs_data_source, $vs_mapping, array('format' => $vs_format, 'showCLIProgressBar' => true, 'useNcurses' => !$vb_no_ncurses && caCLIUseNcurses(), 'logDirectory' => $vs_log_dir, 'logLevel' => $vn_log_level))) { CLIUtils::addError(_t("Could not import source %1", $vs_data_source)); return false; } else { CLIUtils::addMessage(_t("Imported data from source %1", $vs_data_source)); return true; } }
/** * */ public static function getValueFromSource($pa_item, $po_reader, $pa_options = null) { $pb_return_as_array = caGetOption('returnAsArray', $pa_options, false); $pa_environment = caGetOption('environment', $pa_options, array(), array('castTo' => 'array')); $ps_delimiter = caGetOption('delimiter', $pa_options, ';'); if (preg_match('!^_CONSTANT_:[^:]+:(.*)$!', $pa_item['source'], $va_matches)) { $vm_value = $va_matches[1]; } elseif (isset($pa_environment[$pa_item['source']])) { $vm_value = $pa_environment[$pa_item['source']]; } else { if ($po_reader->valuesCanRepeat()) { $vm_value = $po_reader->get($pa_item['source'], array('returnAsArray' => true)); if (!is_array($vm_value)) { return $pb_return_as_array ? array() : null; } foreach ($vm_value as $vs_k => $vs_v) { $vm_value[$vs_k] = ca_data_importers::replaceValue(trim($vs_v), $pa_item); } if ($pb_return_as_array) { return $vm_value; } else { return join($ps_delimiter, $vm_value); } } else { $vm_value = trim($po_reader->get($pa_item['source'])); } } $vm_value = ca_data_importers::replaceValue($vm_value, $pa_item); if ($pb_return_as_array) { return is_array($vm_value) ? $vm_value : array($vm_value); } return $vm_value; }
/** * * * */ public function UploadImporters() { $va_response = array('uploadMessage' => '', 'skippedMessage' => ''); $va_errors = array(); foreach ($_FILES as $vs_param => $va_file) { foreach ($va_file['name'] as $vn_i => $vs_name) { if ($t_importer = ca_data_importers::loadImporterFromFile($va_file['tmp_name'][$vn_i], $va_errors, array('logDirectory' => $this->request->config->get('batch_metadata_import_log_directory'), 'logLevel' => KLogger::INFO, 'originalFilename' => $vs_name))) { $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->view->setVar('response', $va_response); $this->render('mediaimport/file_upload_response_json.php'); }
/** * */ public static function getValueFromSource($pa_item, $po_reader, $pa_options = null) { $pb_return_as_array = caGetOption('returnAsArray', $pa_options, false); $pa_environment = caGetOption('environment', $pa_options, array(), array('castTo' => 'array')); $ps_delimiter = caGetOption('delimiter', $pa_options, ';'); $pn_lookahead = caGetOption('lookahead', $pa_options, 0, array('castTo' => 'int')); if (preg_match('!^_CONSTANT_:[^:]+:(.*)$!', $pa_item['source'], $va_matches)) { $vm_value = $va_matches[1]; } elseif (isset($pa_environment[$pa_item['source']])) { $vm_value = $pa_environment[$pa_item['source']]; } else { $vn_cur_pos = $po_reader->currentRow(); $vb_did_seek = false; if ($pn_lookahead > 0) { $vn_seek_to = $po_reader->currentRow() + $pn_lookahead; $po_reader->seek($vn_seek_to); $vb_did_seek = true; } if ($po_reader->valuesCanRepeat()) { $vm_value = $po_reader->get($pa_item['source'], array('returnAsArray' => true)); if (!is_array($vm_value)) { return $pb_return_as_array ? array() : null; } foreach ($vm_value as $vs_k => $vs_v) { $vs_v = stripslashes($vs_v); $vm_value[$vs_k] = ca_data_importers::replaceValue(trim($vs_v), $pa_item); } if ($pb_return_as_array) { return $vm_value; } else { return join($ps_delimiter, $vm_value); } } else { $vm_value = trim($po_reader->get($pa_item['source'])); } if ($vb_did_seek) { $po_reader->seek($vn_cur_pos); } } $vm_value = ca_data_importers::replaceValue(stripslashes($vm_value), $pa_item); if ($pb_return_as_array) { return is_array($vm_value) ? $vm_value : array($vm_value); } return $vm_value; }
/** * @param Zend_Console_Getopt|null $po_opts * @return bool */ public static function reload_ulan_records($po_opts = null) { require_once __CA_MODELS_DIR__ . '/ca_data_importers.php'; if (!($vs_mapping = $po_opts->getOption('mapping'))) { CLIUtils::addError("\t\tNo mapping found. Please use the -m parameter to specify a ULAN mapping."); return false; } if (!ca_data_importers::mappingExists($vs_mapping)) { CLIUtils::addError("\t\tMapping {$vs_mapping} does not exist"); return false; } $vs_log_dir = $po_opts->getOption('log'); $vn_log_level = CLIUtils::getLogLevel($po_opts); $o_db = new Db(); $qr_items = $o_db->query("\n\t\t\t\tSELECT DISTINCT source FROM ca_data_import_events WHERE type_code = 'ULAN'\n\t\t\t"); $va_sources = array(); while ($qr_items->nextRow()) { $vs_source = $qr_items->get('source'); if (!isURL($vs_source)) { continue; } if (!preg_match("/http\\:\\/\\/vocab\\.getty\\.edu\\/ulan\\//", $vs_source)) { continue; } $va_sources[] = $vs_source; } ca_data_importers::importDataFromSource(join(',', $va_sources), $vs_mapping, array('format' => 'ULAN', 'showCLIProgressBar' => true, 'logDirectory' => $vs_log_dir, 'logLevel' => $vn_log_level)); return true; }
/** * */ public static function import_data($po_opts = null) { require_once __CA_MODELS_DIR__ . "/ca_data_importers.php"; if (!($vs_data_source = $po_opts->getOption('source'))) { CLIUtils::addError(_t('You must specify a data source for import')); return false; } if (!$vs_data_source) { CLIUtils::addError(_t('You must specify a source')); return false; } if (!($vs_mapping = $po_opts->getOption('mapping'))) { CLIUtils::addError(_t('You must specify a mapping')); return false; } if (!ca_data_importers::mappingExists($vs_mapping)) { CLIUtils::addError(_t('Mapping %1 does not exist', $vs_mapping)); return false; } $vb_no_ncurses = (bool) $po_opts->getOption('disable-ncurses'); $vs_format = $po_opts->getOption('format'); $vs_log_dir = $po_opts->getOption('log'); $vn_log_level = KLogger::INFO; switch ($vs_log_level = $po_opts->getOption('log-level')) { case 'DEBUG': $vn_log_level = KLogger::DEBUG; break; case 'NOTICE': $vn_log_level = KLogger::NOTICE; break; case 'WARN': $vn_log_level = KLogger::WARN; break; case 'ERR': $vn_log_level = KLogger::ERR; break; case 'CRIT': $vn_log_level = KLogger::CRIT; break; case 'ALERT': $vn_log_level = KLogger::ALERT; break; default: case 'INFO': $vn_log_level = KLogger::INFO; break; } if (!ca_data_importers::importDataFromSource($vs_data_source, $vs_mapping, array('format' => $vs_format, 'showCLIProgressBar' => true, 'useNcurses' => !$vb_no_ncurses && caCLIUseNcurses(), 'logDirectory' => $vs_log_dir, 'logLevel' => $vn_log_level))) { CLIUtils::addError(_t("Could not import source %1", $vs_data_source)); return false; } else { CLIUtils::addMessage(_t("Imported data from source %1", $vs_data_source)); return true; } }
/** * Import metadata using a mapping * * @param RequestHTTP $po_request The current request * @param string $ps_source A path to a file or directory of files to import * @param string $ps_importer The code of the importer (mapping) to use * @param string $ps_input_format The format of the source data * @param array $pa_options * progressCallback = * reportCallback = * sendMail = * dryRun = * importAllDatasets = * log = log directory path * logLevel = KLogger constant for minimum log level to record. Default is KLogger::INFO. Constants are, in descending order of shrillness: * KLogger::EMERG = Emergency messages (system is unusable) * KLogger::ALERT = Alert messages (action must be taken immediately) * KLogger::CRIT = Critical conditions * KLogger::ERR = Error conditions * KLogger::WARN = Warnings * KLogger::NOTICE = Notices (normal but significant conditions) * KLogger::INFO = Informational messages * KLogger::DEBUG = Debugging messages */ public static function importMetadata($po_request, $ps_source, $ps_importer, $ps_input_format, $pa_options = null) { $va_errors = $va_noticed = array(); $vn_start_time = time(); $o_config = Configuration::load(); if (!ca_data_importers::mappingExists($ps_importer)) { $va_errors['general'] = array('idno' => "*", 'label' => "*", 'errors' => array(_t('Importer %1 does not exist', $ps_importer)), 'status' => 'ERROR'); return false; } $vs_log_dir = caGetOption('log', $pa_options, null); $vs_log_level = caGetOption('logLevel', $pa_options, "INFO"); $vb_import_all_datasets = caGetOption('importAllDatasets', $pa_options, false); $vb_dry_run = caGetOption('dryRun', $pa_options, false); $vn_log_level = BatchProcessor::_logLevelStringToNumber($vs_log_level); if (!isURL($ps_source) && is_dir($ps_source)) { $va_sources = caGetDirectoryContentsAsList($ps_source, true, false, false, false); } else { $va_sources = array($ps_source); } $vn_file_num = 0; foreach ($va_sources as $vs_source) { $vn_file_num++; if (!ca_data_importers::importDataFromSource($vs_source, $ps_importer, array('fileNumber' => $vn_file_num, 'numberOfFiles' => sizeof($va_sources), 'logDirectory' => $o_config->get('batch_metadata_import_log_directory'), 'request' => $po_request, 'format' => $ps_input_format, 'showCLIProgressBar' => false, 'useNcurses' => false, 'progressCallback' => isset($pa_options['progressCallback']) ? $pa_options['progressCallback'] : null, 'reportCallback' => isset($pa_options['reportCallback']) ? $pa_options['reportCallback'] : null, 'logDirectory' => $vs_log_dir, 'logLevel' => $vn_log_level, 'dryRun' => $vb_dry_run, 'importAllDatasets' => $vb_import_all_datasets))) { $va_errors['general'][] = array('idno' => "*", 'label' => "*", 'errors' => array(_t("Could not import source %1", $ps_source)), 'status' => 'ERROR'); return false; } else { $va_notices['general'][] = array('idno' => "*", 'label' => "*", 'errors' => array(_t("Imported data from source %1", $ps_source)), 'status' => 'SUCCESS'); //return true; } } $vn_elapsed_time = time() - $vn_start_time; if (isset($pa_options['sendMail']) && $pa_options['sendMail']) { if ($vs_email = trim($po_request->user->get('email'))) { caSendMessageUsingView($po_request, array($vs_email => $po_request->user->get('fname') . ' ' . $po_request->user->get('lname')), __CA_ADMIN_EMAIL__, _t('[%1] Batch metadata import completed', $po_request->config->get('app_display_name')), 'batch_metadata_import_completed.tpl', array('notices' => $va_notices, 'errors' => $va_errors, 'numErrors' => sizeof($va_errors), 'numProcessed' => sizeof($va_notices), 'subjectNameSingular' => _t('row'), 'subjectNamePlural' => _t('rows'), 'startedOn' => caGetLocalizedDate($vn_start_time), 'completedOn' => caGetLocalizedDate(time()), 'elapsedTime' => caFormatInterval($vn_elapsed_time))); } } if (isset($pa_options['sendSMS']) && $pa_options['sendSMS']) { SMS::send($po_request->getUserID(), _t("[%1] Metadata import processing for begun at %2 is complete", $po_request->config->get('app_display_name'), caGetLocalizedDate($vn_start_time))); } return array('errors' => $va_errors, 'notices' => $va_notices, 'processing_time' => caFormatInterval($vn_elapsed_time)); }
/** * @param array $pa_options * progressCallback = * reportCallback = * sendMail = * log = log directory path * logLevel = KLogger loglevel. Default is "INFO" */ public static function importMetadata($po_request, $ps_source, $ps_importer, $ps_input_format, $pa_options = null) { $va_errors = $va_noticed = array(); $vn_start_time = time(); $o_config = Configuration::load(); if (!ca_data_importers::mappingExists($ps_importer)) { $va_errors['general'] = array('idno' => "*", 'label' => "*", 'errors' => array(_t('Importer %1 does not exist', $ps_importer)), 'status' => 'ERROR'); return false; } $vs_log_dir = isset($pa_options['log']) ? $pa_options['log'] : null; $vn_log_level = KLogger::INFO; switch ($vs_log_level = isset($pa_options['logLevel']) ? $pa_options['logLevel'] : "INFO") { case 'DEBUG': $vn_log_level = KLogger::DEBUG; break; case 'NOTICE': $vn_log_level = KLogger::NOTICE; break; case 'WARN': $vn_log_level = KLogger::WARN; break; case 'ERR': $vn_log_level = KLogger::ERR; break; case 'CRIT': $vn_log_level = KLogger::CRIT; break; case 'ALERT': $vn_log_level = KLogger::ALERT; break; default: case 'INFO': $vn_log_level = KLogger::INFO; break; } if (!ca_data_importers::importDataFromSource($ps_source, $ps_importer, array('logDirectory' => $o_config->get('batch_metadata_import_log_directory'), 'request' => $po_request, 'format' => $ps_input_format, 'showCLIProgressBar' => false, 'useNcurses' => false, 'progressCallback' => isset($pa_options['progressCallback']) ? $pa_options['progressCallback'] : null, 'reportCallback' => isset($pa_options['reportCallback']) ? $pa_options['reportCallback'] : null, 'logDirectory' => $vs_log_dir, 'logLevel' => $vn_log_level))) { $va_errors['general'] = array('idno' => "*", 'label' => "*", 'errors' => array(_t("Could not import source %1", $vs_data_source)), 'status' => 'ERROR'); return false; } else { $va_notices['general'] = array('idno' => "*", 'label' => "*", 'errors' => array(_t("Imported data from source %1", $vs_data_source)), 'status' => 'SUCCESS'); //return true; } $vn_elapsed_time = time() - $vn_start_time; if (isset($pa_options['sendMail']) && $pa_options['sendMail']) { if ($vs_email = trim($po_request->user->get('email'))) { caSendMessageUsingView($po_request, array($vs_email => $po_request->user->get('fname') . ' ' . $po_request->user->get('lname')), __CA_ADMIN_EMAIL__, _t('[%1] Batch metadata import completed', $po_request->config->get('app_display_name')), 'batch_metadata_import_completed.tpl', array('notices' => $va_notices, 'errors' => $va_errors, 'numErrors' => sizeof($va_errors), 'numProcessed' => sizeof($va_notices), 'subjectNameSingular' => _t('row'), 'subjectNamePlural' => _t('rows'), 'startedOn' => $vs_started_on, 'completedOn' => caGetLocalizedDate(time()), 'elapsedTime' => caFormatInterval($vn_elapsed_time))); } } if (isset($pa_options['sendSMS']) && $pa_options['sendSMS']) { SMS::send($po_request->getUserID(), _t("[%1] Metadata import processing for begun at %2 is complete", $po_request->config->get('app_display_name'), $vs_started_on)); } return array('errors' => $va_errors, 'notices' => $va_notices, 'processing_time' => caFormatInterval($vn_elapsed_time)); }
/** * Ajax-invoked execution of import process. This is where the import is actually run. */ public function RunImport() { if (!$this->request->user->canDoAction('can_import_worldcat')) { return; } $pa_worldcat_ids = $this->request->getParameter('WorldCatID', pArray); $pn_importer_id = $this->request->getParameter('importer_id', pInteger); $ps_job_id = $this->request->getParameter('job_id', pString); $pn_log_level = $this->request->getParameter('log_level', pInteger); $o_progress = new ProgressBar('WebUI', 0, $ps_job_id); $o_progress->setJobID($ps_job_id); $o_progress->setMode('WebUI'); $o_progress->setTotal(sizeof($pa_worldcat_ids)); $vn_status = ca_data_importers::importDataFromSource(join(",", $pa_worldcat_ids), $pn_importer_id, array('progressBar' => $o_progress, 'format' => 'WorldCat', 'logLevel' => $pn_log_level)); $this->view->setVar('info', array('status' => $vn_status, 'job_id' => $ps_job_id, 'importer_id' => $pn_importer_id, 'worldcat_ids' => $pa_worldcat_ids)); $this->render('import_run_json.php'); }
/** * Generates a form for specification of media import settings. The form is rendered into the current view, inherited from ActionController * * @param array $pa_values An optional array of values to preset in the format, overriding any existing values in the model of the record being editing. * @param array $pa_options Array of options passed through to _initView * */ public function Index($pa_values = null, $pa_options = null) { AssetLoadManager::register("directoryBrowser"); list($t_ui) = $this->_initView($pa_options); $this->view->setVar('batch_mediaimport_last_settings', $va_last_settings = is_array($va_last_settings = $this->request->user->getVar('batch_mediaimport_last_settings')) ? $va_last_settings : array()); // get import type from request $vs_import_target = $this->getRequest()->getParameter('target', pString); $t_instance = $this->getRequest()->getAppDatamodel()->getInstance($vs_import_target); // if that failed, try last settings if (!$t_instance) { $vs_import_target = $va_last_settings['importTarget']; $t_instance = $this->getRequest()->getAppDatamodel()->getInstance($vs_import_target); } // if that too failed, go back to objects if (!$t_instance) { $t_instance = new ca_objects(); $vs_import_target = 'ca_objects'; } $this->getView()->setVar('import_target', $vs_import_target); $t_instance->set('status', $va_last_settings[$vs_import_target . '_status']); $t_instance->set('access', $va_last_settings[$vs_import_target . '_access']); $t_rep = new ca_object_representations(); $t_rep->set('status', $va_last_settings['ca_object_representations_status']); $t_rep->set('access', $va_last_settings['ca_object_representations_access']); $va_nav = $t_ui->getScreensAsNavConfigFragment($this->request, null, $this->request->getModulePath(), $this->request->getController(), $this->request->getAction(), array(), array()); if (!$this->request->getActionExtra() || !isset($va_nav['fragment'][str_replace("Screen", "screen_", $this->request->getActionExtra())])) { $this->request->setActionExtra($va_nav['defaultScreen']); } $this->view->setVar('t_ui', $t_ui); $this->view->setVar('import_target', caHTMLSelect('import_target', $this->opa_importable_tables, array('id' => 'caImportTargetSelect', 'onchange' => 'window.location.replace("' . caNavUrl($this->getRequest(), $this->getRequest()->getModulePath(), $this->getRequest()->getController(), $this->getRequest()->getAction()) . '/target/" + jQuery("#caImportTargetSelect").val()); return false;'), array('value' => $vs_import_target))); $this->view->setVar('import_mode', caHTMLSelect('import_mode', array(_t('Import all media, matching with existing records where possible') => 'TRY_TO_MATCH', _t('Import only media that can be matched with existing records') => 'ALWAYS_MATCH', _t('Import all media, creating new records for each') => 'DONT_MATCH'), array(), array('value' => $va_last_settings['importMode']))); $this->view->setVar('match_mode', caHTMLSelect('match_mode', array(_t('Match using file name') => 'FILE_NAME', _t('Match using directory name') => 'DIRECTORY_NAME', _t('Match using directory name, then file name') => 'FILE_AND_DIRECTORY_NAMES'), array(), array('value' => $va_last_settings['matchMode']))); $this->view->setVar('match_type', caHTMLSelect('match_type', array(_t('matches exactly') => 'EXACT', _t('starts with') => 'STARTS', _t('ends with') => 'ENDS', _t('contains') => 'CONTAINS'), array(), array('value' => $va_last_settings['matchType']))); $this->view->setVar($vs_import_target . '_type_list', $t_instance->getTypeListAsHTMLFormElement($vs_import_target . '_type_id', null, array('value' => $va_last_settings[$vs_import_target . '_type_id']))); $this->view->setVar($vs_import_target . '_limit_to_types_list', $t_instance->getTypeListAsHTMLFormElement($vs_import_target . '_limit_matching_to_type_ids[]', array('multiple' => 1), array('height' => '100px', 'values' => $va_last_settings[$vs_import_target . '_limit_matching_to_type_ids']))); $this->view->setVar('ca_object_representations_type_list', $t_rep->getTypeListAsHTMLFormElement('ca_object_representations_type_id', null, array('value' => $va_last_settings['ca_object_representations_type_id']))); if ($vs_import_target != 'ca_objects') { // non-object representations have relationship types $t_rel = ca_relationship_types::getRelationshipTypeInstance($t_instance->tableName(), 'ca_object_representations'); $this->getView()->setVar($vs_import_target . '_representation_relationship_type', $t_rel->getRelationshipTypesAsHTMLSelect('ltor', null, null, array('name' => $vs_import_target . '_representation_relationship_type'), array('value' => $va_last_settings[$vs_import_target . '_representation_relationship_type']))); } $va_importer_list = ca_data_importers::getImporters(null, array('formats' => array('exif'))); $va_object_importer_options = $va_object_representation_importer_options = array("-" => ''); foreach ($va_importer_list as $vn_importer_id => $va_importer_info) { if ($va_importer_info['table_num'] == $t_instance->tableNum()) { // target table $va_object_importer_options[$va_importer_info['label']] = $vn_importer_id; } else { $va_object_representation_importer_options[$va_importer_info['label']] = $vn_importer_id; } } $this->view->setVar($vs_import_target . '_mapping_list', caHTMLSelect($vs_import_target . '_mapping_id', $va_object_importer_options, array(), array('value' => $va_last_settings[$vs_import_target . '_mapping_id']))); $this->view->setVar($vs_import_target . '_mapping_list_count', sizeof($va_object_importer_options)); $this->view->setVar('ca_object_representations_mapping_list', caHTMLSelect('ca_object_representations_mapping_id', $va_object_representation_importer_options, array(), array('value' => $va_last_settings['ca_object_representations_mapping_id']))); $this->view->setVar('ca_object_representations_mapping_list_count', sizeof($va_object_representation_importer_options)); // // Available sets // $t_set = new ca_sets(); $va_available_set_list = caExtractValuesByUserLocale($t_set->getSets(array('table' => $vs_import_target, 'user_id' => $this->request->getUserID(), 'access' => __CA_SET_EDIT_ACCESS__, 'omitCounts' => true))); $va_available_sets = array(); foreach ($va_available_set_list as $vn_set_id => $va_set) { $va_available_sets[$va_set['name']] = $vn_set_id; } $this->view->setVar('available_sets', $va_available_sets); $this->view->setVar('t_instance', $t_instance); $this->view->setVar('t_rep', $t_rep); $this->render('mediaimport/import_options_html.php'); }