PHP 클래스 Kimai_Database_Mysql

저자: th
저자: sl
저자: Kevin Papst
파일 보기 프로젝트 열기: kimai/kimai 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
$conn MySQL
$kga Kimai_Config Kimai Global Array

공개 메소드들

메소드 설명
__construct ( Kimai_Config &$kga, boolean $autoConnect = true ) Instantiate a new database layer.
activity_create ( array $data, array $activityGroups ) : integer Adds a new activity
activity_delete ( array $activityID ) : boolean deletes an activity
activity_edit ( array $activityID, array $data, array $activityGroups ) : boolean Edits an activity by replacing its data by the new array
activity_get_data ( array $activityID ) : array Returns the data of a certain activity
activity_get_groupIDs ( integer $activityID ) : array returns all the group ids of the given activity
activity_get_groups ( array $activityID ) : array returns all the groups of the given activity
activity_get_projectIds ( integer $activityID ) : array returns all the project ids to which the activity was assigned
activity_get_projects ( integer $activityId ) : array returns all the projects to which the activity was assigned
allFittingFixedRates ( $projectID, $activityID ) : array | boolean Query the database for all fitting fixed rates for the given user, project and activity.
allFittingRates ( $userID, $projectID, $activityID ) : array | boolean Query the database for all fitting rates for the given user, project and activity.
assignActivityToProjectsForGroup ( integer $activityID, array $projectIDs, integer $group ) : boolean associates an Activity with a collection of Projects in the context of a user group.
assignProjectToActivitiesForGroup ( integer $projectID, array $activityIDs, integer $group ) : boolean associates a Project with a collection of Activities in the context of a user group.
assign_activityToGroups ( integer $activityID, array $groupIDs ) : boolean Assigns an activity to 1-n groups by adding entries to the cross table
assign_activityToProjects ( integer $activityID, array $projectIDs ) : boolean Assigns an activity to 1-n projects by adding entries to the cross table
assign_customerToGroups ( integer $customerID, array $groupIDs ) : boolean Assigns a customer to 1-n groups by adding entries to the cross table
assign_groupToActivities ( array $groupID, array $activityIDs ) : boolean Assigns a group to 1-n activities by adding entries to the cross table (counterpart to assign_activityToGroups)
assign_groupToCustomers ( array $groupID, array $customerIDs ) : boolean Assigns a group to 1-n customers by adding entries to the cross table (counterpart to assign_customerToGroups)
assign_groupToProjects ( array $groupID, array $projectIDs ) : boolean Assigns a group to 1-n projects by adding entries to the cross table (counterpart to assign_projectToGroups)
assign_projectToActivities ( integer $projectID, array $activityIDs ) : boolean Assigns 1-n activities to a project by adding entries to the cross table
assign_projectToGroups ( integer $projectID, array $groupIDs ) : boolean Assigns a project to 1-n groups by adding entries to the cross table
checkMembershipPermission ( integer $userId, array $objectGroups, string $permission, string $requiredFor = 'all' ) : boolean Check if a user is allowed to access an object for a given action.
checkUserInternal ( $kimai_user ) A drop-in function to replace checkuser() and be compatible with none-cookie environments.
clean_data ( array $data ) : array Prepare all values of the array so it's save to put them into an sql query.
configuration_edit ( array $data ) : boolean Edits a configuration variables by replacing the data by the new array
connect ( string $host, string $database, string $username, string $password, boolean $utf8 = true ) Connect to the database.
customer_create ( array $data ) : integer Add a new customer to the database.
customer_delete ( integer $customerID ) : boolean deletes a customer
customer_edit ( integer $customerID, array $data ) : boolean Edits a customer by replacing his data by the new array
customer_get_data ( integer $customerID ) : array Returns the data of a customer
customer_get_groupIDs ( integer $customerID ) : array returns all IDs of the groups of the given customer
customer_loginSetKey ( $customerId, $keymai ) Save a new secure key for a customer to the database. This key is stored in the clients cookie and used to reauthenticate the customer.
customer_nameToID ( integer $name ) : integer return ID of specific user named 'XXX'
getActivityTable ( ) : string
getConnectionHandler ( ) Return the connection handler used to connect to the database.
getCustomerTable ( ) : string
getExpenseTable ( ) : string
getGroupMemberships ( integer $userId ) : array Get the groups in which the user is a member in.
getGroupsUsersTable ( ) : string
getLastError ( ) : string
getNonManagableAssignedElementIds ( string $parentSubject, string $subject, integer $parentId, integer $group ) : array computes an array of (project- or activity-) ids for Project-Activity-Assignments that are unmanage-able for the given group.
getPreferencesTable ( ) : string
getProjectTable ( ) : string
getRatesTable ( ) : string
getStatuses ( ) : array Return all available status entries.
getTablePrefix ( ) : string
getTimeSheetTable ( ) : string
getUserByApiKey ( string $apikey ) : string | null Returns a username for the given $apikey.
getUserTable ( ) : string
get_DBversion ( ) : array returns the version of the installed Kimai database to compare it with the package version
get_activities ( array $groups = null ) : array | boolean Get all available activities.
get_activities_by_customer ( integer $customer_ID ) : array returns list of activities used with specified customer
get_activities_by_project ( integer $projectID, array $groups = null ) : array Get an array of activities, which should be displayed for a specific project.
get_activity_budget ( $projectID, $activityID ) : array | boolean Read activity budgets
get_best_fitting_fixed_rate ( $projectID, $activityID ) : boolean Query the database for the best fitting fixed rate for the given user, project and activity.
get_best_fitting_rate ( $userID, $projectID, $activityID ) : boolean Query the database for the best fitting rate for the given user, project and activity.
get_budget_used ( integer $projectID, integer $activityID ) : integer get the whole budget used for the activity
get_current_recordings ( integer $userID ) : array Returns a list of IDs of all current recordings.
get_current_timer ( ) : array returns time of currently running activity recording as array
get_customer_config ( integer $userID ) : array returns configuration for specified customer
get_customer_watchable_users ( integer $customer ) : array
get_customers ( array $groups = null ) : array returns list of customers in a group as array
get_duration ( integer $start, integer $end, null $users = null, null $customers = null, null $projects = null, null $activities = null, null $filterCleared = null ) : integer returns time summary of current timesheet
get_fixed_rate ( $projectID, $activityID ) : boolean Read fixed rate from database.
get_groups ( integer $trash ) : array returns array of all groups [0]=> array(6) { ["groupID"] => string(1) "1" ["groupName"] => string(5) "admin" ["userID"] => string(9) "1234" ["trash"] => string(1) "0" ["count_users"] => string(1) "2" } [1]=> array(6) { ["groupID"] => string(1) "2" ["groupName"] => string(4) "Test" ["userID"] => string(9) "12345" ["trash"] => string(1) "0" ["count_users"] => string(1) "1" }
get_latest_running_entry ( ) : array Return the latest running entry with all information required for the buzzer.
get_projects ( array $groups = null ) : array returns list of projects for specific group as array
get_projects_by_customer ( integer $customerID, array $groups = null ) : array returns list of projects for specific group and specific customer as array
get_rate ( $userID, $projectID, $activityID ) : boolean Read rate from database.
get_seq ( integer $user ) : string returns the key for the session of a specific user
get_status ( array $statusIds ) : array return status names
get_statuses ( ) : array returns array of all status with the status id as key
get_timeSheet ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null, boolean $limit = false, boolean $reverse_order = false, integer $filterCleared = null, integer $startRows, integer $limitRows, boolean $countOnly = false ) : array returns timesheet for specific user as multidimensional array
get_time_activities ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array returns list of time summary attached to activity ID's within specific timeframe as array
get_time_customers ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array returns list of time summary attached to customer ID's within specific timeframe as array
get_time_projects ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array returns list of time summary attached to project ID's within specific timeframe as array
get_time_users ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, null $activities = null ) : array returns assoc. array where the index is the ID of a user and the value the time this user has accumulated in the given time with respect to the filtersettings
get_user_config ( integer $userID ) : array returns configuration data for specified user
get_user_watchable_users ( integer $user ) : array returns list of users the given user can watch
get_users ( integer $trash, array $groups = null ) : array returns array of all users [userID] => 23103741 [name] => admin [mail] => 0 [active] => 0
getjointime ( integer $userID ) : integer returns the date of the first timerecord of a user (when did the user join?) this is needed for the datepicker
globalRole_find ( $filter ) : array | boolean
globalRole_get_data ( $globalRoleID ) : array | boolean
global_role_allows ( integer $roleID, string $permission ) : boolean Check if a global role gives permission for a specific action.
global_role_create ( $data ) : boolean | integer
global_role_delete ( $globalRoleID ) : boolean
global_role_edit ( $globalRoleID, $data ) : boolean
global_roles ( ) : array | boolean
group_count_users ( array $groupID ) : integer Returns the number of users in a certain group
group_create ( array $data ) : integer Adds a new group
group_delete ( array $groupID ) : boolean deletes a group
group_edit ( array $groupID, array $data ) : boolean Edits a group by replacing its data by the new array
group_get_data ( array $groupID ) : array Returns the data of a certain group
initializeConfig ( Kimai_Config $config ) Prefills the Config (and inherited settings) object with configuration data.
isConnected ( ) : boolean
isValidActivityId ( integer $activityId ) : boolean checks if given $activityId exists in the db
isValidProjectId ( integer $projectId ) : boolean checks if given $projectId exists in the db
is_customer_name ( string $name ) : boolean checks if a customer with this name exists
is_watchable_user ( integer $user, integer $userID ) : boolean Checks if a user (given by user ID) can be accessed by another user (given by user array):
loginUpdateBan ( $userId, boolean $resetTime = false ) Update the ban status of a user. This increments the ban counter.
membershipRole_find ( $filter ) : array | boolean
membershipRole_get_data ( $membershipRoleID ) : array | boolean
membership_role_allows ( integer $roleID, string $permission ) : boolean Check if a membership role gives permission for a specific action.
membership_role_create ( $data ) : boolean | integer
membership_role_delete ( $membershipRoleID ) : boolean
membership_role_edit ( $membershipRoleID, $data ) : object
membership_roles ( ) : array | boolean
project_activity_edit ( integer $projectID, integer $activityID, array $data ) : boolean update the data for activity per project, which is budget, approved and effort
project_create ( array $data ) : integer Adds a new project
project_delete ( array $projectID ) : boolean deletes a project
project_edit ( integer $projectID, array $data ) : boolean Edits a project by replacing its data by the new array
project_get_activities ( integer $projectID ) : array returns all the activities which were assigned to a project
project_get_activityIDs ( integer $projectID ) : array returns all the activity ids which were assigned to a project
project_get_data ( integer $projectID ) : array Returns the data of a certain project
project_get_groupIDs ( array $projectID ) : array returns all the groups of the given project
queryAll ( string $query ) : array Return all rows for the given sql query.
remove_fixed_rate ( $projectID, $activityID ) : boolean Remove fixed rate from database.
remove_rate ( $userID, $projectID, $activityID ) : boolean Remove rate from database.
save_fixed_rate ( $projectID, $activityID, $rate ) : boolean Save fixed rate to database.
save_rate ( $userID, $projectID, $activityID, $rate ) : boolean Save rate to database.
save_timeframe ( string $timeframeBegin, string $timeframeEnd, string $user ) : boolean saves timeframe of user in database (table conf)
setGroupMemberships ( integer $userId, array $groups = null ) : false | null Set the groups in which the user is a member in.
startRecorder ( integer $projectID, $activityID, $user ) : integer starts timesheet record
status_create ( array $status ) : boolean add a new status
status_delete ( array $statusID ) : boolean deletes a status
status_edit ( array $statusID, array $data ) : boolean Edits a status by replacing its data by the new array
status_get_data ( array $statusID ) : array Returns the data of a certain status
status_timeSheetEntryCount ( integer $statusID ) : integer Returns the number of time sheet entries with a certain status
stopRecorder ( integer $id ) : boolean Performed when the stop buzzer is hit.
timeEntry_create ( array $data ) : boolean | integer create time sheet entry
timeEntry_delete ( integer $id ) : object delete time sheet entry
timeEntry_edit ( integer $id, array $data ) : boolean edit time sheet entry
timeEntry_edit_activity ( integer $timeEntryID, integer $activityID ) : object Just edit the activity for an entry. This is used for changing the activity of a running entry.
timeEntry_edit_project ( integer $timeEntryID, integer $projectID ) : object Just edit the project for an entry. This is used for changing the project of a running entry.
timeSheet_get_data ( integer $timeEntryID ) : array Returns the data of a certain time record
timeSheet_whereClausesFromFilters ( array $users, array $customers, array $projects, array $activities = [] ) : array Creates an array of clauses which can be joined together in the WHERE part of a sql query. The clauses describe whether a line should be included depending on the filters set.
transaction_begin ( ) : boolean
transaction_end ( ) : boolean
transaction_rollback ( ) : boolean
userIDToName ( string $id ) : integer return name of a user with specific ID
user_create ( array $data ) : boolean | integer Adds a new user
user_delete ( integer $userID, boolean $moveToTrash = false ) : boolean deletes a user
user_edit ( integer $userID, array $data ) : boolean Edits a user by replacing his data and preferences by the new array
user_get_data ( string $userID ) : array Returns the data of a certain user
user_get_membership_role ( integer $userID, integer $groupID ) : integer | boolean Returns the membership roleID the user has in the given group.
user_get_preferences ( array $keys, integer $userId = null ) : array Get several preferences for a user. If no user ID is given the current user is used.
user_get_preferences_by_prefix ( string $prefix, integer $userId = null ) : array Get several preferences for a user which have a common prefix. The returned preferences are striped off the prefix.
user_loginSetKey ( $userId, $keymai ) Save a new secure key for a user to the database. This key is stored in the users cookie and used to reauthenticate the user.
user_name2id ( integer $name ) : string | boolean return ID of specific user by name
user_set_preferences ( array $data, string $prefix = '', integer $userId = null ) : boolean Save one or more preferences for a user. If no user ID is given the current user is used.

보호된 메소드들

메소드 설명
getConfigurationData ( ) : array Returns all configuration variables
rowExists ( string $table, array $filter ) : boolean checks if a given db row based on the $idColumn & $id exists
user_get_preference ( string $key, integer $userId = null ) : string Get a preference for a user. If no user ID is given the current user is used.

비공개 메소드들

메소드 설명
logLastError ( string $scope )
name2id ( string $table, string $endColumn, string $filterColumn, integer $value ) : string | boolean Query a table for an id by giving the name of an entry.

메소드 상세

__construct() 공개 메소드

The provided kimai global array will be stored as a reference.
public __construct ( Kimai_Config &$kga, boolean $autoConnect = true )
$kga Kimai_Config
$autoConnect boolean

activity_create() 공개 메소드

Adds a new activity
저자: th
public activity_create ( array $data, array $activityGroups ) : integer
$data array name, comment and other data of the new activity
$activityGroups array
리턴 integer the activityID of the new project, false on failure

activity_delete() 공개 메소드

deletes an activity
저자: th
public activity_delete ( array $activityID ) : boolean
$activityID array activityID of the activity
리턴 boolean true on success, false on failure

activity_edit() 공개 메소드

Edits an activity by replacing its data by the new array
저자: th
public activity_edit ( array $activityID, array $data, array $activityGroups ) : boolean
$activityID array activityID of the project to be edited
$data array name, comment and other new data of the activity
$activityGroups array
리턴 boolean true on success, false on failure

activity_get_data() 공개 메소드

Returns the data of a certain activity
저자: th
public activity_get_data ( array $activityID ) : array
$activityID array activityID of the project
리턴 array the activity's data (name, comment etc) as array, false on failure

activity_get_groupIDs() 공개 메소드

returns all the group ids of the given activity
저자: sl
public activity_get_groupIDs ( integer $activityID ) : array
$activityID integer ID of the activity
리턴 array contains the groupIDs of the groups or false on error

activity_get_groups() 공개 메소드

returns all the groups of the given activity
저자: th
public activity_get_groups ( array $activityID ) : array
$activityID array activityID of the project
리턴 array contains the groupIDs of the groups or false on error

activity_get_projectIds() 공개 메소드

returns all the project ids to which the activity was assigned
저자: th
public activity_get_projectIds ( integer $activityID ) : array
$activityID integer activityID of the project
리턴 array contains the IDs of the projects or false on error

activity_get_projects() 공개 메소드

returns all the projects to which the activity was assigned
저자: th
public activity_get_projects ( integer $activityId ) : array
$activityId integer activityId of the project
리턴 array contains the IDs of the projects or false on error

allFittingFixedRates() 공개 메소드

Query the database for all fitting fixed rates for the given user, project and activity.
저자: sl
public allFittingFixedRates ( $projectID, $activityID ) : array | boolean
$projectID
$activityID
리턴 array | boolean

allFittingRates() 공개 메소드

Query the database for all fitting rates for the given user, project and activity.
저자: sl
public allFittingRates ( $userID, $projectID, $activityID ) : array | boolean
$userID
$projectID
$activityID
리턴 array | boolean

assignActivityToProjectsForGroup() 공개 메소드

Projects that are currently associated with the Activity but not mentioned in the specified id collection, will get un-assigned. The fundamental difference to assign_activityToProjects(activityID, projectIDs) is that this method is aware of potentially existing assignments that are invisible and thus unmanagable to the user as the user lacks access to the Projects. It is implicitly assumed that the user has access to the Activity and the Projects designated by the method parameters.
public assignActivityToProjectsForGroup ( integer $activityID, array $projectIDs, integer $group ) : boolean
$activityID integer the id of the Activity to associate
$projectIDs array the array of Project ids to associate
$group integer the user's group id
리턴 boolean

assignProjectToActivitiesForGroup() 공개 메소드

Activities that are currently associated with the Project but not mentioned in the specified id collection, will get un-assigned. The fundamental difference to assign_projectToActivities($projectID, $activityIDs) is that this method is aware of potentially existing assignments that are invisible and thus unmanagable to the user as the user lacks access to the Activities. It is implicitly assumed that the user has access to the Project and the Activities designated by the method parameters.
public assignProjectToActivitiesForGroup ( integer $projectID, array $activityIDs, integer $group ) : boolean
$projectID integer the id of the Project to associate
$activityIDs array the array of Activity ids to associate
$group integer the user's group id
리턴 boolean

assign_activityToGroups() 공개 메소드

Assigns an activity to 1-n groups by adding entries to the cross table
저자: ob/th
public assign_activityToGroups ( integer $activityID, array $groupIDs ) : boolean
$activityID integer activityID of the project to which the groups will be assigned
$groupIDs array contains one or more groupIDs
리턴 boolean true on success, false on failure

assign_activityToProjects() 공개 메소드

Assigns an activity to 1-n projects by adding entries to the cross table
저자: ob/th
public assign_activityToProjects ( integer $activityID, array $projectIDs ) : boolean
$activityID integer id of the activity to which projects will be assigned
$projectIDs array contains one or more projectIDs
리턴 boolean true on success, false on failure

assign_customerToGroups() 공개 메소드

Assigns a customer to 1-n groups by adding entries to the cross table
저자: ob/th
public assign_customerToGroups ( integer $customerID, array $groupIDs ) : boolean
$customerID integer id of the customer to which the groups will be assigned
$groupIDs array contains one or more groupIDs
리턴 boolean true on success, false on failure

assign_groupToActivities() 공개 메소드

Assigns a group to 1-n activities by adding entries to the cross table (counterpart to assign_activityToGroups)
저자: ob
public assign_groupToActivities ( array $groupID, array $activityIDs ) : boolean
$groupID array groupID of the group to which the activities will be assigned
$activityIDs array contains one or more activityIDs
리턴 boolean true on success, false on failure

assign_groupToCustomers() 공개 메소드

Assigns a group to 1-n customers by adding entries to the cross table (counterpart to assign_customerToGroups)
저자: ob/th
public assign_groupToCustomers ( array $groupID, array $customerIDs ) : boolean
$groupID array ID of the group to which the customers will be assigned
$customerIDs array contains one or more IDs of customers
리턴 boolean true on success, false on failure

assign_groupToProjects() 공개 메소드

Assigns a group to 1-n projects by adding entries to the cross table (counterpart to assign_projectToGroups)
저자: ob
public assign_groupToProjects ( array $groupID, array $projectIDs ) : boolean
$groupID array groupID of the group to which the projects will be assigned
$projectIDs array contains one or more project IDs
리턴 boolean true on success, false on failure

assign_projectToActivities() 공개 메소드

Assigns 1-n activities to a project by adding entries to the cross table
저자: sl
public assign_projectToActivities ( integer $projectID, array $activityIDs ) : boolean
$projectID integer id of the project to which activities will be assigned
$activityIDs array contains one or more activityIDs
리턴 boolean true on success, false on failure

assign_projectToGroups() 공개 메소드

Assigns a project to 1-n groups by adding entries to the cross table
저자: ob/th
public assign_projectToGroups ( integer $projectID, array $groupIDs ) : boolean
$projectID integer ID of the project to which the groups will be assigned
$groupIDs array contains one or more groupIDs
리턴 boolean true on success, false on failure

checkMembershipPermission() 공개 메소드

Check if a user is allowed to access an object for a given action.
public checkMembershipPermission ( integer $userId, array $objectGroups, string $permission, string $requiredFor = 'all' ) : boolean
$userId integer the ID of the user
$objectGroups array list of group IDs of the object to check
$permission string name of the permission to check for
$requiredFor string (all|any) whether the permission must be present for all groups or at least one
리턴 boolean

checkUserInternal() 공개 메소드

A drop-in function to replace checkuser() and be compatible with none-cookie environments.
저자: th/kp
public checkUserInternal ( $kimai_user )

clean_data() 공개 메소드

The conversion to utf8 is done here as well, if configured. This method is public since ki_expenses private database layers use it.
public clean_data ( array $data ) : array
$data array Array which values are being prepared.
리턴 array The same array, except all values are being escaped correctly.

configuration_edit() 공개 메소드

Edits a configuration variables by replacing the data by the new array
저자: ob
public configuration_edit ( array $data ) : boolean
$data array variables array
리턴 boolean true on success, false on failure

connect() 공개 메소드

Connect to the database.
public connect ( string $host, string $database, string $username, string $password, boolean $utf8 = true )
$host string
$database string
$username string
$password string
$utf8 boolean

customer_create() 공개 메소드

Add a new customer to the database.
저자: th
public customer_create ( array $data ) : integer
$data array name, address and other data of the new customer
리턴 integer the customerID of the new customer, false on failure

customer_delete() 공개 메소드

deletes a customer
저자: th
public customer_delete ( integer $customerID ) : boolean
$customerID integer id of the customer
리턴 boolean true on success, false on failure

customer_edit() 공개 메소드

Edits a customer by replacing his data by the new array
저자: ob/th
public customer_edit ( integer $customerID, array $data ) : boolean
$customerID integer id of the customer to be edited
$data array name, address and other new data of the customer
리턴 boolean true on success, false on failure

customer_get_data() 공개 메소드

Returns the data of a customer
저자: th
public customer_get_data ( integer $customerID ) : array
$customerID integer id of the customer
리턴 array the customer's data, false on failure

customer_get_groupIDs() 공개 메소드

returns all IDs of the groups of the given customer
저자: th
public customer_get_groupIDs ( integer $customerID ) : array
$customerID integer id of the customer
리턴 array contains the groupIDs of the groups or false on error

customer_loginSetKey() 공개 메소드

Save a new secure key for a customer to the database. This key is stored in the clients cookie and used to reauthenticate the customer.
저자: sl
public customer_loginSetKey ( $customerId, $keymai )
$customerId
$keymai

customer_nameToID() 공개 메소드

return ID of specific user named 'XXX'
public customer_nameToID ( integer $name ) : integer
$name integer name of user in table users
리턴 integer id of the customer

getActivityTable() 공개 메소드

public getActivityTable ( ) : string
리턴 string tablename including prefix

getConfigurationData() 보호된 메소드

Returns all configuration variables
protected getConfigurationData ( ) : array
리턴 array with the options from the configuration table

getConnectionHandler() 공개 메소드

This is currently required for extensions to access the database without connecting again.

getCustomerTable() 공개 메소드

public getCustomerTable ( ) : string
리턴 string tablename including prefix

getExpenseTable() 공개 메소드

public getExpenseTable ( ) : string
리턴 string tablename including prefix

getGroupMemberships() 공개 메소드

Get the groups in which the user is a member in.
public getGroupMemberships ( integer $userId ) : array
$userId integer id of the user
리턴 array list of group ids

getGroupsUsersTable() 공개 메소드

public getGroupsUsersTable ( ) : string
리턴 string tablename including prefix

getLastError() 공개 메소드

public getLastError ( ) : string
리턴 string

getNonManagableAssignedElementIds() 공개 메소드

This method supports Project-Activity-Assignments as seen from both end points. The returned array contains the ids of all those Projects or Activities that are assigned to Activities or Projects but cannot be seen by the user that looks at the assignments.
public getNonManagableAssignedElementIds ( string $parentSubject, string $subject, integer $parentId, integer $group ) : array
$parentSubject string a string designating the parent in the assignment, must be one of "project" or "activity"
$subject string a string designating the child in the assignment, must be one of "project" or "activity"
$parentId integer the id of the parent
$group integer the id of the user's group
리턴 array the array of ids of those child Projects or Activities that are assigned to the parent Activity or Project but are invisible to the user

getPreferencesTable() 공개 메소드

public getPreferencesTable ( ) : string
리턴 string tablename including prefix

getProjectTable() 공개 메소드

public getProjectTable ( ) : string
리턴 string tablename including prefix

getRatesTable() 공개 메소드

public getRatesTable ( ) : string
리턴 string tablename including prefix

getStatuses() 공개 메소드

Return all available status entries.
public getStatuses ( ) : array
리턴 array

getTablePrefix() 공개 메소드

public getTablePrefix ( ) : string
리턴 string

getTimeSheetTable() 공개 메소드

public getTimeSheetTable ( ) : string
리턴 string tablename including prefix

getUserByApiKey() 공개 메소드

Returns a username for the given $apikey.
public getUserByApiKey ( string $apikey ) : string | null
$apikey string
리턴 string | null

getUserTable() 공개 메소드

public getUserTable ( ) : string
리턴 string tablename including prefix

get_DBversion() 공개 메소드

returns the version of the installed Kimai database to compare it with the package version
저자: th [0] => version number (x.x.x) [1] => revision number
public get_DBversion ( ) : array
리턴 array

get_activities() 공개 메소드

This is either a list of all or a list of all for the given groups.
public get_activities ( array $groups = null ) : array | boolean
$groups array
리턴 array | boolean

get_activities_by_customer() 공개 메소드

returns list of activities used with specified customer
저자: sl
public get_activities_by_customer ( integer $customer_ID ) : array
$customer_ID integer filter for only this ID of a customer
리턴 array

get_activities_by_project() 공개 메소드

Those are activities which were assigned to the project or which are assigned to no project. Two joins can occur: The JOIN is for filtering the activities by groups. The LEFT JOIN gives each activity row the project id which it has been assigned to via the projects_activities table or NULL when there is no assignment. So we only take rows which have NULL or the project id in that column.
저자: sl
public get_activities_by_project ( integer $projectID, array $groups = null ) : array
$projectID integer
$groups array
리턴 array

get_activity_budget() 공개 메소드

Read activity budgets
저자: mo
public get_activity_budget ( $projectID, $activityID ) : array | boolean
$projectID
$activityID
리턴 array | boolean

get_best_fitting_fixed_rate() 공개 메소드

Query the database for the best fitting fixed rate for the given user, project and activity.
저자: sl
public get_best_fitting_fixed_rate ( $projectID, $activityID ) : boolean
$projectID
$activityID
리턴 boolean

get_best_fitting_rate() 공개 메소드

Query the database for the best fitting rate for the given user, project and activity.
저자: sl
public get_best_fitting_rate ( $userID, $projectID, $activityID ) : boolean
$userID
$projectID
$activityID
리턴 boolean

get_budget_used() 공개 메소드

get the whole budget used for the activity
public get_budget_used ( integer $projectID, integer $activityID ) : integer
$projectID integer
$activityID integer
리턴 integer

get_current_recordings() 공개 메소드

Returns a list of IDs of all current recordings.
저자: sl
public get_current_recordings ( integer $userID ) : array
$userID integer ID of user in table users
리턴 array with all IDs of current recordings. This array will be empty if there are none.

get_current_timer() 공개 메소드

result is meant as params for the stopwatch if the window is reloaded
returns:
[all] start time of entry in unix seconds (forgot why I named it this way, sorry ...)
[hour]
[min]
[sec]
저자: th
public get_current_timer ( ) : array
리턴 array

get_customer_config() 공개 메소드

returns configuration for specified customer
public get_customer_config ( integer $userID ) : array
$userID integer
리턴 array

get_customer_watchable_users() 공개 메소드

public get_customer_watchable_users ( integer $customer ) : array
$customer integer
리턴 array

get_customers() 공개 메소드

returns list of customers in a group as array
저자: th
public get_customers ( array $groups = null ) : array
$groups array ID of group in table groups or "all" for all groups
리턴 array

get_duration() 공개 메소드

returns time summary of current timesheet
저자: th
public get_duration ( integer $start, integer $end, null $users = null, null $customers = null, null $projects = null, null $activities = null, null $filterCleared = null ) : integer
$start integer start of timeframe in unix seconds
$end integer end of timeframe in unix seconds
$users null
$customers null
$projects null
$activities null
$filterCleared null
리턴 integer

get_fixed_rate() 공개 메소드

Read fixed rate from database.
저자: sl
public get_fixed_rate ( $projectID, $activityID ) : boolean
$projectID
$activityID
리턴 boolean

get_groups() 공개 메소드

returns array of all groups [0]=> array(6) { ["groupID"] => string(1) "1" ["groupName"] => string(5) "admin" ["userID"] => string(9) "1234" ["trash"] => string(1) "0" ["count_users"] => string(1) "2" } [1]=> array(6) { ["groupID"] => string(1) "2" ["groupName"] => string(4) "Test" ["userID"] => string(9) "12345" ["trash"] => string(1) "0" ["count_users"] => string(1) "1" }
저자: th
public get_groups ( integer $trash ) : array
$trash integer
리턴 array

get_latest_running_entry() 공개 메소드

Return the latest running entry with all information required for the buzzer.
저자: sl
public get_latest_running_entry ( ) : array
리턴 array with all data

get_projects() 공개 메소드

returns list of projects for specific group as array
저자: th
public get_projects ( array $groups = null ) : array
$groups array ID of user in database
리턴 array

get_projects_by_customer() 공개 메소드

returns list of projects for specific group and specific customer as array
저자: ob
public get_projects_by_customer ( integer $customerID, array $groups = null ) : array
$customerID integer customer id
$groups array list of group ids
리턴 array

get_rate() 공개 메소드

Read rate from database.
저자: sl
public get_rate ( $userID, $projectID, $activityID ) : boolean
$userID
$projectID
$activityID
리턴 boolean

get_seq() 공개 메소드

the key is both stored in the database (users table) and a cookie on the client. when the keys match the user is allowed to access the Kimai GUI. match test is performed via public function userCheck()
저자: th
public get_seq ( integer $user ) : string
$user integer ID of user in table users
리턴 string

get_status() 공개 메소드

return status names
public get_status ( array $statusIds ) : array
$statusIds array
리턴 array

get_statuses() 공개 메소드

returns array of all status with the status id as key
저자: mo
public get_statuses ( ) : array
리턴 array

get_timeSheet() 공개 메소드

returns timesheet for specific user as multidimensional array
저자: th
public get_timeSheet ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null, boolean $limit = false, boolean $reverse_order = false, integer $filterCleared = null, integer $startRows, integer $limitRows, boolean $countOnly = false ) : array
$start integer start of timeframe in unix seconds
$end integer end of timeframe in unix seconds
$users array
$customers array
$projects array
$activities array
$limit boolean
$reverse_order boolean
$filterCleared integer where -1 (default) means no filtering, 0 means only not cleared entries, 1 means only cleared entries
$startRows integer
$limitRows integer
$countOnly boolean
리턴 array

get_time_activities() 공개 메소드

returns list of time summary attached to activity ID's within specific timeframe as array
저자: sl
public get_time_activities ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array
$start integer start time in unix seconds
$end integer end time in unix seconds
$users array filter for only this ID of a user
$customers array filter for only this ID of a customer
$projects array filter for only this ID of a project
$activities array
리턴 array

get_time_customers() 공개 메소드

returns list of time summary attached to customer ID's within specific timeframe as array
저자: sl
public get_time_customers ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array
$start integer start of timeframe in unix seconds
$end integer end of timeframe in unix seconds
$users array filter for only this ID of a user
$customers array filter for only this ID of a customer
$projects array filter for only this ID of a project
$activities array
리턴 array

get_time_projects() 공개 메소드

returns list of time summary attached to project ID's within specific timeframe as array
저자: sl
public get_time_projects ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, array $activities = null ) : array
$start integer start time in unix seconds
$end integer end time in unix seconds
$users array filter for only this ID of a user
$customers array filter for only this ID of a customer
$projects array filter for only this ID of a project
$activities array
리턴 array

get_time_users() 공개 메소드

returns assoc. array where the index is the ID of a user and the value the time this user has accumulated in the given time with respect to the filtersettings
저자: sl
public get_time_users ( integer $start, integer $end, array $users = null, array $customers = null, array $projects = null, null $activities = null ) : array
$start integer from this timestamp
$end integer to this timestamp
$users array IDs of user in table users
$customers array IDs of customer in table customers
$projects array IDs of project in table projects
$activities null
리턴 array

get_user_config() 공개 메소드

returns configuration data for specified user
public get_user_config ( integer $userID ) : array
$userID integer
리턴 array $this->kga

get_user_watchable_users() 공개 메소드

returns list of users the given user can watch
저자: sl
public get_user_watchable_users ( integer $user ) : array
$user integer ID of user in table users
리턴 array

get_users() 공개 메소드

returns array of all users [userID] => 23103741 [name] => admin [mail] => 0 [active] => 0
저자: th
public get_users ( integer $trash, array $groups = null ) : array
$trash integer
$groups array list of group ids the users must be a member of
리턴 array

getjointime() 공개 메소드

returns the date of the first timerecord of a user (when did the user join?) this is needed for the datepicker
저자: th
public getjointime ( integer $userID ) : integer
$userID integer id of user
리턴 integer unix seconds of first timesheet record

globalRole_find() 공개 메소드

public globalRole_find ( $filter ) : array | boolean
$filter
리턴 array | boolean

globalRole_get_data() 공개 메소드

public globalRole_get_data ( $globalRoleID ) : array | boolean
$globalRoleID
리턴 array | boolean

global_role_allows() 공개 메소드

Check if a global role gives permission for a specific action.
public global_role_allows ( integer $roleID, string $permission ) : boolean
$roleID integer the ID of the global role
$permission string name of the action / permission
리턴 boolean true if permissions is granted, false otherwise

global_role_create() 공개 메소드

public global_role_create ( $data ) : boolean | integer
$data
리턴 boolean | integer

global_role_delete() 공개 메소드

public global_role_delete ( $globalRoleID ) : boolean
$globalRoleID
리턴 boolean

global_role_edit() 공개 메소드

public global_role_edit ( $globalRoleID, $data ) : boolean
$globalRoleID
$data
리턴 boolean

global_roles() 공개 메소드

public global_roles ( ) : array | boolean
리턴 array | boolean

group_count_users() 공개 메소드

Returns the number of users in a certain group
저자: th
public group_count_users ( array $groupID ) : integer
$groupID array groupID of the group
리턴 integer the number of users in the group

group_create() 공개 메소드

Adds a new group
저자: th
public group_create ( array $data ) : integer
$data array name and other data of the new group
리턴 integer the groupID of the new group, false on failure

group_delete() 공개 메소드

deletes a group
저자: th
public group_delete ( array $groupID ) : boolean
$groupID array groupID of the group
리턴 boolean true on success, false on failure

group_edit() 공개 메소드

Edits a group by replacing its data by the new array
저자: th
public group_edit ( array $groupID, array $data ) : boolean
$groupID array groupID of the group to be edited
$data array name and other new data of the group
리턴 boolean true on success, false on failure

group_get_data() 공개 메소드

Returns the data of a certain group
저자: th
public group_get_data ( array $groupID ) : array
$groupID array groupID of the group
리턴 array the group's data (name, etc) as array, false on failure

initializeConfig() 공개 메소드

Prefills the Config (and inherited settings) object with configuration data.
public initializeConfig ( Kimai_Config $config )
$config Kimai_Config

isConnected() 공개 메소드

public isConnected ( ) : boolean
리턴 boolean

isValidActivityId() 공개 메소드

checks if given $activityId exists in the db
public isValidActivityId ( integer $activityId ) : boolean
$activityId integer
리턴 boolean

isValidProjectId() 공개 메소드

checks if given $projectId exists in the db
public isValidProjectId ( integer $projectId ) : boolean
$projectId integer
리턴 boolean

is_customer_name() 공개 메소드

checks if a customer with this name exists
저자: sl
public is_customer_name ( string $name ) : boolean
$name string
리턴 boolean

is_watchable_user() 공개 메소드

Checks if a user (given by user ID) can be accessed by another user (given by user array):
또한 보기: get_watchable_users
저자: sl
public is_watchable_user ( integer $user, integer $userID ) : boolean
$user integer user to check for
$userID integer user to check if watchable
리턴 boolean if watchable, false otherwiese

loginUpdateBan() 공개 메소드

Optionally it sets the start time of the ban to the current time.
저자: sl
public loginUpdateBan ( $userId, boolean $resetTime = false )
$userId
$resetTime boolean

membershipRole_find() 공개 메소드

public membershipRole_find ( $filter ) : array | boolean
$filter
리턴 array | boolean

membershipRole_get_data() 공개 메소드

public membershipRole_get_data ( $membershipRoleID ) : array | boolean
$membershipRoleID
리턴 array | boolean

membership_role_allows() 공개 메소드

Check if a membership role gives permission for a specific action.
public membership_role_allows ( integer $roleID, string $permission ) : boolean
$roleID integer the ID of the membership role
$permission string name of the action / permission
리턴 boolean true if permissions is granted, false otherwise

membership_role_create() 공개 메소드

public membership_role_create ( $data ) : boolean | integer
$data
리턴 boolean | integer

membership_role_delete() 공개 메소드

public membership_role_delete ( $membershipRoleID ) : boolean
$membershipRoleID
리턴 boolean

membership_role_edit() 공개 메소드

public membership_role_edit ( $membershipRoleID, $data ) : object
$membershipRoleID
$data
리턴 object

membership_roles() 공개 메소드

public membership_roles ( ) : array | boolean
리턴 array | boolean

project_activity_edit() 공개 메소드

update the data for activity per project, which is budget, approved and effort
public project_activity_edit ( integer $projectID, integer $activityID, array $data ) : boolean
$projectID integer
$activityID integer
$data array
리턴 boolean

project_create() 공개 메소드

Adds a new project
저자: th
public project_create ( array $data ) : integer
$data array name, comment and other data of the new project
리턴 integer the ID of the new project, false on failure

project_delete() 공개 메소드

deletes a project
저자: th
public project_delete ( array $projectID ) : boolean
$projectID array ID of the project
리턴 boolean true on success, false on failure

project_edit() 공개 메소드

Edits a project by replacing its data by the new array
저자: ob/th
public project_edit ( integer $projectID, array $data ) : boolean
$projectID integer id of the project to be edited
$data array name, comment and other new data of the project
리턴 boolean true on success, false on failure

project_get_activities() 공개 메소드

returns all the activities which were assigned to a project
저자: sl
public project_get_activities ( integer $projectID ) : array
$projectID integer ID of the project
리턴 array contains the activityIDs of the activities or false on error

project_get_activityIDs() 공개 메소드

returns all the activity ids which were assigned to a project
저자: sl
public project_get_activityIDs ( integer $projectID ) : array
$projectID integer ID of the project
리턴 array contains the activityIDs of the activities or false on error

project_get_data() 공개 메소드

Returns the data of a certain project
저자: th
public project_get_data ( integer $projectID ) : array
$projectID integer ID of the project
리턴 array the project's data (name, comment etc) as array, false on failure

project_get_groupIDs() 공개 메소드

returns all the groups of the given project
저자: th
public project_get_groupIDs ( array $projectID ) : array
$projectID array ID of the project
리턴 array contains the groupIDs of the groups or false on error

queryAll() 공개 메소드

Return all rows for the given sql query.
public queryAll ( string $query ) : array
$query string the sql query to execute
리턴 array

remove_fixed_rate() 공개 메소드

Remove fixed rate from database.
저자: sl
public remove_fixed_rate ( $projectID, $activityID ) : boolean
$projectID
$activityID
리턴 boolean

remove_rate() 공개 메소드

Remove rate from database.
저자: sl
public remove_rate ( $userID, $projectID, $activityID ) : boolean
$userID
$projectID
$activityID
리턴 boolean

rowExists() 보호된 메소드

checks if a given db row based on the $idColumn & $id exists
protected rowExists ( string $table, array $filter ) : boolean
$table string
$filter array
리턴 boolean

save_fixed_rate() 공개 메소드

Save fixed rate to database.
저자: sl
public save_fixed_rate ( $projectID, $activityID, $rate ) : boolean
$projectID
$activityID
$rate
리턴 boolean

save_rate() 공개 메소드

Save rate to database.
저자: sl
public save_rate ( $userID, $projectID, $activityID, $rate ) : boolean
$userID
$projectID
$activityID
$rate
리턴 boolean

save_timeframe() 공개 메소드

saves timeframe of user in database (table conf)
저자: th
public save_timeframe ( string $timeframeBegin, string $timeframeEnd, string $user ) : boolean
$timeframeBegin string unix seconds
$timeframeEnd string unix seconds
$user string ID of user
리턴 boolean

setGroupMemberships() 공개 메소드

Set the groups in which the user is a member in.
저자: sl
public setGroupMemberships ( integer $userId, array $groups = null ) : false | null
$userId integer id of the user
$groups array map from group ID to membership role ID
리턴 false | null true on success, false on failure

startRecorder() 공개 메소드

starts timesheet record
저자: th, sl
public startRecorder ( integer $projectID, $activityID, $user ) : integer
$projectID integer ID of project to record
$activityID
$user
리턴 integer id of the new entry or false on failure

status_create() 공개 메소드

add a new status
public status_create ( array $status ) : boolean
$status array
리턴 boolean

status_delete() 공개 메소드

deletes a status
저자: mo
public status_delete ( array $statusID ) : boolean
$statusID array statusID of the status
리턴 boolean true on success, false on failure

status_edit() 공개 메소드

Edits a status by replacing its data by the new array
저자: mo
public status_edit ( array $statusID, array $data ) : boolean
$statusID array groupID of the status to be edited
$data array name and other new data of the status
리턴 boolean true on success, false on failure

status_get_data() 공개 메소드

Returns the data of a certain status
저자: mo
public status_get_data ( array $statusID ) : array
$statusID array ID of the group
리턴 array the group's data (name) as array, false on failure

status_timeSheetEntryCount() 공개 메소드

Returns the number of time sheet entries with a certain status
저자: mo
public status_timeSheetEntryCount ( integer $statusID ) : integer
$statusID integer ID of the status
리턴 integer the number of timesheet entries with this status

stopRecorder() 공개 메소드

Performed when the stop buzzer is hit.
저자: th, sl
public stopRecorder ( integer $id ) : boolean
$id integer id of the entry to stop
리턴 boolean

timeEntry_create() 공개 메소드

create time sheet entry
public timeEntry_create ( array $data ) : boolean | integer
$data array array with record data
리턴 boolean | integer

timeEntry_delete() 공개 메소드

delete time sheet entry
저자: th
public timeEntry_delete ( integer $id ) : object
$id integer -> ID of record
리턴 object

timeEntry_edit() 공개 메소드

edit time sheet entry
저자: th
public timeEntry_edit ( integer $id, array $data ) : boolean
$id integer ID of record
$data array array with new record data
리턴 boolean

timeEntry_edit_activity() 공개 메소드

Just edit the activity for an entry. This is used for changing the activity of a running entry.
public timeEntry_edit_activity ( integer $timeEntryID, integer $activityID ) : object
$timeEntryID integer id of the timesheet entry
$activityID integer id of the activity to change to
리턴 object

timeEntry_edit_project() 공개 메소드

Just edit the project for an entry. This is used for changing the project of a running entry.
public timeEntry_edit_project ( integer $timeEntryID, integer $projectID ) : object
$timeEntryID integer id of the timesheet entry
$projectID integer id of the project to change to
리턴 object

timeSheet_get_data() 공개 메소드

Returns the data of a certain time record
저자: th
public timeSheet_get_data ( integer $timeEntryID ) : array
$timeEntryID integer timeEntryID of the record
리턴 array the record's data (time, activity id, project id etc) as array, false on failure

timeSheet_whereClausesFromFilters() 공개 메소드

This method also makes the values SQL-secure.
public timeSheet_whereClausesFromFilters ( array $users, array $customers, array $projects, array $activities = [] ) : array
$users array list of IDs of users to include
$customers array list of IDs of customers to include
$projects array list of IDs of projects to include
$activities array list of IDs of activities to include
리턴 array list of where clauses to include in the query

transaction_begin() 공개 메소드

public transaction_begin ( ) : boolean
리턴 boolean

transaction_end() 공개 메소드

public transaction_end ( ) : boolean
리턴 boolean

transaction_rollback() 공개 메소드

public transaction_rollback ( ) : boolean
리턴 boolean

userIDToName() 공개 메소드

return name of a user with specific ID
저자: th
public userIDToName ( string $id ) : integer
$id string the user's userID
리턴 integer

user_create() 공개 메소드

Adds a new user
저자: th
public user_create ( array $data ) : boolean | integer
$data array username, email, and other data of the new user
리턴 boolean | integer false on failure, otherwise the new user id

user_delete() 공개 메소드

deletes a user
저자: th
public user_delete ( integer $userID, boolean $moveToTrash = false ) : boolean
$userID integer userID of the user
$moveToTrash boolean whether to delete user or move to trash
리턴 boolean true on success, false on failure

user_edit() 공개 메소드

Edits a user by replacing his data and preferences by the new array
저자: ob/th
public user_edit ( integer $userID, array $data ) : boolean
$userID integer userID of the user to be edited
$data array username, email, and other new data of the user
리턴 boolean true on success, false on failure

user_get_data() 공개 메소드

Returns the data of a certain user
저자: th
public user_get_data ( string $userID ) : array
$userID string ID of the user
리턴 array the user's data (username, email-address, status etc) as array, false on failure

user_get_membership_role() 공개 메소드

Returns the membership roleID the user has in the given group.
public user_get_membership_role ( integer $userID, integer $groupID ) : integer | boolean
$userID integer the ID of the user
$groupID integer the ID of the group
리턴 integer | boolean membership roleID or false if user is not in the group

user_get_preference() 보호된 메소드

Get a preference for a user. If no user ID is given the current user is used.
저자: sl
protected user_get_preference ( string $key, integer $userId = null ) : string
$key string name of the preference to fetch
$userId integer (optional) id of the user to fetch the preference for
리턴 string value of the preference or null if there is no such preference

user_get_preferences() 공개 메소드

Get several preferences for a user. If no user ID is given the current user is used.
저자: sl
public user_get_preferences ( array $keys, integer $userId = null ) : array
$keys array names of the preference to fetch in an array
$userId integer (optional) id of the user to fetch the preference for
리턴 array with keys for every found preference and the found value

user_get_preferences_by_prefix() 공개 메소드

If no user ID is given the current user is used.
저자: sl
public user_get_preferences_by_prefix ( string $prefix, integer $userId = null ) : array
$prefix string prefix all preferenc keys to fetch have in common
$userId integer (optional) id of the user to fetch the preference for
리턴 array with keys for every found preference and the found value

user_loginSetKey() 공개 메소드

Save a new secure key for a user to the database. This key is stored in the users cookie and used to reauthenticate the user.
저자: sl
public user_loginSetKey ( $userId, $keymai )
$userId
$keymai

user_name2id() 공개 메소드

return ID of specific user by name
저자: th
public user_name2id ( integer $name ) : string | boolean
$name integer name of user in table users
리턴 string | boolean

user_set_preferences() 공개 메소드

The array has to assign every preference key a value to store. Example: array ( 'setting1' => 'value1', 'setting2' => 'value2'); A prefix can be specified, which will be prepended to every preference key.
저자: sl
public user_set_preferences ( array $data, string $prefix = '', integer $userId = null ) : boolean
$data array key/value pairs to store
$prefix string prefix for all preferences
$userId integer (optional) id of another user than the current
리턴 boolean true on success, false on failure

프로퍼티 상세

$conn 보호되어 있는 프로퍼티

protected MySQL $conn
리턴 MySQL

$kga 보호되어 있는 프로퍼티

Kimai Global Array
protected Kimai_Config $kga
리턴 Kimai_Config