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

set_config_option()

Description

Save/ Update config option

Parameters

ColumnTypeDefaultDescription
$user_id integer Current user ID. Use NULL for system wide config options
$param_name string Parameter name
$param_value string Parameter value

Return

boolean

Location

include/config_functions.php lines 113 to 162

Definition

 
function set_config_option($user_id$param_name$param_value)
    {
    
// We do allow for param values to be empty strings or 0 (zero)
    
if(empty($param_name) || is_null($param_value))
        {
        return 
false;
        }

    
// Prepare the value before inserting it
    
$param_value config_clean($param_value);

    
$query "INSERT INTO user_preferences (user,parameter,`value`) VALUES (?,?,?)";
   
    
$current_param_value null;
    if(
get_config_option($user_id$param_name$current_param_value))
        {
        if(
$current_param_value == $param_value)
            {
            return 
true;
            }
        
$params[] = 's'$params[] = $param_value;
        if(
is_null($user_id))
            {
            
$user_query 'user IS NULL';
            }
        else    
            {
            
$user_query 'user = ?';
            
$params[] = 'i'$params[] = $user_id;
            }

        
$query "UPDATE user_preferences SET `value` = ? WHERE "$user_query ." AND parameter = ?";
        
$params[] = "s"$params[] = $param_name;

        if (
is_null($user_id))      // only log activity for system changes, i.e. when user not specified
            
{
            
log_activity(nullLOG_CODE_EDITED$param_value'user_preferences''value'"parameter='" $param_name "'"null$current_param_value);
            }
        }
    else
        {
        
$params  = ["i",$user_id,"s",$param_name,"s",$param_value,];
        }
    
ps_query($query,$params);

    
// Clear disk cache
    
clear_query_cache("preferences");

    return 
true;
    }

This article was last updated 19th March 2024 09:35 Europe/London time based on the source file dated 15th March 2024 17:00 Europe/London time.