CDocumentsModel
        
        extends CBaseModel
    
    
            
            in package
            
        
    
    
    
        
            Manages the data structure and verifies the correctness of the data for Documents Module.
Tags
Table of Contents
- REGEX_BIT = '/^[0-1]+$/'
 - REGEX_DATE = '/^\\d{4}\\-\\d{2}\\-\\d{2}$/'
 - REGEX_DATETIME = '/\\d{4}\\-\\d{2}\\-\\d{2}\\s{1}\\d{2}:\\d{2}[:\\d{2}]?/'
 - REGEX_EMAIL = '/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/i'
 - REGEX_INDEXES = '/[\\d,]+/'
 - REGEX_INT = '/^[-]?[\\d]+$/'
 - REGEX_NUMBER = '/^\\-?\\d*\\.?\\d*$/'
 - REGEX_PHONE = '/^[+][0-9\\s\\.]/'
 - REGEX_TIME = '/^\\d{2}:\\d{2}[:\\d{2}]?$/'
 - REGEX_TIMESTAMP = '/^[\\d]{10}$/'
 - REGEX_UINT = '/^[\\d]+$/'
 - REGEX_URL = '/^(http|https?:\\/\\/(?:www\\.|(?!www))[^\\s\\.]+\\.[^\\s]{2,3}|www\\.[^\\s]+\\.[^\\s]{2,3})$/'
 - REGEX_YEAR = '/^\\d{4}$/'
 - $all_tables : array<string|int, mixed>
 - $auto_creation_date : bool
 - $auto_user : bool
 - $cache : CCache|null
 - $column_list : array<string|int, mixed>|null
 - $module : string
 - $multi_language : bool
 - $table : string
 - $user : CUser|null
 - __construct() : mixed
 - changeDataBeforeSend() : void
 - Possibly manipulate the data before it is sent for viewing
 - changeFilters() : void
 - Set all conditions before read from db or delete into db
 - changeForMultilanguageValues() : void
 - Change items values for multilanguage text before insert/update into db
 - changeItemValues() : void
 - Change items values befor insert/update into db
 - changeStructureTable() : void
 - Change any attributes of the field on OPTIONS request.
 - checkValid() : void
 - Check if the input values are valid
 - existsField() : bool
 - Check if the field_name exists in the current DB table
 - existsTable() : bool
 - Check if the $table exists in the current DB
 - getAdditionalConditions() : string
 - Return a string contains all additional conditions for a GET/PUT/PATCH requests
 - getAllAvailableTables() : array<string|int, mixed>
 - Import all table/modules avaiable
 - getAutoUser() : bool
 - get the auto user: if true when a table contains RELATED_USER_ID value set to id of the current user
 - getField() : array<string|int, mixed>
 - Returns an array containing the attributes of a given field
 - getFieldAttribute() : string
 - Check if the field_name exists in the current DB table
 - getFieldRule() : string
 - Get a rule of field_name
 - getFields() : array<string|int, mixed>
 - Provides the list of fields with all related attributes for the requested table
 - getListItems() : array<string|int, string>
 - Return a list of column of current table
 - getListItemsByAdmin() : array<string|int, string>
 - Return a list of column of current table for Admin users
 - separateMultiLanguageTexts() : void
 - Transforms a multilingual text into a separated texts for every language
 - setAllAvailableTables() : void
 - Import all table/modules avaiable
 - setAutoCreationDate() : void
 - Set the auto creation date: if true when a table contains creation_date (or equivalent) set to the current date/datetime for the name of item creation_date see CREATION_DATE definition on main config.php file
 - setAutoUser() : mixed
 - Set the auto user: if true when a table contains RELATED_USER_ID value set to id of the current user
 - setData() : void
 - Set all input's parameters before insert/update into db
 - setExcludedControllers() : void
 - Delete all controllers derived from DB tables
 - setMultiLanguage() : void
 - Enables multilingual mode.
 - setRequired() : void
 - Method setRequired
 - setRequiredFloat() : void
 - Method setRequiredFloat
 - setRequiredInt() : void
 - Method setRequiredInt
 - setRequiredPattern() : void
 - Method setRequiredPattern
 - setRule() : void
 - Method setRule
 - getAutoCreationDate() : bool
 - get the auto creation date: if true when a table contains id_creation_date (or equivalent) set to the current date/datetime for the name of item creation_date see CREATION_DATE definition on main config.php file
 
Constants
REGEX_BIT
    public
        mixed
    REGEX_BIT
    = '/^[0-1]+$/'
        
        
    
    Tags
REGEX_DATE
    public
        mixed
    REGEX_DATE
    = '/^\\d{4}\\-\\d{2}\\-\\d{2}$/'
        
        
    
    Tags
REGEX_DATETIME
    public
        mixed
    REGEX_DATETIME
    = '/\\d{4}\\-\\d{2}\\-\\d{2}\\s{1}\\d{2}:\\d{2}[:\\d{2}]?/'
        
        
    
    Tags
REGEX_EMAIL
    public
        mixed
    REGEX_EMAIL
    = '/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/i'
        
        
    
    Tags
REGEX_INDEXES
    public
        mixed
    REGEX_INDEXES
    = '/[\\d,]+/'
        
        
    
    Tags
REGEX_INT
    public
        mixed
    REGEX_INT
    = '/^[-]?[\\d]+$/'
        
        
    
    Tags
REGEX_NUMBER
    public
        mixed
    REGEX_NUMBER
    = '/^\\-?\\d*\\.?\\d*$/'
        
        
    
    Tags
REGEX_PHONE
    public
        mixed
    REGEX_PHONE
    = '/^[+][0-9\\s\\.]/'
        
        
    
    Tags
REGEX_TIME
    public
        mixed
    REGEX_TIME
    = '/^\\d{2}:\\d{2}[:\\d{2}]?$/'
        
        
    
    Tags
REGEX_TIMESTAMP
    public
        mixed
    REGEX_TIMESTAMP
    = '/^[\\d]{10}$/'
        
        
    
    Tags
REGEX_UINT
    public
        mixed
    REGEX_UINT
    = '/^[\\d]+$/'
        
        
    
    Tags
REGEX_URL
    public
        mixed
    REGEX_URL
    = '/^(http|https?:\\/\\/(?:www\\.|(?!www))[^\\s\\.]+\\.[^\\s]{2,3}|www\\.[^\\s]+\\.[^\\s]{2,3})$/'
        
        
    
    Tags
REGEX_YEAR
    public
        mixed
    REGEX_YEAR
    = '/^\\d{4}$/'
        
        
    
    Tags
Properties
$all_tables
    protected
        array<string|int, mixed>
    $all_tables
     = []
        
        
    
    Tags
$auto_creation_date
    protected
        bool
    $auto_creation_date
     = true
        
        
    
    Tags
$auto_user
    protected
        bool
    $auto_user
     = true
        
        
    
    Tags
$cache
    protected
        CCache|null
    $cache
     = null
        
        
    
    Tags
$column_list
    protected
        array<string|int, mixed>|null
    $column_list
     = []
        
        
    
    Tags
$module
    protected
        string
    $module
     = ''
        
        
    
    Tags
$multi_language
    protected
        bool
    $multi_language
     = false
        
        
    
    Tags
$table
    protected
        string
    $table
     = ''
        
        
    
    Tags
$user
    protected
        CUser|null
    $user
     = null
        
        
    
    Tags
Methods
__construct()
    public
                    __construct( $table, array<string|int, array<string|int, array<string|int, string>>> $all_tables[, CUser|null $user = null ][, CCache|null $cache = null ]) : mixed
    
        Parameters
- $table :
 - 
                    
$table current table name
 - $all_tables : array<string|int, array<string|int, array<string|int, string>>>
 - 
                    
[table][colums][attributes] list of all tables of current DB with column_list list
 - $user : CUser|null = null
 - 
                    
object that manages user data
 - $cache : CCache|null = null
 - 
                    
object that manages cached data
 
Tags
Return values
mixed —changeDataBeforeSend()
Possibly manipulate the data before it is sent for viewing
    public
                    changeDataBeforeSend(array<string|int, mixed> &$data[, string $html_frame = '' ]) : void
    
        Parameters
- $data : array<string|int, mixed>
 - 
                    
array with data
 - $html_frame : string = ''
 - 
                    
name of html frame if exists
 
Tags
Return values
void —changeFilters()
Set all conditions before read from db or delete into db
    public
                    changeFilters(array<string|int, array<string|int, mixed>>|null &$filters) : void
    
        Parameters
- $filters : array<string|int, array<string|int, mixed>>|null
 - 
                    
all input's parameters
 
Tags
Return values
void —changeForMultilanguageValues()
Change items values for multilanguage text before insert/update into db
    public
                    changeForMultilanguageValues(array<string|int, string> &$values) : void
    
        Parameters
- $values : array<string|int, string>
 - 
                    
all $values of table to change
 
Tags
Return values
void —changeItemValues()
Change items values befor insert/update into db
    public
                    changeItemValues(array<string|int, string> &$values, string $operation) : void
    
        Parameters
- $values : array<string|int, string>
 - 
                    
all $values of table
 - $operation : string
 - 
                    
type of operation ('insert' or 'modify')
 
Tags
Return values
void —changeStructureTable()
Change any attributes of the field on OPTIONS request.
    public
                    changeStructureTable(array<string|int, array<string|int, string>> &$columns) : void
        This method can change the default attributes of the table fields, for example a "select" type field can become a "hidden" type field
Parameters
- $columns : array<string|int, array<string|int, string>>
 - 
                    
array list of field properties
 
Tags
Return values
void —checkValid()
Check if the input values are valid
    public
        final            checkValid([bool $all_required = true ]) : void
    
        Parameters
- $all_required : bool = true
 - 
                    
if true check all fields of DB table according to its type
 
Tags
Return values
void —existsField()
Check if the field_name exists in the current DB table
    public
                    existsField(string $field_name) : bool
    
        Parameters
- $field_name : string
 - 
                    
database field name
 
Tags
Return values
bool —true if exists the field in the current DB
existsTable()
Check if the $table exists in the current DB
    public
                    existsTable(string $table) : bool
    
        Parameters
- $table : string
 - 
                    
name of table to check
 
Tags
Return values
bool —true if exists the table name in the current DB
getAdditionalConditions()
Return a string contains all additional conditions for a GET/PUT/PATCH requests
    public
                    getAdditionalConditions() : string
    
    
    
    Tags
Return values
string —list of column names of current table
getAllAvailableTables()
Import all table/modules avaiable
    public
                    getAllAvailableTables() : array<string|int, mixed>
    
    
    
    Tags
Return values
array<string|int, mixed> —list of all table/modules avaiable
getAutoUser()
get the auto user: if true when a table contains RELATED_USER_ID value set to id of the current user
    public
                    getAutoUser() : bool
    
    
    
    Tags
Return values
bool —the value of current auto user
getField()
Returns an array containing the attributes of a given field
    public
                    getField(string $field_name) : array<string|int, mixed>
    
        Parameters
- $field_name : string
 - 
                    
field name
 
Tags
Return values
array<string|int, mixed> —an array
getFieldAttribute()
Check if the field_name exists in the current DB table
    public
                    getFieldAttribute(string $field_name, string $attr) : string
    
        Parameters
- $field_name : string
 - 
                    
field name
 - $attr : string
 - 
                    
attribute'name of field
 
Tags
Return values
string —the value of attribute
getFieldRule()
Get a rule of field_name
    public
                    getFieldRule(string $field_name) : string
    
        Parameters
- $field_name : string
 - 
                    
database field name
 
Tags
Return values
string —return a string contains rule and other filter conditions
getFields()
Provides the list of fields with all related attributes for the requested table
    public
        final            getFields() : array<string|int, mixed>
    
    
    
    Tags
Return values
array<string|int, mixed> —the list of fields with related attributes
getListItems()
Return a list of column of current table
    public
                    getListItems() : array<string|int, string>
    
    
    
    Tags
Return values
array<string|int, string> —list of column names of current table
getListItemsByAdmin()
Return a list of column of current table for Admin users
    public
                    getListItemsByAdmin() : array<string|int, string>
    
    
    
    Tags
Return values
array<string|int, string> —list of column names of current table
separateMultiLanguageTexts()
Transforms a multilingual text into a separated texts for every language
    public
                    separateMultiLanguageTexts(array<string|int, mixed> &$data) : void
    
        Parameters
- $data : array<string|int, mixed>
 - 
                    
array with data
 
Tags
Return values
void —setAllAvailableTables()
Import all table/modules avaiable
    public
                    setAllAvailableTables(array<string|int, mixed> $tables) : void
    
        Parameters
- $tables : array<string|int, mixed>
 - 
                    
list of all table/modules avaiable
 
Tags
Return values
void —setAutoCreationDate()
Set the auto creation date: if true when a table contains creation_date (or equivalent) set to the current date/datetime for the name of item creation_date see CREATION_DATE definition on main config.php file
    public
                    setAutoCreationDate([bool $value = true ]) : void
    
        Parameters
- $value : bool = true
 - 
                    
the value to be set;
 
Tags
Return values
void —setAutoUser()
Set the auto user: if true when a table contains RELATED_USER_ID value set to id of the current user
    public
                    setAutoUser([bool $value = true ]) : mixed
    
        Parameters
- $value : bool = true
 - 
                    
the value to be set;
 
Tags
Return values
mixed —setData()
Set all input's parameters before insert/update into db
    public
                    setData(array<string|int, mixed> &$data) : void
    
        Parameters
- $data : array<string|int, mixed>
 - 
                    
all input's parameters
 
Tags
Return values
void —setExcludedControllers()
Delete all controllers derived from DB tables
    public
                    setExcludedControllers([array<string|int, mixed> $excluded_controllers = [] ]) : void
    
        Parameters
- $excluded_controllers : array<string|int, mixed> = []
 - 
                    
list of controllers derived from the DB to be excluded
 
Tags
Return values
void —setMultiLanguage()
Enables multilingual mode.
    public
                    setMultiLanguage([bool $active = false ]) : void
        Leave it disabled (default) if the service is not multilingual, as it places an additional workload that would be unnecessary.
N.B.: This method was called in CBaseController than it is not necessary to call it explicitly but its declaration in the derived class is sufficient with "$active = true" as a parameter
Parameters
- $active : bool = false
 - 
                    
true if is active for this module
 
Tags
Return values
void —setRequired()
Method setRequired
    public
        final            setRequired(string $field_name, bool $required[, int $min_length = null ][, int $max_length = null ]) : void
    
        Parameters
- $field_name : string
 - 
                    
database field name
 - $required : bool
 - 
                    
true is required
 - $min_length : int = null
 - 
                    
minimum length of value
 - $max_length : int = null
 - 
                    
maximum length of value
 
Tags
Return values
void —setRequiredFloat()
Method setRequiredFloat
    public
        final            setRequiredFloat(string $field_name[, float $min = null ][, float $max = null ]) : void
    
        Parameters
- $field_name : string
 - 
                    
$field_name database field name
 - $min : float = null
 - 
                    
minimum value accepted
 - $max : float = null
 - 
                    
maximum value accepted
 
Tags
Return values
void —setRequiredInt()
Method setRequiredInt
    public
        final            setRequiredInt(string $field_name[, int $min = null ][, int $max = null ]) : void
    
        Parameters
- $field_name : string
 - 
                    
$field_name database field name
 - $min : int = null
 - 
                    
minimum value accepted
 - $max : int = null
 - 
                    
maximum value accepted
 
Tags
Return values
void —setRequiredPattern()
Method setRequiredPattern
    public
        final            setRequiredPattern(string $field_name, string $pattern[, string $options = null ]) : void
    
        Parameters
- $field_name : string
 - 
                    
database field name
 - $pattern : string
 - 
                    
regular expression pattern
 - $options : string = null
 - 
                    
fixed and acceptable values separated by "|" (for example 'daily|weekly|monthly')
 
Tags
Return values
void —setRule()
Method setRule
    public
        final            setRule(string $field_name, string $pattern) : void
    
        Parameters
- $field_name : string
 - 
                    
$field_name database field name
 - $pattern : string
 - 
                    
regular expression pattern
 
Tags
Return values
void —getAutoCreationDate()
get the auto creation date: if true when a table contains id_creation_date (or equivalent) set to the current date/datetime for the name of item creation_date see CREATION_DATE definition on main config.php file
    protected
                    getAutoCreationDate() : bool
    
    
    
    Tags
Return values
bool —the value of current auto user