はじまりの大地
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* DokuWiki Bootstrap3 Template: CSS Asset Dispatcher
|
||||
*
|
||||
* @link http://dokuwiki.org/template:bootstrap3
|
||||
* @author Giuseppe Di Terlizzi <giuseppe.diterlizzi@gmail.com>
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*/
|
||||
|
||||
# NOTE Some Linux distributon change the location of DokuWiki core libraries (DOKU_INC)
|
||||
#
|
||||
# Bitnami (Docker) /opt/bitnami/dokuwiki
|
||||
# LinuxServer.io (Docker) /app/dokuwiki
|
||||
# Arch Linux /usr/share/webapps/dokuwiki
|
||||
# Debian/Ubuntu /usr/share/dokuwiki
|
||||
#
|
||||
# NOTE If DokuWiki core libraries (DOKU_INC) is in another location you can
|
||||
# create a PHP file in bootstrap3 root directory called "doku_inc.php" with
|
||||
# this content:
|
||||
#
|
||||
# <?php define('DOKU_INC', '/path/dokuwiki/');
|
||||
#
|
||||
# (!) This file will be deleted on every upgrade of template
|
||||
|
||||
$doku_inc_dirs = array(
|
||||
'/opt/bitnami/dokuwiki', # Bitnami (Docker)
|
||||
'/usr/share/webapps/dokuwiki', # Arch Linux
|
||||
'/usr/share/dokuwiki', # Debian/Ubuntu
|
||||
'/app/dokuwiki', # LinuxServer.io (Docker),
|
||||
realpath(dirname(__FILE__) . '/../../../'), # Default DokuWiki path
|
||||
);
|
||||
|
||||
# Load doku_inc.php file
|
||||
#
|
||||
if (file_exists(dirname(__FILE__) . '/doku_inc.php')) {
|
||||
require_once dirname(__FILE__) . '/doku_inc.php';
|
||||
}
|
||||
|
||||
if (! defined('DOKU_INC')) {
|
||||
foreach ($doku_inc_dirs as $dir) {
|
||||
if (! defined('DOKU_INC') && @file_exists("$dir/inc/init.php")) {
|
||||
define('DOKU_INC', "$dir/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// we do not use a session or authentication here (better caching)
|
||||
|
||||
if (!defined('NOSESSION')) {
|
||||
define('NOSESSION', true);
|
||||
}
|
||||
|
||||
if (!defined('NL')) {
|
||||
define('NL', "\n");
|
||||
}
|
||||
|
||||
// we gzip ourself here
|
||||
|
||||
if (!defined('DOKU_DISABLE_GZIP_OUTPUT')) {
|
||||
define('DOKU_DISABLE_GZIP_OUTPUT', 1);
|
||||
}
|
||||
|
||||
function css_error($error)
|
||||
{
|
||||
echo "html:before {
|
||||
content: '$error';
|
||||
background-color: red;
|
||||
display: block;
|
||||
background-color: #fcc;
|
||||
border-color: #ebb;
|
||||
color: #000;
|
||||
padding: 0.5em;
|
||||
}";
|
||||
}
|
||||
|
||||
// TODO remove this cache-control in future
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
header('Content-Type: text/css; charset=utf-8');
|
||||
|
||||
if (!file_exists(DOKU_INC)) {
|
||||
$error = 'Problem with DOKU_INC directory. Please check your DokuWiki installation directory!';
|
||||
css_error($error);
|
||||
die;
|
||||
}
|
||||
|
||||
require_once DOKU_INC . 'inc/init.php';
|
||||
|
||||
global $INPUT;
|
||||
global $conf;
|
||||
global $ID;
|
||||
|
||||
$ID = cleanID($INPUT->str('id', null));
|
||||
|
||||
$bootstrap_theme = tpl_getConf('bootstrapTheme');
|
||||
$bootswatch_theme = tpl_getConf('bootswatchTheme');
|
||||
$custom_theme = tpl_getConf('customTheme');
|
||||
$theme_by_namespace = tpl_getConf('themeByNamespace');
|
||||
$tpl_basedir = tpl_basedir();
|
||||
$tpl_incdir = tpl_incdir();
|
||||
$themes_filename = DOKU_CONF . 'bootstrap3.themes.conf';
|
||||
$stylesheets = array();
|
||||
$bootswatch_themes = array('cerulean', 'cosmo', 'cyborg', 'darkly', 'flatly', 'journal', 'lumen', 'paper', 'readable', 'sandstone', 'simplex', 'solar', 'slate', 'spacelab', 'superhero', 'united', 'yeti');
|
||||
|
||||
# Check Theme Switcher
|
||||
if (tpl_getConf('showThemeSwitcher')) {
|
||||
if (get_doku_pref('bootswatchTheme', null) !== null && get_doku_pref('bootswatchTheme', null) !== '') {
|
||||
$bootswatch_theme = get_doku_pref('bootswatchTheme', null);
|
||||
}
|
||||
|
||||
if (!in_array($bootswatch_theme, $bootswatch_themes)) {
|
||||
$bootswatch_theme = 'default';
|
||||
}
|
||||
}
|
||||
|
||||
# Check Theme by Namespace
|
||||
if ($theme_by_namespace && file_exists($themes_filename)) {
|
||||
$config = confToHash($themes_filename);
|
||||
krsort($config);
|
||||
$theme_found = false;
|
||||
|
||||
foreach ($config as $page => $theme) {
|
||||
if (preg_match("/^$page/", "$ID")) {
|
||||
list($bootstrap_theme, $bootswatch_theme) = explode('/', $theme);
|
||||
|
||||
if ($bootstrap_theme && in_array($bootstrap_theme, array('default', 'optional', 'custom'))) {
|
||||
$theme_found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if ($bootstrap_theme == 'bootswatch' && in_array($bootswatch_theme, $bootswatch_themes)) {
|
||||
$theme_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Check $ID and unload the template
|
||||
if ($theme_by_namespace && file_exists($themes_filename) && !$ID) {
|
||||
$bootstrap_theme = 'none';
|
||||
}
|
||||
|
||||
switch ($bootstrap_theme) {
|
||||
case 'optional':
|
||||
$stylesheets[] = 'assets/bootstrap/default/bootstrap.min.css';
|
||||
$stylesheets[] = 'assets/bootstrap/default/bootstrap-theme.min.css';
|
||||
break;
|
||||
|
||||
case 'custom':
|
||||
$stylesheets[] = $custom_theme;
|
||||
break;
|
||||
|
||||
case 'bootswatch':
|
||||
|
||||
$bootswatch_url = 'assets/bootstrap';
|
||||
|
||||
if (file_exists($tpl_incdir . "assets/fonts/$bootswatch_theme.fonts.css")) {
|
||||
$stylesheets[] = "assets/fonts/$bootswatch_theme.fonts.css";
|
||||
}
|
||||
|
||||
$stylesheets[] = "$bootswatch_url/$bootswatch_theme/bootstrap.min.css";
|
||||
break;
|
||||
|
||||
case 'none':
|
||||
break;
|
||||
|
||||
case 'default':
|
||||
default:
|
||||
$stylesheets[] = 'assets/bootstrap/default/bootstrap.min.css';
|
||||
break;
|
||||
}
|
||||
|
||||
$content = '';
|
||||
|
||||
foreach ($stylesheets as $style) {
|
||||
$content .= "@import url($style);" . NL;
|
||||
}
|
||||
|
||||
print $content;
|
||||
Reference in New Issue
Block a user