126 lines
3.9 KiB
PHP
126 lines
3.9 KiB
PHP
<?php
|
|
/**
|
|
* The template for displaying archive pages.
|
|
*
|
|
* @subpackage Omphaloskepsis
|
|
* @since Omphaloskepsis 1.0
|
|
*/
|
|
?>
|
|
|
|
<?php get_header(); ?>
|
|
|
|
<?php $loop = new WP_Query( $args ); ?>
|
|
<header class="entry-content tile location-block">
|
|
<div class="post-header-title">
|
|
<h1 id="page-title">Experience</h1>
|
|
<h2 id="page-subtitle">by location</h2>
|
|
<?php
|
|
while ( have_posts() ) :
|
|
the_post();
|
|
?>
|
|
<div class="entry-content" id="taxonomy-description">
|
|
<?php the_content(); ?>
|
|
<div>
|
|
<a class="hyperlink-button" href="?view=countries">Countries</a>
|
|
<!--<a class="hyperlink-button" href="?view=regions">Regions</a>-->
|
|
<a class="hyperlink-button" href="?view=locations">Locations</a>
|
|
</div>
|
|
</div>
|
|
<?php endwhile; ?>
|
|
</div>
|
|
</header>
|
|
|
|
<?php
|
|
$locations = get_terms( 'location', array( 'hide_empty' => 0 ) );
|
|
// Gets all of the top-level location terms.
|
|
$terms = get_terms(
|
|
array(
|
|
'taxonomy' => 'location',
|
|
'term_args' => array( 'parent' => 0 ),
|
|
)
|
|
);
|
|
?>
|
|
|
|
<div id="primary" class="content-area">
|
|
<main id="company-main" class="site-main" role="main">
|
|
<div class="row">
|
|
<div id="map" style="height:100vh; width:100%;"></div>
|
|
</div>
|
|
<?php if ( ! empty( $locations ) ) : ?>
|
|
<?php if ( $_GET['view'] == 'countries' ) : ?>
|
|
<?php
|
|
$locationsSubset = array_filter(
|
|
$locations,
|
|
function ( $t ) {
|
|
return $t->parent != 0 && get_term( $t->parent, 'location' )->parent == 0;
|
|
}
|
|
);
|
|
?>
|
|
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
|
<script type="text/javascript">
|
|
google.charts.load('current', {'packages':['geochart']});
|
|
google.charts.setOnLoadCallback(drawMap);
|
|
|
|
function drawMap() {
|
|
var data = google.visualization.arrayToDataTable([
|
|
['Country'],
|
|
<?php foreach ( (array) $locationsSubset as $term ) : ?>
|
|
['<?php echo $term->description; ?>'],
|
|
<?php endforeach; ?>
|
|
]);
|
|
var options = {};
|
|
var chart = new google.visualization.GeoChart(document.getElementById('map'));
|
|
|
|
chart.draw(data, options);
|
|
}
|
|
</script>
|
|
<?php elseif ( $_GET['view'] == 'locations' ) : ?>
|
|
<?php
|
|
$locationsSubset = array_filter(
|
|
$locations,
|
|
function ( $t ) {
|
|
return $t->parent != 0 && get_term( $t->parent, 'location' )->parent != 0 && get_term( get_term( $t->parent, 'location' )->parent, 'location' )->parent != 0 && get_term( get_term( get_term( $t->parent, 'location' )->parent, 'location' )->parent, 'location' )->parent == 0;
|
|
}
|
|
);
|
|
?>
|
|
<script type="text/javascript">
|
|
var locations = [
|
|
<?php foreach ( (array) $locationsSubset as $term ) : ?>
|
|
{<?php echo $term->description; ?>},
|
|
<?php endforeach; ?>
|
|
]
|
|
|
|
function initMap() {
|
|
var map = new google.maps.Map(document.getElementById('map'), {
|
|
zoom: 3,
|
|
center: {lat: 51.483462, lng: 0.0586198}
|
|
});
|
|
|
|
// Create an array of alphabetical characters used to label the markers.
|
|
var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
|
// Add some markers to the map.
|
|
// Note: The code uses the JavaScript Array.prototype.map() method to
|
|
// create an array of markers based on a given "locations" array.
|
|
// The map() method here has nothing to do with the Google Maps API.
|
|
var markers = locations.map(function(location, i) {
|
|
return new google.maps.Marker({
|
|
position: location,
|
|
label: labels[i % labels.length]
|
|
});
|
|
});
|
|
|
|
// Add a marker clusterer to manage the markers.
|
|
var markerCluster = new MarkerClusterer(map, markers, {
|
|
imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
|
|
});
|
|
}
|
|
</script>
|
|
<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>
|
|
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBsMPnuCM59sC_n11CGxbpbqNY7FRUXnD0&callback=initMap"></script>
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
</main><!-- .site-main -->
|
|
</div><!-- .content-area -->
|
|
|
|
<?php get_footer(); ?>
|