NUKnightLab / TimelineJS-Wordpress-Plugin

A simple shortcode plugin to add the Timeline to Wordpress
Other
207 stars 50 forks source link

Compressed JS timeline-embed.js will not find the correct path #40

Open Metacowboy opened 7 years ago

Metacowboy commented 7 years ago

If your WP JS files are compressed minified, loaded at the end with plugins like auto optimise

timeline-embed.js will fail to find the correct path to load timeline.js and timeline.css

timeline-embed.js minor change at line 478 could help

if(typeof embed_path == 'undefined') { // REPLACE WITH YOUR BASEPATH IF YOU WANT OTHERWISE IT WILL TRY AND FIGURE IT OUT var _tmp_script_path = getEmbedScriptPath("timeline-embed.js"); if(!_tmp_script_path){ var _tmp_script_path = timeline_config.script_path; } var embed_path = _tmp_script_path.substr(0,_tmp_script_path.lastIndexOf('js/')); }

JoeGermuska commented 7 years ago

Are you saying that you want to load timeline.js and timeline.css from somewhere other than the installed plugin directory?

If you do want to load the JS/CSS from the plugin directory, but the problem is that Timeline's strategy for deriving that location is failing, there's a prescribed way to give the embed code a clue about where to find those files: by making the embed_path explicit in the page.

var embed_path = `url root to which js/timeline.js and css/timeline.css can be appended`;

It's a bit of a hack, but it's also an exceedingly rare issue. But we could change the shortcode renderer to set the embed_path specifically:

http://github.com/NUKnightLab/TimelineJS-Wordpress-Plugin/blob/master/knightlab-timeline.php#L72-L92

by adding a line something like:

var embed_path: "' . $script_path .'"; after the definition of timeline_config

If that's your situation, would you be game to put that in your local copy of knightlab-timeline.php and see if I'm right? It would be a lot easier than us constructing a test environment that matches your situation.

If you're saying that your copies of timeline.js and timeline.css aren't even at the plugin-installed location, then I'm not sure how we could write our plugin to adapt to the variety of ways people can go off-script, but I'd be open to suggestions, or better, a pull request!

JoeGermuska commented 3 years ago

This came up today in another support request.

It seems safe, to me, to simply set this value in the plugin, since the plugin knows where the related files are, and compressed/accelerated files will probably become more common.

Considering this an "accepted" enhancement request, to be implemented when time/resources allow.