forked from summerblue/phphub5
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Helpers.php
160 lines (132 loc) · 3.84 KB
/
Helpers.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?php
// 如:db:seed 或者 清空数据库命令的地方调用
function insanity_check()
{
if (App::environment('production')) {
exit('别傻了? 这是线上环境呀。');
}
}
function cdn($filepath)
{
if (config('app.url_static')) {
return config('app.url_static') . $filepath;
} else {
return config('app.url') . $filepath;
}
}
function get_cdn_domain()
{
return config('app.url_static') ?: config('app.url');
}
function get_user_static_domain()
{
return config('app.user_static') ?: config('app.url');
}
function lang($text, $parameters = [])
{
return str_replace('phphub.', '', trans('phphub.'.$text, $parameters));
}
function admin_link($title, $path, $id = '')
{
return '<a href="'.admin_url($path, $id).'" target="_blank">' . $title . '</a>';
}
function admin_url($path, $id = '')
{
return env('APP_URL') . "/admin/$path" . ($id ? '/'.$id : '');
}
function admin_enum_style_output($value, $reverse = false)
{
if ($reverse) {
$class = ($value === true || $value == 'yes') ? 'danger' : 'success';
} else {
$class = ($value === true || $value == 'yes') ? 'success' : 'danger';
}
return '<span class="label bg-'.$class.'">'.$value.'</span>';
}
function navViewActive($anchor)
{
return Route::currentRouteName() == $anchor ? 'active' : '';
}
function model_link($title, $model, $id)
{
return '<a href="'.model_url($model, $id).'" target="_blank">' . $title . '</a>';
}
function model_url($model, $id)
{
return env('APP_URL') . "/$model/$id";
}
function per_page($default = null)
{
$max_per_page = config('api.max_per_page');
$per_page = (Input::get('per_page') ?: $default) ?: config('api.default_per_page');
return (int) ($per_page < $max_per_page ? $per_page : $max_per_page);
}
/**
* 生成用户客户端 URL Schema 技术的链接.
*/
function schema_url($path, $parameters = [])
{
$query = empty($parameters) ? '' : '?'.http_build_query($parameters);
return strtolower(config('app.name')).'://'.trim($path, '/').$query;
}
// formartted Illuminate\Support\MessageBag
function output_msb(\Illuminate\Support\MessageBag $messageBag){
return implode(", ", $messageBag->all());
}
function get_platform(){
return Request::header('X-Client-Platform');
}
function is_request_from_api()
{
return $_SERVER['SERVER_NAME'] == env('API_DOMAIN');
}
function route_class()
{
return str_replace('.', '-', Route::currentRouteName());
}
// 见:https://developer.qiniu.com/dora/api/basic-processing-images-imageview2
function img_crop($filepath, $width = 0, $height = 0, $mode = 1)
{
return $filepath . "?imageView2/$mode/w/{$width}/h/{$height}";
}
function setting($key, $default = '')
{
if ( ! config()->get('settings')) {
// Decode the settings to an associative array.
$site_settings = json_decode(file_get_contents(storage_path('/administrator_settings/site.json')), true);
// Add the site settings to the application configuration
config()->set('settings', $site_settings);
}
// Access a setting, supplying a default value
return config()->get('settings.'.$key, $default);
}
function is_route($name)
{
return Request::route()->getName() == $name;
}
function get_image_links($html)
{
$image_links = get_images_from_html($html);
$result = [];
foreach ($image_links as $url) {
if (strpos($url, config('app.url_static')) !== false) {
$result[] = strtok($url, '?');
}
}
return $result;
}
function get_images_from_html($html)
{
$doc = new DOMDocument();
@$doc->loadHTML($html);
$img_tags = $doc->getElementsByTagName('img');
$result = [];
foreach ($img_tags as $img) {
$result[] = $img->getAttribute('src');
}
return $result;
}
function slug_trans($word)
{
return Phphub\Handler\SlugTranslate::translate($word);
}