public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Trace
data/web/inc/header.inc.php
Trace helps you understand code history line by line. See who changed each line, when it changed, and which commit introduced it.
Author
Date
Commit
Line
Code
1
<?php
3
// CSS
4
if (preg_match("/mailbox/i", $_SERVER['REQUEST_URI'])) {
5
$css_minifier->add('/web/css/site/mailbox.css');
6
}
7
if (preg_match("/admin/i", $_SERVER['REQUEST_URI'])) {
8
$css_minifier->add('/web/css/site/admin.css');
9
}
10
if (preg_match("/user/i", $_SERVER['REQUEST_URI'])) {
11
$css_minifier->add('/web/css/site/user.css');
12
}
13
if (preg_match("/edit/i", $_SERVER['REQUEST_URI'])) {
14
$css_minifier->add('/web/css/site/edit.css');
15
}
16
if (preg_match("/(quarantine|qhandler)/i", $_SERVER['REQUEST_URI'])) {
17
$css_minifier->add('/web/css/site/quarantine.css');
18
}
19
if (preg_match("/debug/i", $_SERVER['REQUEST_URI'])) {
20
$css_minifier->add('/web/css/site/debug.css');
21
}
22
if ($_SERVER['REQUEST_URI'] == '/') {
23
$css_minifier->add('/web/css/site/index.css');
24
}
26
$hash = $css_minifier->getDataHash();
27
$CSSPath = '/tmp/' . $hash . '.css';
28
if(!file_exists($CSSPath)) {
29
$css_minifier->minify($CSSPath);
30
cleanupCSS($hash);
31
}
33
$mailcow_apps_processed = $MAILCOW_APPS;
34
$app_links = customize('get', 'app_links');
35
$app_links_processed = $app_links;
36
$hide_mailcow_apps = true;
37
for ($i = 0; $i < count($mailcow_apps_processed); $i++) {
38
if ($hide_mailcow_apps && !$mailcow_apps_processed[$i]['hide']){
39
$hide_mailcow_apps = false;
40
}
41
if (!empty($_SESSION['mailcow_cc_username'])){
42
if ($app_links_processed[$i]['user_link']) {
43
$mailcow_apps_processed[$i]['user_link'] = str_replace('%u', $_SESSION['mailcow_cc_username'], $mailcow_apps_processed[$i]['user_link']);
44
} else {
45
$mailcow_apps_processed[$i]['user_link'] = $mailcow_apps_processed[$i]['link'];
46
}
47
}
48
}
49
if ($app_links_processed){
50
for ($i = 0; $i < count($app_links_processed); $i++) {
51
$key = array_key_first($app_links_processed[$i]);
52
if ($hide_mailcow_apps && !$app_links_processed[$i][$key]['hide']){
53
$hide_mailcow_apps = false;
54
}
55
if (!empty($_SESSION['mailcow_cc_username'])){
56
if ($app_links_processed[$i][$key]['user_link']) {
57
$app_links_processed[$i][$key]['user_link'] = str_replace('%u', $_SESSION['mailcow_cc_username'], $app_links_processed[$i][$key]['user_link']);
58
} else {
59
$app_links_processed[$i][$key]['user_link'] = $app_links_processed[$i][$key]['link'];
60
}
61
}
62
}
63
}
65
// Workaround to get text with <br> straight to twig.
66
// Using "nl2br" doesn't work with Twig as it would escape everything by default.
67
if (isset($UI_TEXTS["ui_footer"])) {
68
$UI_TEXTS["ui_footer"] = nl2br($UI_TEXTS["ui_footer"]);
69
}
71
$globalVariables = [
72
'mailcow_hostname' => getenv('MAILCOW_HOSTNAME'),
73
'mailcow_locale' => @$_SESSION['mailcow_locale'],
74
'mailcow_cc_role' => @$_SESSION['mailcow_cc_role'],
75
'mailcow_cc_username' => @$_SESSION['mailcow_cc_username'],
76
'is_master' => preg_match('/y|yes/i', getenv('MASTER')),
77
'dual_login' => @$_SESSION['dual-login'],
78
'ui_texts' => $UI_TEXTS,
79
'css_path' => '/cache/'.basename($CSSPath),
80
'logo' => customize('get', 'main_logo'),
81
'logo_dark' => customize('get', 'main_logo_dark'),
82
'available_languages' => $AVAILABLE_LANGUAGES,
83
'lang' => $lang,
84
'skip_sogo' => (getenv('SKIP_SOGO') == 'y'),
85
'allow_admin_email_login' => (getenv('ALLOW_ADMIN_EMAIL_LOGIN') == 'n'),
86
'hide_mailcow_apps' => $hide_mailcow_apps,
87
'mailcow_apps' => $MAILCOW_APPS,
88
'mailcow_apps_processed' => $mailcow_apps_processed,
89
'app_links' => $app_links,
90
'app_links_processed' => $app_links_processed,
91
'is_root_uri' => (parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) == '/'),
92
'uri' => parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ?: '/',
93
];
95
foreach ($globalVariables as $globalVariableName => $globalVariableValue) {
96
$twig->addGlobal($globalVariableName, $globalVariableValue);
97
}