$ref && in_array($resource['resource_type'], $emu_resource_types)) { return true; } return false; } function HookEmuEditEditbeforesectionhead() { global $lang, $baseurl, $ref, $resource, $emu_irn_field, $emu_confirm_upload, $emu_resource_types; if($ref < 0 && in_array($resource['resource_type'], $emu_resource_types)) { $value = escape(get_data_by_field($ref,$emu_irn_field)); ?>
$ref) { // We can't get any data from EMu for this new resource. Need to show warning if user has not already accepted this if('' == getval('emu_confirm_upload', '')) { global $emu_confirm_upload; $emu_confirm_upload = true; return "{$lang['emu_upload_nodata']} {$lang['emu_confirm_upload_nodata']}"; } } else { global $emu_import; $emu_import = true; return false; } } return false; } function HookEmuEditSaveextraresourcedata($list) { global $emu_irn_field; $emu_irn = intval(getval("field_{$emu_irn_field}", '', true)); if(0 == $emu_irn) { return false; } global $emu_api_server, $emu_api_server_port, $emu_rs_saved_mappings, $emu_data; $emu_rs_mappings = plugin_decode_complex_configs($emu_rs_saved_mappings); $emu_data = get_emu_data($emu_api_server, $emu_api_server_port, array($emu_irn), $emu_rs_mappings); if(is_array($emu_data)) { global $emu_import, $emu_update_list; $emu_import = true; $emu_update_list = $list; } return false; } /** * Emu plugin attaching to the 'aftersaveresourcedata' hook * IMPORTANT: 'aftersaveresourcedata' hook is called from both save_resource_data() and save_resource_data_multi()! * * @return boolean|array Returns FALSE to show hook didn't run -OR- a list of errors. See hook 'aftersaveresourcedata' * in resource_functions.php for more info. */ function HookEmuEditAftersaveresourcedata() { if(!isset($GLOBALS['emu_import']) || (isset($GLOBALS['emu_import']) && !$GLOBALS['emu_import'])) { return false; } global $ref, $emu_irn_field, $emu_rs_saved_mappings, $emu_data, $emu_update_list, $lang; $emu_irn = (int) getval("field_{$emu_irn_field}", 0, false, 'is_positive_int_loose'); $emu_irn_invalid = $emu_data === []; if ($emu_irn === 0 && $emu_irn_invalid) { return false; } elseif ($emu_irn > 0 && $emu_irn_invalid) { return [$lang['emu_nodata_returned']]; } // Update resources with EMu data $resources = (is_array($emu_update_list) ? $emu_update_list : [(int) $ref]); $emu_rs_mappings = plugin_decode_complex_configs($emu_rs_saved_mappings); foreach($resources as $resource_ref) { debug("emu: Updating resource ID #{$resource_ref} with data from EMu database"); foreach($emu_rs_mappings as $emu_module_columns) { foreach($emu_module_columns as $emu_module_column => $rs_field_id) { if(0 != intval($rs_field_id) && isset($emu_data[$emu_irn][$emu_module_column]) && $emu_irn_field != $rs_field_id) { update_field($resource_ref, $rs_field_id, $emu_data[$emu_irn][$emu_module_column]); } } } } return false; }