Collections functions
General functions
Node functions
Render functions
Theme permission functions
User functions
Resource functions

send_research_request()

Parameters

ColumnTypeDefaultDescription
$rr_cfields array

Location

include/research_functions.php lines 5 to 87

Definition

 
function send_research_request(array $rr_cfields)
    {
    
# Insert a search request into the requests table.
    
global $baseurl,$username,$userfullname,$useremail$userref;

    
# 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"];
            }
        }
    
$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);

    
# Send request 
    
$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']=getval("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'];

    
$research_notify_users=get_notification_users("RESEARCH_ADMIN");
    
$userconfirmmessage = new ResourceSpaceUserNotification();
    
$userconfirmmessage->set_subject("lang_newresearchrequestwaiting");
    
$userconfirmmessage->set_text("'$username' ($userfullname - $useremail) ");
    
$userconfirmmessage->append_text("lang_haspostedresearchrequest");
    
$userconfirmmessage->append_text(".\n\n");  
    
$userconfirmmessage->user_preference "user_pref_resource_access_notifications";
    
$userconfirmmessage->template "emailnewresearchrequestwaiting";
    
$userconfirmmessage->templatevars $templatevars;
    
$userconfirmmessage->url $templatevars["teamresearchurl"];

    
// Hook needs to update the ResourceSpaceUserNotification object
    
hook("modifyresearchrequestemail""", array($userconfirmmessage));
    
send_user_notification($research_notify_users,$userconfirmmessage);
    }

This article was last updated 24th April 2024 16:35 Europe/London time based on the source file dated 26th February 2024 11:00 Europe/London time.