Source of file getResource.php
Size: 2,194 Bytes - Last Modified: 2020-10-24T02:46:31+00:00
/home/travis/build/NextDom/nextdom-core/src/Api/getResource.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?php /* This file is part of Jeedom. * * Jeedom is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Jeedom is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jeedom. If not, see <http://www.gnu.org/licenses/>. */ namespace NextDom; use NextDom\Helpers\TranslateHelper; use NextDom\Helpers\Utils; require_once __DIR__ . '/../../src/core.php'; $file = sprintf("%s/%s", NEXTDOM_ROOT, Utils::init('file')); if (false === file_exists($file)) { header("HTTP/1.0 404 Not Found"); die(); } $pathinfo = pathinfo($file); $extension = Utils::array_key_default($pathinfo, "extension", "unknown"); switch ($extension) { case "js": $contentType = "application/javascript"; $md5 = Utils::init("md5"); $etagFile = ($md5 == "") ? md5_file($file) : $md5; break; case "css": $contentType = "text/css"; $etagFile = md5_file($file); break; default: header("HTTP/1.1 401 Unauthorized"); die(); break; } header('Content-Type: ' . $contentType); $lastModified = filemtime($file); $etagHeader = (isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT'); header('Etag: ' . $etagFile); header('Cache-Control: public'); if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified || $etagHeader == $etagFile) { header('HTTP/1.1 304 Not Modified'); exit; } if ($extension == "js") { if (strpos($file, "assets") !== false) { echo file_get_contents($file); } else { echo TranslateHelper::exec(file_get_contents($file), Utils::init("file"), true); } } elseif ($extension == "css") { echo file_get_contents($file); } |