Collections functions
Encryption functions
General functions
Theme permission functions
Resource functions

create_resource()

Parameters

ColumnTypeDefaultDescription
$resource_type
$archive 999
$user -1

Location

include/resource_functions.php lines 442 to 512

Definition

 
function create_resource($resource_type,$archive=999,$user=-1)
    {
    
# Create a new resource.
    
global $always_record_resource_creator,$index_contributed_by;

    
$alltypes=get_resource_types();    
    if(!
in_array($resource_type,array_column($alltypes,"ref")))
        {
        return 
false;    
        }
    
    if (
$archive==999)
        {
        
# Work out an appropriate default state
        
for ($n=-2;$n<3;$n++)
            {
            if (
checkperm("e" $n))
                {
                
$archive $n;
                break;
                }
            }
        }

    if(
$user == -1
        
&& (
            
$archive == -2
            
|| $archive == -1
            
|| (isset($always_record_resource_creator) && $always_record_resource_creator)
        )
    )
        {
        
# Work out user ref - note: only for content in status -2 and -1 (user submitted / pending review).
        
global $userref;
        
$user $userref;
        }
        
    
sql_query("insert into resource(resource_type,creation_date,archive,created_by) values ('$resource_type',now(),'" escape_check($archive) . "','$user')");
    
    
$insert=sql_insert_id();
    
    
# set defaults for resource here (in case there are edit filters that depend on them)
    
set_resource_defaults($insert);    
    
    
# Autocomplete any blank fields.
    
autocomplete_blank_fields($inserttrue);

    
# Always index the resource ID as a keyword
    
remove_keyword_mappings($insert$insert, -1);
    
add_keyword_mappings($insert$insert, -1);

    
# Log this            
    
daily_stat("Create resource",$insert);
    
resource_log($insertLOG_CODE_CREATED0);
    
    
# Also index contributed by field, unless disabled
    
if ($index_contributed_by)
        {
        
$resource=get_resource_data($insert);
        
$userinfo=get_user($resource["created_by"]);
        
add_keyword_mappings($insert,$userinfo["username"] . " " $userinfo["fullname"],-1);
        }

    
# Copying a resource of the 'pending review' state? Notify, if configured.
    
if ($archive==-1)
        {
        
notify_user_contributed_submitted(array($insert));
        }

    return 
$insert;
    }

This article was last updated 14th July 2020 04:35 Europe/London time based on the source file dated 13th July 2020 14:40 Europe/London time.