曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.かつては雑草やヨモギと共に雨や露を分かち合っていたが、今では松やヒノキと共に霜や雪に耐えている。曾与蒿藜同雨露,Once sharing rain and dew with weeds and wormwood, now enduring frost and snow with pines and cypresses.终随松柏到冰霜.曾与蒿藜同雨露한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.,终随松柏到冰霜.譖セ荳手珍阯懷酔髮ィ髴イ�檎サ磯囂譚セ譟丞芦蜀ー髴�曾与蒿藜同雨露,鏇句笌钂胯棞鍚岄洦闇诧紝缁堥殢鏉炬煆鍒板啺闇�终随松柏到冰霜.曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.曾与蒿藜同雨露,终随松柏到冰霜.
<?php
/**
* User Manager Columns Configuration
*
* This file allows you to customize the columns and query used in the admin users table.
* You can add, remove, or modify columns as needed for your application.
* Most of the time, you just want to show something extra from the users table, so you can
* do that by adding to the $user_manager_columns array and updating the switch statement if
* you want to do something special
*/
// Define the column headers for the table
$user_manager_columns = [
'id' => 'ID',
'force_pr' => '', // Lock icon column
'username' => 'Username',
'name' => 'Name',
'email' => 'Email',
'last_login' => 'Last Sign In',
'perms' => 'Permissions',
'status' => 'Status',
];
// Define column data handlers
// This function takes a user object and column name and returns the HTML for that cell
// Only define special cases here - standard columns will be handled by the default case
$user_manager_column_data = function($user, $column) use ($act, $uCount, $maxUsers) {
switch($column) {
case 'id':
return '<span class="hideMe">' . sprintf('%08d', $user->id) . '</span>
<a class="nounderline text-dark" href="admin.php?view=user&id=' . $user->id . '">' . $user->id . '</a>';
case 'force_pr':
if ($user->force_pr == 1) {
return '<a class="nounderline text-danger" href="admin.php?view=user&id=' . $user->id . '"><i class="fa fa-lock"></i></a>';
}
return '';
case 'name':
return '<a class="nounderline text-dark" href="admin.php?view=user&id=' . $user->id . '">' . $user->fname . ' ' . $user->lname . '</a>';
case 'last_login':
if ($user->last_login != "0000-00-00 00:00:00") {
return $user->last_login;
} else {
return '<i>Never</i>';
}
case 'perms':
if ($uCount < $maxUsers) {
return $user->perms;
}
return null; // Don't show this column
case 'status':
$html = '';
if($user->permissions == 0) {
$html .= '<i class="fa fa-fw fa-lock text-danger" data-bs-toggle="tooltip" title="The users\'s account locked (banned)"></i>';
} else {
$html .= '<i class="fa fa-fw fa-unlock" data-bs-toggle="tooltip" title="The users\'s account unlocked (active)"></i>';
}
if ($act == 1 && $user->email_verified == 1) {
$html .= ' <i class="fa fa-envelope" data-bs-toggle="tooltip" title="User email is verified"></i>';
}
return $html;
default:
// For standard columns, just return the value if it exists, otherwise blank
return isset($user->$column) ? $user->$column : '';
}
};
// Define the query function based on the search mode
$user_manager_get_data = function($settings, $db, $uCount, $maxUsers) {
if($settings->uman_search == 0) {
$showAllUsers = Input::get('showAllUsers');
if ($showAllUsers == 1) {
if ($uCount < $maxUsers) {
$userData = $db->query("SELECT
u.*,
group_concat(p.name SEPARATOR ', ') AS perms
FROM users AS u
JOIN user_permission_matches AS upm ON u.id = upm.user_id
LEFT OUTER JOIN permissions AS p ON p.id = upm.permission_id
GROUP BY u.id
")->results();
} else {
$userData = fetchAllUsers('permissions DESC,id', false, true);
}
} else {
if ($uCount < $maxUsers) {
$userData = $db->query("SELECT
u.*,
group_concat(p.name SEPARATOR ', ') AS perms
FROM users AS u
JOIN user_permission_matches AS upm ON u.id = upm.user_id
LEFT OUTER JOIN permissions AS p ON p.id = upm.permission_id
WHERE u.active = 1
GROUP BY u.id
")->results();
} else {
$userData = fetchAllUsers('permissions DESC,id', false, false);
}
}
} else {
// Search using the search form
if(!empty($_POST['search'])) {
$search = Input::get('searchTerm');
$userData = $db->query("SELECT
u.*,
group_concat(p.name SEPARATOR ', ') AS perms
FROM users AS u
JOIN user_permission_matches AS upm ON u.id = upm.user_id
LEFT OUTER JOIN permissions AS p ON p.id = upm.permission_id
WHERE fname LIKE ? OR lname LIKE ? OR username LIKE ? OR email LIKE ?
GROUP BY u.id
", ["%$search%", "%$search%", "%$search%", "%$search%"])->results();
} else {
$userData = new stdClass();
}
}
return $userData;
};
/**
* CUSTOMIZATION EXAMPLES:
*
* 1. To add a simple column from the users table (e.g., phone):
*
* $user_manager_columns['phone'] = 'Phone Number';
*
* That's it! The default case will automatically display $user->phone if it exists.
*
*
* 2. To add a column with custom formatting:
*
* $user_manager_columns['created_date'] = 'Member Since';
*
* Then in the switch statement in $user_manager_column_data, add:
*
* case 'created_date':
* return date('M j, Y', strtotime($user->join_date));
*
*
* 3. To remove a column:
*
* Just remove it from the $user_manager_columns array.
*
*
* 4. To modify the query to include additional data from other tables:
*
* Modify the SELECT statements in $user_manager_get_data to include your fields.
* For example, to join with a profile table:
*
* SELECT u.*, up.bio, group_concat(p.name SEPARATOR ', ') AS perms
* FROM users AS u
* LEFT JOIN user_profiles AS up ON u.id = up.user_id
* JOIN user_permission_matches AS upm ON u.id = upm.user_id
* ...
*
* Then add to the columns array:
* $user_manager_columns['bio'] = 'Biography';
*/