-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.php
124 lines (111 loc) · 3.35 KB
/
functions.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
<?php declare(strict_types=1);
use League\Glide\Urls\UrlBuilderFactory;
use SP\Admin\Contracts\Setting\AbstractBasic;
use SP\Admin\Contracts\Setting\AbstractBasicRepository;
use SP\Admin\Models\Repositories\SettingAnalyticsRepository;
use SP\Admin\Models\Repositories\SettingScriptRepository;
use SP\Admin\Models\Repositories\TrashBinRepository;
use SP\Admin\Models\SettingAnalytics;
use SP\Admin\Models\SettingScript;
if (!\function_exists('basic_settings')) {
/**
* Gets basic settings.
*
* @param string|null $key
* @param mixed $default
* @return mixed
*/
function basic_settings(?string $key = null, $default = null): mixed
{
/** @var AbstractBasic $basic_settings */
$basic_settings = resolve(AbstractBasic::class);
return $key === null
? $basic_settings->getAll()
: $basic_settings->get($key, $default);
}
}
if (!\function_exists('analytics')) {
/**
* Registers analytic services.
*
* @return string
*/
function analytics(): string
{
/** @var SettingAnalytics $settings */
$settings = resolve(SettingAnalytics::class);
$repository = new SettingAnalyticsRepository;
$ga = $repository->registerGoogleAnalytics($settings);
$ym = $repository->registerYandexMetrika($settings);
return $ga . $ym;
}
}
if (!\function_exists('head_scripts')) {
/**
* User scripts registered in the page head.
*
* @return string
*/
function head_scripts(): string
{
return (new SettingScriptRepository)->getScriptTag(new SettingScript, SettingScript::HEAD);
}
}
if (!\function_exists('bottom_scripts')) {
/**
* User scripts registered in the bottom of the page.
*
* @return string
*/
function bottom_scripts(): string
{
return (new SettingScriptRepository)->getScriptTag(new SettingScript, SettingScript::BOTTOM);
}
}
if (!\function_exists('trash_bin_count')) {
/**
* Number of all trashed items.
*
* @return int
*/
function trash_bin_count(): int
{
return resolve(TrashBinRepository::class)->count();
}
}
if (!\function_exists('image_glide_url')) {
/**
* Url for on-the-fly resized images.
*
* @param string $path
* @param array $params
* @return string
* @throws InvalidArgumentException
* @see https://glide.thephpleague.com/
*/
function image_glide_url(string $path, array $params = []): string
{
$base_url = config('admin.image_resizer.base_url', 'img');
$sign_key = config('app.key');
$url_builder = UrlBuilderFactory::create("/$base_url/", $sign_key);
return $url_builder->getUrl($path, $params);
}
}
if (!\function_exists('app_logo_url')) {
/**
* Url to company logotype.
*
* @param array $params Resizing parameters
* @return string
* @throws InvalidArgumentException
* @see https://glide.thephpleague.com/
*/
function app_logo_url(array $params = []): string
{
/** @var AbstractBasicRepository $basic_settings_repository */
$basic_settings_repository = resolve(AbstractBasicRepository::class);
return empty($params)
? $basic_settings_repository->appLogoUrlOriginal()
: $basic_settings_repository->appLogoUrlResized($params);
}
}