Beautifully crafted timelines that are easy and intuitive to use. http://timeline.knightlab.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.4 KiB
103 lines
3.4 KiB
<?php |
|
/* |
|
Plugin Name: Verite Timeline Plugin |
|
Plugin URI: http://timeline.verite.co/ |
|
Description: Add Verite Timelines to your WordPress posts using the shortcode [verite-timeline]. |
|
Version: 0.1 |
|
Author: Zach Wise, Jeremy Rue |
|
Author URI: http://timeline.verite.co/ |
|
License: GNU |
|
|
|
|
|
This program is free software: you can redistribute it and/or modify |
|
it under the terms of the GNU General Public License as published by |
|
the Free Software Foundation, either version 3 of the License, or |
|
(at your option) any later version. |
|
|
|
This program is distributed in the hope that it will be useful, |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
GNU General Public License for more details. |
|
|
|
http://www.gnu.org/licenses/ |
|
|
|
Map tiles by [Stamen Design](http://stamen.com "Stamen Design"), under [CC BY 3.0](http://creativecommons.org/licenses/by/3.0 "CC BY 3.0"). |
|
Data by [OpenStreetMap](http://openstreetmap.org "OpenStreetMap"), under [CC BY SA](http://creativecommons.org/licenses/by-sa/3.0 "CC BY SA"). |
|
*/ |
|
|
|
class VeriteTimelinePlugin{ |
|
|
|
function VeriteTimelinePlugin(){ |
|
|
|
//add scripts if shortcode exists in a post |
|
add_action( 'wp_head', array(__CLASS__, 'detectVeriteShortCodes'), 0); |
|
|
|
//adds the shortcode [verite-timeline] to WordPress hook |
|
add_shortcode('verite-timeline', array(__CLASS__, 'addVeriteShortCode')); |
|
} |
|
|
|
function addVeriteShortCode($atts){ |
|
|
|
//extract the URL to json from the shortcode attribute |
|
extract( shortcode_atts( array('url' => null), $atts )); |
|
|
|
// HELP ME OUT HERE, I KNOW NOTHING ABOUT PHP-ZW |
|
//extract the height from the shortcode attribute |
|
//extract( shortcode_atts( array('height' => null), $atts )); |
|
|
|
if($url) $verite_json_uri = $url; |
|
//if($height) $verite_height = $height; |
|
//if($width) $verite_width = $width; |
|
//if($js) $verite_js = $js; |
|
//if($css) $verite_css = $css; |
|
|
|
//write to the DOM |
|
|
|
return " |
|
<!-- BEGIN Timeline Embed --> |
|
<div id=\"timeline-embed\"></div> |
|
<script type=\"text/javascript\">// <![CDATA[ |
|
var timeline_config = { |
|
width: \"100%\", |
|
height: \"650px\", |
|
source: \"". $verite_json_uri ."\" |
|
} |
|
// ]]></script> |
|
<script type=\"text/javascript\" src=\"http://veritetimeline.appspot.com/latest/timeline-embed.js\"></script> |
|
<!-- END Timeline Embed --> |
|
"; |
|
} |
|
|
|
function detectVeriteShortCodes(){ |
|
global $post; |
|
|
|
//if there is a shortcode in the post... |
|
$verite_shortcode_exists = stripos($post->post_content, '[verite-timeline'); |
|
|
|
//load in scripts |
|
if($verite_shortcode_exists || $verite_shortcode_exists === 0){ |
|
|
|
//take out any existing versions of jquery to use our own |
|
//wp_dequeue_script( 'jquery' ); |
|
//wp_deregister_script( 'jquery' ); |
|
|
|
//register our scripts and styles |
|
//wp_register_script( 'jquery', plugins_url('/jquery-min.js', __FILE__) ); |
|
//wp_register_script( 'verite_script', plugins_url('/timeline-min.js', __FILE__), array('jquery'), '0.5', false ); |
|
//wp_register_style( 'verite_styles', plugins_url('/timeline.css', __FILE__), false, '0.5', 'all'); |
|
|
|
//load them into the DOM |
|
//wp_enqueue_script('jquery'); |
|
//wp_enqueue_script('verite_script'); |
|
//wp_enqueue_style('verite_styles'); |
|
|
|
} |
|
} |
|
} |
|
|
|
function VeriteTimelinePluginInit(){ |
|
global $veriteTimelineInstance; |
|
$veriteTimelineInstance = new VeriteTimelinePlugin(); |
|
} |
|
|
|
add_action('init', 'VeriteTimelinePluginInit'); |