Skip to content

Commit

Permalink
allow loading static files from different domain
Browse files Browse the repository at this point in the history
  • Loading branch information
gka committed Jan 7, 2016
1 parent 41367fb commit 9a2f596
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 39 deletions.
2 changes: 2 additions & 0 deletions lib/bootstrap.php
Expand Up @@ -23,6 +23,8 @@
}
}

if (!isset($dw_config['static_path'])) $dw_config['static_path'] = '/static';

// Include the main Propel script
// Initialize Propel with the runtime configuration
// Add the generated 'classes' directory to the include path
Expand Down
36 changes: 20 additions & 16 deletions lib/utils/chart_content.php
Expand Up @@ -27,17 +27,20 @@ function unique_scripts($scripts) {
$locale = $chart->getLanguage();
}

$static_path = $GLOBALS['dw_config']['static_path'];
$abs = $protocol . '://' . $GLOBALS['dw_config']['domain'];
if ($static_path == 'static/') $static_path = $abs . $static_path;

while (!empty($next_theme_id)) {
$theme = DatawrapperTheme::get($next_theme_id);
$theme_js[] = $theme['__static_path'] . $next_theme_id . '.js';
$theme_static_path = str_replace('/static/', $static_path . '/', $theme['__static_path']);
$theme_js[] = $theme_static_path . $next_theme_id . '.js';
if ($theme['hasStyles']) {
$theme_css[] = $theme['__static_path'] . $next_theme_id . '.css';
$theme_css[] = $theme_static_path . $next_theme_id . '.css';
}
$next_theme_id = $theme['extends'];
}

$abs = $protocol . '://' . $GLOBALS['dw_config']['domain'];

$debug = $GLOBALS['dw_config']['debug'] == true || $debug;
$culture = str_replace('_', '-', $locale);

Expand All @@ -49,12 +52,12 @@ function unique_scripts($scripts) {
'//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js'
);
} else {
// use local assets
// use "local" assets
$base_js = array(
$abs . '/static/vendor/globalize/globalize.min.js',
$abs . '/static/vendor/globalize/cultures/globalize.culture.' . $culture . '.js',
$abs . '/static/vendor/underscore/underscore-min.js',
$abs . '/static/vendor/jquery/jquery.min.js'
$static_path . '/vendor/globalize/globalize.min.js',
$static_path . '/vendor/globalize/cultures/globalize.culture.' . $culture . '.js',
$static_path . '/vendor/underscore/underscore-min.js',
$static_path . '/vendor/jquery/jquery.min.js'
);
}

Expand All @@ -70,6 +73,7 @@ function unique_scripts($scripts) {

while (!empty($next_vis_id)) {
$vis = DatawrapperVisualization::get($next_vis_id);
$vis_static_path = str_replace('/static/', $static_path . '/', $vis['__static_path']);
$vjs = array();
if (!empty($vis['libraries'])) {
foreach (array_reverse($vis['libraries']) as $script) {
Expand All @@ -83,9 +87,9 @@ function unique_scripts($scripts) {

// at first we check if the library lives in ./lib of the vis module
if (file_exists(ROOT_PATH . 'www/' . $vis['__static_path'] . $script['local'])) {
$u = $vis['__static_path'] . $script['local'];
$u = $vis_static_path . $script['local'];
} else if (file_exists(ROOT_PATH . 'www/static/vendor/' . $script['local'])) {
$u = '/static/vendor/' . $script['local'];
$u = $static_path . '/vendor/' . $script['local'];
} else {
die("could not find required library ".$script["local"]);
}
Expand All @@ -99,16 +103,16 @@ function unique_scripts($scripts) {
if (!isset($vis_locale[$term])) $vis_locale[$term] = $translations;
}
}
$vjs[] = $vis['__static_path'] . $vis['id'] . '.js';
$vjs[] = $vis_static_path . $vis['id'] . '.js';
$vis_js = array_merge($vis_js, array_reverse($vjs));
if ($vis['hasCSS']) {
$vis_css[] = $vis['__static_path'] . $vis['id'] . '.css';
$vis_css[] = $vis_static_path . $vis['id'] . '.css';
}
$next_vis_id = !empty($vis['extends']) ? $vis['extends'] : null;
}

$stylesheets = array_merge(
array('/static/css/chart.base.css'),
array($static_path . '/css/chart.base.css'),
$vis_css,
array_reverse($theme_css)
);
Expand Down Expand Up @@ -146,11 +150,11 @@ function unique_scripts($scripts) {
$scripts = unique_scripts(
array_merge(
$base_js,
array('/static/js/dw-2.0'.($debug ? '' : '.min').'.js'),
array($static_path . '/js/dw-2.0'.($debug ? '' : '.min').'.js'),
array_reverse($theme_js),
array_reverse($vis_js),
array_reverse($vis_libs),
array('/static/js/dw/chart.base.js')
array($static_path . '/js/dw/chart.base.js')
)
);
}
Expand Down
4 changes: 2 additions & 2 deletions templates/chart.twig
Expand Up @@ -9,13 +9,13 @@
<meta http-equiv="refresh" content="0;URL='static.html'">
<![endif]--> #}
<!--[if lt IE 9]>
<script src="{{ DW_DOMAIN }}/static/vendor/json-js/json2.min.js"></script>
<script src="{{ config.static_path }}/vendor/json-js/json2.min.js"></script>
<script type="text/javascript">
window.__ltie9 = true;
</script>
<![endif]-->
{% if innersvg %}
<script type="text/javascript" charset="utf-8" src="{{ DW_DOMAIN }}/static/vendor/innersvg/innersvg.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/innersvg/innersvg.js"></script>
{% endif %}

{{ hook('chart_html_head', chart) }}
Expand Down
42 changes: 21 additions & 21 deletions templates/core.twig
Expand Up @@ -10,25 +10,25 @@
<meta http-equiv="X-UA-Compatible" content="IE=8" />

<!-- Le styles -->
<link href="/static/vendor/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="/static/vendor/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="/static/css/datawrapper.css" rel="stylesheet">
<link href="/static/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="{{ config.static_path }}/vendor/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="{{ config.static_path }}/vendor/bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="{{ config.static_path }}/css/datawrapper.css" rel="stylesheet">
<link href="{{ config.static_path }}/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet">

<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<script src="/static/vendor/json-js/json2.js"></script>
<link href="/static/css/datawrapper-ie.css" rel="stylesheet">
<script src="{{ config.static_path }}/vendor/json-js/json2.js"></script>
<link href="{{ config.static_path }}/css/datawrapper-ie.css" rel="stylesheet">
<![endif]-->

{% if config.custom_css %}<link href="/static/custom/{{ config.custom_css }}" rel="stylesheet">{% endif %}
{% if config.custom_css %}<link href="{{ config.static_path }}/custom/{{ config.custom_css }}" rel="stylesheet">{% endif %}
{% if config.custom_favicon %}<link href="{{ config.custom_favicon }}" rel="shortcut icon">{% endif %}

<script type="text/javascript" charset="utf-8" src="/static/vendor/d3/d3.min.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/d3-jetpack/d3-jetpack.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/d3/d3.min.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/d3-jetpack/d3-jetpack.js"></script>

<script type="text/javascript" charset="utf-8" src="/static/vendor/requirejs/require.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/requirejs/require.js"></script>
<script type="text/javascript" charset="utf-8">
require.config({
baseUrl: '/static',
Expand All @@ -46,23 +46,23 @@
urlArgs: 'v={{ DW_VERSION }}'
});
</script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/underscore/underscore-min.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/cryptojs/hmac-sha256.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/globalize/globalize.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/vendor/globalize/cultures/globalize.culture.{{ locale | replace({'_':'-'}) }}.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/jquery/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/underscore/underscore-min.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/cryptojs/hmac-sha256.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/globalize/globalize.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/vendor/globalize/cultures/globalize.culture.{{ locale | replace({'_':'-'}) }}.js"></script>
{# javascript core 2.0 #}
<script type="text/javascript" charset="utf-8" src="/static/js/dw-2.0.js"></script>
<script type="text/javascript" charset="utf-8" src="/static/js/dw-backend.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/js/dw-2.0.js"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/js/dw-backend.js"></script>

{% if page_css %}
<link href="/static/css/{{ page_css }}" rel="stylesheet">
<link href="{{ config.static_path }}/css/{{ page_css }}" rel="stylesheet">
{% endif %}

{% for js in plugin_js %}
<script type="text/javascript" charset="utf-8" src="/static/plugins/{{ js }}"></script>
<script type="text/javascript" charset="utf-8" src="{{ config.static_path }}/plugins/{{ js }}"></script>
{% endfor %}{% for css in plugin_css %}
<link href="/static/plugins/{{ css }}" rel="stylesheet">
<link href="{{ config.static_path }}/plugins/{{ css }}" rel="stylesheet">
{% endfor %}

</head>
Expand Down Expand Up @@ -166,7 +166,7 @@ L143.178,296.9z M124.338,205.555H73.211v25.062h51.127V205.555z"></path> </svg>
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

<script type="text/javascript" src="/static/vendor/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="{{ config.static_path }}/vendor/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(function() {
Expand Down

0 comments on commit 9a2f596

Please sign in to comment.