blob: 09f2ddd51925b0a83340d7c6a6d9924510194d62 (
plain)
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
|
<?php
class Modelfont extends Model
{
const FONT_TYPES = ['woff2', 'woff', 'otf', 'ttf', 'eot', 'svg'];
public function getfontlist()
{
return $this->fontlist($this->list());
}
public function renderfontface()
{
$list = $this->list();
$fontlist = $this->fontlist($list);
$fontface = $this->fontface($fontlist);
$this->write($fontface);
}
public function list()
{
if ($handle = opendir(Model::FONT_DIR)) {
$list = [];
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$list[] = $entry;
}
}
}
return $list;
}
public function fontlist(array $list)
{
$fontlist = [];
$fonttypes = implode('|', $this::FONT_TYPES);
$regex = '#(.+)\.('.$fonttypes.')#';
foreach ($list as $font) {
if(preg_match($regex, $font, $out)) {
$fontlist[] = ['id' => $out[1], 'ext' =>$out[2]];
}
}
return $fontlist;
}
public function fontface(array $fontlist)
{
$fontface = '';
foreach ($fontlist as $font) {
$fontface .= '@font-face {' . PHP_EOL . 'font-family: ' . $font['id'] . ';' . PHP_EOL . ' src: url( ' . Model::fontpath() . $font['id'] .'.'. $font['ext'] . ');' . PHP_EOL . '}' . PHP_EOL . PHP_EOL;
}
return $fontface;
}
public function write(string $fontface)
{
$write = file_put_contents(Model::GLOBAL_DIR.'fonts.css', $fontface);
if($write !== false) {
}
}
}
?>
|