104 lines
3.0 KiB
PHP
104 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: lorenz
|
|
* Date: 28.09.2016
|
|
* Time: 16:43
|
|
*/
|
|
|
|
//ini_set('display_errors', '0');
|
|
|
|
//Vendor Autoloader
|
|
include(rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/vendor/autoload.php');
|
|
//Load environment variables from config if exists
|
|
$envDir = rtrim($_SERVER["DOCUMENT_ROOT"], '/') . '/config';
|
|
if (is_dir($envDir)) {
|
|
$dotenv = new \Dotenv\Dotenv($envDir);
|
|
$dotenv->load();
|
|
}
|
|
|
|
// Konfigurationsdatei laden
|
|
require_once(rtrim($_SERVER["DOCUMENT_ROOT"], '/') . "/mysyde/common/common_functions.inc.php");
|
|
require_once(rtrim($_SERVER["DOCUMENT_ROOT"], '/') . "/mysyde/dc-server.config.php");
|
|
|
|
// Verbindung mit Datenbank herstellen
|
|
db_connect();
|
|
|
|
// Variablen schützen
|
|
$_GET = secure_array($_GET);
|
|
$_POST = secure_array($_POST);
|
|
|
|
|
|
$query = "
|
|
SELECT id, path, default_active, type
|
|
FROM main_layout_inclusions
|
|
WHERE main_layout_id = '" . $_GET["layout_id"] . "' AND type = 'css'
|
|
ORDER BY sorting ASC";
|
|
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
$layout_inclusions = array();
|
|
while ($row = @mysqli_fetch_assoc($result)) {
|
|
$layout_inclusions[$row['id']] = $row;
|
|
}
|
|
|
|
if (count($layout_inclusions) == 0) {
|
|
return;
|
|
}
|
|
|
|
|
|
$includes_link_ids = array();
|
|
$query = "SELECT * FROM main_page_layout_inclusion_link WHERE main_page_id = '" . $_GET["page_id"]."'";
|
|
|
|
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
|
|
while ($row = @mysqli_fetch_assoc($result)) {
|
|
$includes_link_ids[$row['main_layout_includes_id']] = $row;
|
|
}
|
|
|
|
$outputBuffer = "";
|
|
|
|
|
|
foreach ($layout_inclusions as $inclusion_id => $inclusion_row) {
|
|
$include = FALSE;
|
|
|
|
if (!isset($includes_link_ids[$inclusion_id]) &&
|
|
$inclusion_row['default_active'] == 1
|
|
) {
|
|
$include = TRUE;
|
|
|
|
} elseif (isset($includes_link_ids[$inclusion_id]) && $includes_link_ids[$inclusion_id]['active'] == 1) {
|
|
$include = TRUE;
|
|
}
|
|
|
|
if ($include === FALSE) {
|
|
continue;
|
|
}
|
|
|
|
if (file_exists(rtrim($_SERVER["DOCUMENT_ROOT"], '/') . $inclusion_row["path"])) {
|
|
|
|
$buffer = file_get_contents(rtrim($_SERVER["DOCUMENT_ROOT"], '/') . $inclusion_row["path"]);
|
|
$url = explode("/", $inclusion_row["path"]);
|
|
$baseURI = "/" . $url[1] . "/" . $url[2] . "/";
|
|
$buffer = preg_replace("/url(?:\([\"']?)(.*?)(?:[\"']?\))/isx", 'url("'.$baseURI.'$1")', $buffer);
|
|
|
|
// Remove comments
|
|
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
|
|
|
|
// Remove space after colons
|
|
$buffer = str_replace(': ', ':', $buffer);
|
|
|
|
// Remove whitespace
|
|
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
|
|
|
|
|
|
$outputBuffer .= $buffer;
|
|
}
|
|
//echo "<link type=\"text/css\" rel=\"stylesheet\" href=\"" . $inclusion_row["path"] . "\"></link>\n";
|
|
}
|
|
|
|
// Enable GZip encoding.
|
|
ob_start("ob_gzhandler");
|
|
|
|
// Enable caching
|
|
header('Cache-Control: public');
|
|
header("Content-type: text/css");
|
|
echo $outputBuffer; |