Collections functions
General functions
Render functions
Theme permission functions
Resource functions

copyAllDataToResource()

Description

Provides the ability to copy any metadata field data from one resource to another.

Parameters

ColumnTypeDefaultDescription
$from integer Resource we are copying data from
$to integer The Resource ID that needs updating
$resourcedata false

Return

boolean

Location

include/resource_functions.php lines 6282 to 6323

Definition

 
function copyAllDataToResource($from$to$resourcedata false)
    {
    global 
$userref;

    if((int)(string)
$from !== (int)$from || (int)(string)$to !== (int)$to)
        {
        return 
false;
        }

    if(!
$resourcedata)
        {
        
$resourcedata get_resource_data($to);
        }

    
# Permission check isn't required if copying data from the user's upload template as with edit then upload mode.
    
if ($from != $userref)
        {
        if(!
get_edit_access($to,$resourcedata["archive"],false,$resourcedata))
            {
            return 
false;
            }
        }

    
copy_resource_nodes($from$to);

    
# Update 'joined' fields in resource table
    
$joins=get_resource_table_joins();
    
$joinsql "UPDATE resource AS target LEFT JOIN resource AS source ON source.ref=? SET ";
    
$joinfields "";
    foreach(
$joins as $joinfield)
        {
        if(
$joinfields != "")
            {
            
$joinfields .= ",";
            }
        
$joinfield=(int)$joinfield// Ensure integer for inclusion in SQL.
        
$joinfields .= "target.field{$joinfield} = source.field{$joinfield}";
        }
    
$joinsql $joinsql $joinfields " WHERE target.ref=?";
    
ps_query($joinsql,array("i",$from,"i",$to));
    return 
true;
    }

This article was last updated 5th October 2022 02:05 Europe/London time based on the source file dated 30th September 2022 14:20 Europe/London time.