Files
2024-10-29 14:04:59 +08:00

164 lines
4.9 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use think\Request;
use think\Loader;
/**
* 记录日志
*/
function action_log($title = '日志名称', $content = null, $user_id = 0, $param = array()) {
$request = Request::instance();
//参数检查
if (empty($title) || empty($content)) {
return '参数不能为空';
}
$user_id = $user_id > 0 ? $user_id : (isset($user_id) ? 0 : is_session_login('user'));
// if ($user_id == 1) {
// return 'debug';
// }
//插入日志
$data['title'] = $title;
$data['user_id'] = $user_id;
$data['ip'] = $request->ip();
$data['url'] = $request->url(true);
$data['module'] = $request->module();
$data['controller'] = $request->controller();
$data['action'] = $request->action();
$data['param'] = empty($param) ? serialize($request->param()) : serialize($param);
$data['content'] = is_array($content) ? serialize($content) : $content;
$data['addtime'] = time();
Loader::model('ActionLog')->data($data)->save();
}
//获取指定模块中的控制器名
function get_ctrl_names($module, $retrun = 'string') {
$ctrlPath = APP_PATH . ltrim($module, '/') . '/controller';
$ctrlOption = '';
$ctrlArray = [];
if (is_dir($ctrlPath)) {
$dirResource = opendir($ctrlPath);
while ($dir = readdir($dirResource)) {
if (!in_array($dir, array('.', '..', '.svn'))) {
$ctrlArray[] = $val = basename($dir, '.php');
$ctrlOption .= "<option value='" . $val . "'>" . $val . "</option>";
}
}
closedir($dirResource);
}
if ($retrun == 'string') {
return $ctrlOption;
} else {
return $ctrlArray;
}
}
//获取指定控制器中的动作名
function get_action_names($controller, $namespace = '', $retrun = 'string') {
$class_name = is_object($controller) ? $controller : $namespace . str_replace('.php', '', $controller);
$current_actions = get_class_methods($class_name);
if (!isset($current_actions)) {
return '指定的控制器无效';
}
$parent_class_name = get_parent_class($class_name);
$parent_actions = $parent_class_name ? get_class_methods($parent_class_name) : ['__construct', '_initialize'];
$actionArray = array_diff($current_actions, $parent_actions);
$actionOption = '';
foreach ($actionArray as $val) {
$actionOption .= "<option value='" . $val . "'>" . $val . "</option>";
}
if ($retrun == 'string') {
return $actionOption;
} else {
return $actionArray;
}
}
if (!function_exists('is_administrator')) {
/**
* 检测当前用户是否为管理员
* @param null $uid
* @return bool true-管理员false-非管理员
*/
function is_administrator($uid = null) {
$user_id = !empty($uid) ? $uid : is_session_login('user');
return is_int($user_id) && ((int) $user_id === (int) config('user_administrator'));
}
}
/**
* 分析枚举类型配置值
* 格式 a:名称1,b:名称2
* @param $string 配置值
* @return array
*/
function parse_config_attr($string) {
$array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n"));
if (strpos($string, ':')) {
$value = [];
foreach ($array as $val) {
list($k, $v) = explode(':', $val);
$value[$k] = $v;
}
} else {
$value = $array;
}
return $value;
}
function editor($selector = '#content', $type = 'string') {
$rootDir = request()->root();
if (is_array($selector)) {
$KindEditor = "\n";
foreach ($selector as $s) {
$KindEditor .="KindEditor.ready(function(K) {K.create('{$s}', {allowFileManager: true});});\n";
}
} else {
$KindEditor = "KindEditor.ready(function(K) {K.create('{$selector}', {allowFileManager: true});});";
}
$editor = <<<EDITOR
<link rel="stylesheet" href="{$rootDir}/backend/adminlte/kindeditor/themes/default/default.min.css" />
<link rel="stylesheet" href="{$rootDir}/backend/adminlte/kindeditor/themes/default/custom.css" />
<script charset="utf-8" src="{$rootDir}/backend/adminlte/kindeditor/kindeditor-min.js"></script>
<script type="text/javascript">
$KindEditor
</script>
EDITOR;
return $editor;
}
/**
* 国家选择
* @cit $string 国家
* @view $string 表
* */
function city($cit = '',$view = ''){
$cit = strtolower($cit);
switch ($cit){
case '':
return Loader::model($view);
break;
case 'zh':
return Loader::model($view);
break;
case 'en':
return Loader::model($view.'En');
break;
case 'us':
return Loader::model($view.'Us');
break;
case 'id':
return Loader::model($view.'Id');
break;
case 'th':
return Loader::model($view.'Th');
break;
case 'vn':
return Loader::model($view.'Vn');
break;
default:
}
}