From e802d5204b96d645ec3d40b81b4a8bdc6e0ee675 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Mon, 4 Nov 2019 23:31:31 +0100 Subject: refactor: switch to psr-4 autoloading --- app/class/Modelfont.php | 132 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 app/class/Modelfont.php (limited to 'app/class/Modelfont.php') diff --git a/app/class/Modelfont.php b/app/class/Modelfont.php new file mode 100644 index 0000000..3f25e21 --- /dev/null +++ b/app/class/Modelfont.php @@ -0,0 +1,132 @@ +fontlist($this->list()); + } + + public function getfonttypes() + { + $fonttypes = array_map(function ($ext) { + return '.' . $ext; + }, $this::FONT_TYPES); + return implode(', ', $fonttypes); + } + + 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], 'size' => filesize(Model::FONT_DIR . $font)]; + } + } + 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) { + + } + } + + public function upload(array $file, $maxsize = 2 ** 24, $id = null) + { + $message = 'runing'; + if (isset($file) and $file['font']['error'] == 0 and $file['font']['size'] < $maxsize) { + $infosfichier = pathinfo($file['font']['name']); + $extension_upload = $infosfichier['extension']; + $extensions_autorisees = $this::FONT_TYPES; + if (in_array($extension_upload, $extensions_autorisees)) { + if (!empty($id)) { + $id = strtolower(strip_tags($id)); + $id = str_replace(' ', '_', $id); + } else { + $id = $infosfichier['filename']; + } + if (!file_exists($this::FONT_DIR . $id . '.' . $extension_upload)) { + + $extension_upload = strtolower($extension_upload); + $uploadok = move_uploaded_file($file['font']['tmp_name'], $this::FONT_DIR . $id . '.' . $extension_upload); + if ($uploadok) { + $message = true; + } else { + $message = 'uploaderror'; + } + } else { + $message = 'filealreadyexist'; + + } + } + } else { + $message = 'filetoobig'; + + } + return $message; + } + + + + +} + + + + +?> \ No newline at end of file -- cgit v1.2.3