Collections functions
General functions
Render functions
Theme permission functions
Resource functions

send_research_request()

Parameters

ColumnTypeDefaultDescription
$rr_cfields array

Location

include/research_functions.php lines 5 to 106

Definition

 
function send_research_request(array $rr_cfields)
    {
    
# Insert a search request into the requests table.
    
    # Resolve resource types
    
$rt="";
    
$types=get_resource_types();
    for (
$n=0;$n<count($types);$n++) {
        if (
getval("resource" $types[$n]["ref"],"")!="") {
            if (
$rt!="") {
                
$rt.=", ";
            } 
            
$rt.=$types[$n]["ref"];
        }
    }
    
    global 
$userref$custom_researchrequest_fields;
    
$as_user=getval("as_user",$userref,true); # If userref submitted, use that, else use this user
    
$rr_name=getval("name","");
    
$rr_description=getval("description","");
    
$parameters=array("i",$as_user"s",$rr_name"s",$rr_description);

    
$rr_deadline getval("deadline","");
    if(
$rr_deadline=="")
        {
         
$rr_deadline=NULL;
        }
    
$rr_contact mb_strcut(getval("contact",""),0,100);
    
$rr_email mb_strcut(getval("email",""),0,200);
    
$rr_finaluse getval("finaluse","");
    
$parameters=array_merge($parameters,array("s",$rr_deadline"s",$rr_contact"s",$rr_email"s",$rr_finaluse));

    
# $rt
    
$rr_noresources getval("noresources","");
    if(
$rr_noresources=="")
        {
        
$rr_noresources=NULL;
        }
    
$rr_shape mb_strcut(getval("shape",""),0,50);
    
$parameters=array_merge($parameters,array("s",$rt"i",$rr_noresources"s",$rr_shape));

    
/**
    * @var string JSON representation of custom research request fields after removing the generated HTML properties we 
    *             needed during form processing
    * @see gen_custom_fields_html_props()
    */
    
$rr_cfields_json json_encode(array_map(function($v) { unset($v["html_properties"]); return $v; }, $rr_cfields), JSON_UNESCAPED_UNICODE);
    if(
json_last_error() !== JSON_ERROR_NONE)
        {
        
trigger_error(json_last_error_msg());
        }
    
$rr_cfields_json_sql = ($rr_cfields_json == "" "" $rr_cfields_json);
    
$parameters=array_merge($parameters,array("s",$rr_cfields_json_sql));

    
ps_query("insert into research_request(created,user,name,description,deadline,contact,email,finaluse,resource_types,noresources,shape, custom_fields_json)
                values (now(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
$parameters);
    
    
# E-mails a resource request (posted) to the team
    
global $applicationname,$email_from,$baseurl,$email_notify,$username,$userfullname,$useremail,$lang$admin_resource_access_notifications;
    
    
$templatevars['ref']=sql_insert_id();
    
$templatevars['teamresearchurl']=$baseurl."/pages/team/team_research_edit.php?ref=" $templatevars['ref'];
    
$templatevars['username']=$username;
    
$templatevars['userfullname']=$userfullname;
    
$templatevars['useremail']=getvalescaped("email",$useremail); # Use provided e-mail (for anonymous access) or drop back to user email.
    
$templatevars['url']=$baseurl."/pages/team/team_research_edit.php?ref=".$templatevars['ref'];
    
    
$message="'$username' ($userfullname - $useremail) " $lang["haspostedresearchrequest"] . ".\n\n";
    
$notification_message $message;
    
$message.=$templatevars['teamresearchurl'];
    
hook("modifyresearchrequestemail");
    
    
$research_notify_emails=array();
    
$research_notify_users = array();
    
$notify_users=get_notification_users("RESEARCH_ADMIN");
    foreach(
$notify_users as $notify_user)
        {
        
get_config_option($notify_user['ref'],'user_pref_resource_access_notifications'$send_message$admin_resource_access_notifications);          
        if(
$send_message==false){continue;}        
        
        
get_config_option($notify_user['ref'],'email_user_notifications'$send_email);    
        if(
$send_email && $notify_user["email"]!="")
            {
            
$research_notify_emails[] = $notify_user['email'];                
            }        
        else
            {
            
$research_notify_users[]=$notify_user["ref"];
            }
        }
    
    foreach(
$research_notify_emails as $research_notify_email)
        {
        
send_mail($research_notify_email,$applicationname ": " $lang["newresearchrequestwaiting"],$message,$useremail,"","emailnewresearchrequestwaiting",$templatevars);
        }
    
    if (
count($research_notify_users)>0)
        {
        global 
$userref;
        
message_add($research_notify_users,$notification_message,$templatevars["teamresearchurl"]);
        }
    }

This article was last updated 24th May 2022 20:05 Europe/London time based on the source file dated 19th April 2022 12:25 Europe/London time.