$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;
}