@@ -0,0 +1,248 @@
{
"key": "group_56080f3711ebf",
"title": "CWOS Feature",
"fields": [
{
"key": "field_56080f49419ed",
"label": "Header Image",
"name": "header_image",
"type": "image",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "url",
"preview_size": "thumbnail",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": ""
},
{
"key": "field_56080faf419ee",
"label": "Flex Blocks",
"name": "cwos_flex_blocks",
"type": "flexible_content",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"button_label": "Add Content",
"min": "",
"max": "",
"layouts": [
{
"key": "56080fc61ae3c",
"name": "title_blocks",
"label": "Title Blocks",
"display": "block",
"sub_fields": [
{
"key": "field_560813eed3a25",
"label": "Banner Blocks",
"name": "banner_blocks",
"type": "repeater",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"min": "",
"max": "",
"layout": "block",
"button_label": "Add Another Block",
"sub_fields": [
{
"key": "field_56080ff4419ef",
"label": "Background Image",
"name": "bg_image",
"type": "image",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "url",
"preview_size": "thumbnail",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": ""
},
{
"key": "field_56081014419f0",
"label": "Title",
"name": "title",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": 50,
"class": "",
"id": ""
},
"default_value": "",
"placeholder": "",
"prepend": "",
"append": "",
"maxlength": "",
"readonly": 0,
"disabled": 0
},
{
"key": "field_5608105d419f1",
"label": "Link",
"name": "link",
"type": "url",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": 50,
"class": "",
"id": ""
},
"default_value": "",
"placeholder": ""
},
{
"key": "field_560810f1419f2",
"label": "Text Area",
"name": "text_area",
"type": "wysiwyg",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"tabs": "text",
"toolbar": "full",
"media_upload": 1
}
]
},
{
"key": "field_56081782c3bf0",
"label": "Number of Blocks",
"name": "block_number",
"type": "number",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": "",
"prepend": "",
"append": "",
"min": "",
"max": "",
"step": "",
"readonly": 0,
"disabled": 0
}
],
"min": "",
"max": ""
},
{
"key": "5608126c9bbe9",
"name": "content_block",
"label": "Content Block",
"display": "row",
"sub_fields": [
{
"key": "field_5608127e9bbea",
"label": "Title",
"name": "title",
"type": "text",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": "",
"prepend": "",
"append": "",
"maxlength": "",
"readonly": 0,
"disabled": 0
},
{
"key": "field_560812909bbeb",
"label": "WYSIWYG",
"name": "wysiwyg",
"type": "wysiwyg",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"tabs": "all",
"toolbar": "full",
"media_upload": 1
}
],
"min": "",
"max": ""
}
]
}
],
"location": [
[
{
"param": "page_template",
"operator": "==",
"value": "templates\/cwos-feature.php"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": 1,
"description": "",
"modified": 1443370917
}
@@ -0,0 +1,51 @@
{
"key": "group_56081d4cc0c2d",
"title": "Sponsors",
"fields": [
{
"key": "field_56081d6667ffb",
"label": "Connected Sponsors",
"name": "connected_sponsors",
"type": "relationship",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"post_type": [
"sponsors"
],
"taxonomy": [

],
"filters": [
"search"
],
"elements": "",
"min": "",
"max": "",
"return_format": "id"
}
],
"location": [
[
{
"param": "page_template",
"operator": "==",
"value": "templates\/cwos-feature.php"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": 1,
"description": "",
"modified": 1443372484
}
@@ -0,0 +1,120 @@
{
"key": "group_56082129af919",
"title": "CWOS Custom Attributes",
"fields": [
{
"key": "field_560821356ba18",
"label": "Primary Color",
"name": "primary_color",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": ""
},
{
"key": "field_560821486ba19",
"label": "Secondary Color",
"name": "secondary_color",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": ""
},
{
"key": "field_5608215f6ba1a",
"label": "Secondary Color Two",
"name": "secondary_color_two",
"type": "color_picker",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": ""
},
{
"key": "field_5608218a6ba1b",
"label": "CWOS Artists",
"name": "cwos_artists",
"type": "relationship",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"post_type": [
"artists"
],
"taxonomy": [

],
"filters": [
"search"
],
"elements": "",
"min": "",
"max": "",
"return_format": "id"
},
{
"key": "field_560821b06ba1c",
"label": "Background Pattern",
"name": "background_pattern",
"type": "image",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "url",
"preview_size": "thumbnail",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": ""
}
],
"location": [
[
{
"param": "options_page",
"operator": "==",
"value": "acf-options-cwos-opts"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": 1,
"description": "",
"modified": 1443373543
}
@@ -1,99 +1,30 @@
<?php get_header(); ?>

<div class="row content-container" data-equalizer>

<aside class="medium-3 columns left-col" data-equalizer-watch>

<form role="search" method="get" class="artist-search-form" action="<?php echo home_url( '/' ); ?>">
<label>
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
</label>
<input type="hidden" name="post_type" value="artists" />
</form>

<?php //echo do_shortcode( '[searchandfilter fields="search,post_types" post_types="artists" headings=""]' ); ?>
<?php echo do_shortcode('[ULWPQSF id=133]'); ?>

<div class="all-artist">
<div class="row">
<div class="small-12 columns">
<h4>Artists</h4>
</div>
</div>
<div class="row">
<div class="medium-2 columns alpha-container">
<ul class="no-bullet" id="alpha">
<li><div class="filter" data-filter="all">All</div></li>
<li><div class="filter" data-filter=".A">A</div></li>
<li><div class="filter" data-filter=".B">B</div></li>
<li><div class="filter" data-filter=".C">C</div></li>
<li><div class="filter" data-filter=".D">D</div></li>
<li><div class="filter" data-filter=".E">E</div></li>
<li><div class="filter" data-filter=".F">F</div></li>
<li><div class="filter" data-filter=".G">G</div></li>
<li><div class="filter" data-filter=".H">H</div></li>
<li><div class="filter" data-filter=".I">I</div></li>
<li><div class="filter" data-filter=".J">J</div></li>
<li><div class="filter" data-filter=".K">K</div></li>
<li><div class="filter" data-filter=".L">L</div></li>
<li><div class="filter" data-filter=".M">M</div></li>
<li><div class="filter" data-filter=".N">N</div></li>
<li><div class="filter" data-filter=".O">O</div></li>
<li><div class="filter" data-filter=".P">P</div></li>
<li><div class="filter" data-filter=".Q">Q</div></li>
<li><div class="filter" data-filter=".R">R</div></li>
<li><div class="filter" data-filter=".S">S</div></li>
<li><div class="filter" data-filter=".T">T</div></li>
<li><div class="filter" data-filter=".U">U</div></li>
<li><div class="filter" data-filter=".V">V</div></li>
<li><div class="filter" data-filter=".W">W</div></li>
<li><div class="filter" data-filter=".X">X</div></li>
<li><div class="filter" data-filter=".Y">Y</div></li>
<li><div class="filter" data-filter=".Z">Z</div></li>
</ul>
</div>
<div class="medium-10 columns artist-alpha-list">
<ul class="no-bullet" id="artist-Mixup">
<?php
$args = array (
'post_type' => 'artists',
'post_status' => 'publish',
'order' => 'ASC',
'orderby' => 'title',
);

// The Query
$all_artists = new WP_Query( $args );

// The Loop
if ( $all_artists->have_posts() ) {
while ( $all_artists->have_posts() ) {
$all_artists->the_post();
$letter = get_the_title(); ?>

<li class="mix <?php echo $letter[0]; ?>"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php }
} else {
// no posts found
}

// Restore original Post Data
wp_reset_postdata();
?>
</ul>
</div>
</div>
<?php

get_header(); ?>

<section class="page-banner-image" style="background-image: url(<?php the_field('_artist_arch_image', 'option'); ?>);">
<div class="row post-type-search">
<div class="medium-6 columns">
<h2>Aritst Directory</h2>
<form role="search" method="get" class="artist-search-form" action="<?php echo home_url( '/' ); ?>">
<label>
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search artists…', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
</label>
<input type="hidden" name="post_type" value="artists" />
</form>
</div>
</div>
</section>

</aside>
<?php get_template_part( 'partials/breadcrumbs' ); ?>

<main class="medium-9 columns main-col" data-equalizer-watch>
<div class="row content-container" data-equalizer>

<main class="medium-12 columns main-col" data-equalizer-watch>

<header>
<div class="row">
<div class="small-12 columns">
<img src="<?php the_field('_artist_arch_image', 'option'); ?>" alt="" class="header-text">
<?php the_field('_artist_pagetext', 'option'); ?>
</div>
</div>
@@ -103,73 +34,82 @@
</div>
</div>
</header>

<section class="recently-updated-artists">
<div class="row recently-updated">
<h4>recently updated</h4>
</div>
<ul class="medium-block-grid-4">
<?php
/// Loop for Getting Most Recently Updated Artists
$args = array (
'post_type' => 'artists',
'order' => 'ASC',
'orderby' => 'modified',
);

$updated_artists = new WP_Query( $args );

if ( $updated_artists->have_posts() ) {
while ( $updated_artists->have_posts() ) {
$updated_artists->the_post(); ?>

<li>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail(); ?>
</a>
</li>

<?php }
} else {
// no posts found
}

wp_reset_postdata();
?>
</ul>
</section>
<ul class="tabs" data-tab>
<li class="tab-title active"><a href="#panel1"><h4>All Artists</h4></a></li>
<li class="tab-title"><a href="#panel2"><h4>Alphabetical By Name</h4></a></li>
</ul>
<div class="tabs-content">
<div class="content active" id="panel1">
<section class="recently-updated-artists">
<?php if ( have_posts() ) : ?>

<ul class="medium-block-grid-4">
<?php while ( have_posts() ) : the_post();
$thumb_id = get_post_thumbnail_id();
$thumb_url = wp_get_attachment_image_src($thumb_id, 'large', true);
?>

<li>
<a href="<?php the_permalink(); ?>">
<div class="artist-thumb-container" style="background-image: url(<?php echo $thumb_url[0]; ?>);" >
</div>
<h4><?php the_title(); ?></h4>
</a>
</li>

<?php endwhile; ?>
</ul>
<?php else : ?>
<?php get_template_part( 'partials/content', 'none' ); ?>

<?php endif; // end have_posts() check ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ( function_exists('SimpleSpaceship_pagination') ) { SimpleSpaceship_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'SimpleSpaceship' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'SimpleSpaceship' ) ); ?></div>
</nav>
<?php } ?>
</section>
</div>
<div class="content" id="panel2">
<section class="alpha-artists">
<ul class="no-bullet">
<?php
$args = array (
'post_type' => array( 'artists' ),
'pagination' => true,
'posts_per_page' => '50',
'order' => 'ASC',
'orderby' => 'title',
);

// The Query
$alpha_artist = new WP_Query( $args );

// The Loop
if ( $alpha_artist->have_posts() ) {
while ( $alpha_artist->have_posts() ) {
$alpha_artist->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<h5><?php the_title(); ?></h5>
</a>
</li>
<?php }
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
?>
</ul>
</section>
</div>
</div>

</main>
</div>




<div class="row">
<!-- Row for main content area -->
<div class="small-12 large-12 columns" role="main">
<?php if ( have_posts() ) : ?>

<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>



<?php endwhile; ?>

<?php else : ?>
<?php get_template_part( 'partials/content', 'none' ); ?>

<?php endif; // end have_posts() check ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ( function_exists('SimpleSpaceship_pagination') ) { SimpleSpaceship_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'SimpleSpaceship' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'SimpleSpaceship' ) ); ?></div>
</nav>
<?php } ?>

</div>
</div>
<?php get_footer(); ?>
@@ -0,0 +1,28 @@
<?php get_header('cwos'); ?>
<div class="row">
<!-- Row for main content area -->
<div class="small-12 large-12 columns" role="main">

<?php if ( have_posts() ) : ?>

<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'partials/content', get_post_format() ); ?>
<?php endwhile; ?>

<?php else : ?>
<?php get_template_part( 'partials/content', 'none' ); ?>

<?php endif; // end have_posts() check ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ( function_exists('SimpleSpaceship_pagination') ) { SimpleSpaceship_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'SimpleSpaceship' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'SimpleSpaceship' ) ); ?></div>
</nav>
<?php } ?>

</div>
</div>
<?php get_footer(); ?>
@@ -1,79 +1,179 @@
<?php get_header(); ?>
<?php
global $post;
$opts = get_option('exhibition_options');
get_header(); ?>

<div class="row exhib-arch" data-equalizer>

<div class="medium-3 columns side-menu" data-equalizer-watch>
<div class="row">
<div class="medium-9 columns" data-equalizer-watch>
<ul class="no-bullet exhib-local-menu">
<?php
$args = array(
'show_option_all' => '',
'orderby' => 'ID',
'order' => 'ASC',
'style' => 'list',
'show_count' => 0,
'hide_empty' => 0,
'use_desc_for_title' => 1,
'child_of' => 0,
'feed' => '',
'feed_type' => '',
'feed_image' => '',
'exclude' => '',
'exclude_tree' => '',
'include' => '',
'hierarchical' => 1,
'title_li' => __( 'Exhibitions' ),
'show_option_none' => __( '' ),
'number' => null,
'echo' => 1,
'depth' => 0,
'current_category' => 0,
'pad_counts' => 0,
'taxonomy' => 'location',
'walker' => null
);
wp_list_categories( $args );
?>
</ul>
</div>
<div class="medium-3 columns yearly-menu-container" data-equalizer-watch>
<ul class="no-bullet yearly-menu">
<?php
$yearly = array(
'post_type' => 'exhibitions',
'type' => 'yearly',
'limit' => '',
'format' => 'html',
'before' => '',
'after' => '',
'show_post_count' => false,
'echo' => 1,
'order' => 'DESC'
);
wp_get_archives_cpt( $yearly ); ?>
</ul>
</div>
<section class="page-banner-image" style="background-image: url(<?php the_field('arch_banner_image', 'option'); ?>);">
<div class="row post-type-search">
<div class="medium-6 columns">
<h2>Exhibitions</h2>
<form role="search" method="get" class="artist-search-form" action="">
<label>
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search exhibitions', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
</label>
<input type="hidden" name="post_type" value="exhibitions" />
</form>
</div>
</div>
</section>

<section class="featured-exhib">
<header class="row">
<h3>Featured Exhibitions</h3>
</header>
<?php
// the query
$args = array (
'post_type' => array( 'exhibitions' ),
'pagination' => true,
'posts_per_page' => '3',
'order' => 'DES',
'orderby' => 'meta_value_num',
'post_status' => array( 'publish', 'future' ),
'meta_query' => array(
array(
'key' => '_exhib_start',
'type' => 'DATE',
'compare' => 'NOT LIKE',
),
),
);

<div class="medium-9 columns exhib-arch-main" data-equalizer-watch>
$the_query = new WP_Query( $args ); ?>

<?php if ( $the_query->have_posts() ) : ?>

<!-- the loop -->
<div class="row">
<ul class="medium-block-grid-3">
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php
// Get all the custom fields we need
global $post;
$start = get_post_meta( get_the_ID(), '_exhib_start', true );
$end = get_post_meta( get_the_ID(), '_exhib_end', true );
$press_release = get_post_meta( get_the_ID(), '_exhib_press_release', true );
$catalogue = get_post_meta( get_the_ID(), '_exhib_catalogue', true );
?>
<li>
<div class="row">
<?php if ( has_post_thumbnail() ): ?>
<div class="medium-12 columns">
<?php the_post_thumbnail('', array('class' => 'feature-img')); ?>
</div>
<?php endif; ?>
<div class="medium-12 columns">
<a href="<?php the_permalink(); ?>"><h4><?php the_title(); ?></h4></a>
<p class="start-end"><time class="start"><?php echo date('M j', $start); ?></time> - <time class="end"><?php echo date('M j', $end); ?></time></p>
<?php the_excerpt(); ?>
<?php the_tags( ); ?>
<?php the_terms( $post->ID, 'location', '<h5 class="exhib-location">Location: <span>', '</span></h5>' ); ?>
</div>
</div>
</li>
<?php endwhile; ?>
</ul>
</div>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>

<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
</section>

<div class="row exhib-arch">
<div class="medium-12 columns exhib-arch-main">
<div class="row">

<div class="large-12 columns exhib-archive-list">
<?php
// the query
$args = array (
'post_type' => array( 'exhibitions' ),
'offset' => '3',
'order' => 'DES',
'orderby' => 'meta_value_num',
'post_status' => array( 'publish', 'future' ),
'meta_query' => array(
array(
'key' => '_exhib_start',
'type' => 'DATE',
'compare' => 'NOT LIKE',
),
),
);

<div class="large-11 columns exhib-archive-list">
<?php if ( have_posts() ) : ?>
$the_query = new WP_Query( $args ); ?>

<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'partials/content', get_post_format() ); ?>
<?php endwhile; ?>
<?php if ( $the_query->have_posts() ) : ?>

<?php else : ?>
<?php get_template_part( 'partials/content', 'none' ); ?>
<!-- the loop -->
<div class="row">
<ul class="no-bullet>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php
// Get all the custom fields we need
global $post;
$start = get_post_meta( get_the_ID(), '_exhib_start', true );
$end = get_post_meta( get_the_ID(), '_exhib_end', true );
$press_release = get_post_meta( get_the_ID(), '_exhib_press_release', true );
$catalogue = get_post_meta( get_the_ID(), '_exhib_catalogue', true );
?>
<li>
<div class="row">
<?php if ( has_post_thumbnail() ): ?>
<div class="medium-5 columns">
<?php the_post_thumbnail('', array('class' => 'feature-img')); ?>
</div>
<?php endif; ?>
<div class="medium-7 columns">
<a href="<?php the_permalink(); ?>"><h4><?php the_title(); ?></h4></a>
<p class="start-end"><time class="start"><?php echo date('M j', $start); ?></time> - <time class="end"><?php echo date('M j', $end); ?></time></p>
<?php the_excerpt(); ?>
<?php the_tags( ); ?>
<?php the_terms( $post->ID, 'location', '<h5 class="exhib-location">Location: <span>', '</span></h5>' ); ?>
</div>
</div>
</li>
<?php endwhile; ?>
</ul>
</div>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>

<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
<?php /*
<ul class="no-bullet">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
// Get all the custom fields we need
global $post;
$start = get_post_meta( get_the_ID(), '_exhib_start', true );
$end = get_post_meta( get_the_ID(), '_exhib_end', true );
$press_release = get_post_meta( get_the_ID(), '_exhib_press_release', true );
$catalogue = get_post_meta( get_the_ID(), '_exhib_catalogue', true );
?>
<li>
<div class="row">
<?php if ( has_post_thumbnail() ): ?>
<div class="medium-5 columns">
<?php the_post_thumbnail('', array('class' => 'feature-img')); ?>
</div>
<?php endif; ?>
<div class="medium-7 columns">
<a href="<?php the_permalink(); ?>"><h4><?php the_title(); ?></h4></a>
<p class="start-end"><time class="start"><?php echo date('M j', $start); ?></time> - <time class="end"><?php echo date('M j', $end); ?></time></p>
<?php the_excerpt(); ?>
<?php the_tags( ); ?>
<?php the_terms( $post->ID, 'location', '<h5 class="exhib-location">Location: <span>', '</span></h5>' ); ?>
</div>
</div>
</li>
<?php endwhile; else : get_template_part( 'partials/content', 'none' ); ?>
<?php endif; // end have_posts() check ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
</ul>
*/ ?>
<?php if ( function_exists('SimpleSpaceship_pagination') ) { SimpleSpaceship_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'SimpleSpaceship' ) ); ?></div>
@@ -1,31 +1,27 @@
<?php
global $post;
$opts = get_option('flatfile_options');

get_header(); ?>
<div class="row content-container" data-equalizer>

<aside class="large-3 columns left-col" data-equalizer-watch>

<form method="get" action="<?php bloginfo('url'); ?>">
<div><label class="screen-reader-text" for="s">Search</label>
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
<input type="hidden" name="post_type" value="flatfiles">
<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>

<section class="filter-by">
<div class="row">
<h5 class="js-filter">Filter by</h5>
</div>
</section>
<section class="page-banner-image" style="background-image: url(<?php the_field('_artist_arch_image', 'option'); ?>);">
<div class="row post-type-search">
<div class="medium-6 columns">
<h2>Flatfiles</h2>
<form role="search" method="get" class="artist-search-form" action="">
<label>
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search flatfiles…', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
</label>
<input type="hidden" name="post_type" value="flatfiles" />
</form>
</div>
</div>
</section>

</aside>
<div class="row content-container" data-equalizer>

<div class="small-12 large-9 columns" role="main" data-equalizer-watch>
<div class="small-12 medium-12 columns" role="main" data-equalizer-watch>

<header class="row">
<img src="<?php echo $opts['main_image']; ?>" alt="Flatfiles">
<p><?php echo $opts['info']; ?></p>
</header>

@@ -1,12 +1,12 @@
{
"name": "isotope",
"version": "2.2.0",
"version": "2.2.2",
"description": "Filter and sort magical layouts",
"main": "js/isotope.js",
"dependencies": {
"get-size": "~1.2.2",
"matches-selector": ">=1 <2",
"outlayer": "~1.4.0",
"matches-selector": "~1.0.2",
"outlayer": "~1.4.1",
"masonry": "~3.3.0",
"fizzy-ui-utils": "~1.0.1"
},
@@ -33,11 +33,11 @@
"changelog.md"
],
"homepage": "https://github.com/metafizzy/isotope",
"_release": "2.2.0",
"_release": "2.2.2",
"_resolution": {
"type": "version",
"tag": "v2.2.0",
"commit": "3b5e1678893b9d6bdebf8b9854a7b921fdf5f6b8"
"tag": "v2.2.2",
"commit": "512c449e9086e1c118819916137b8b8c9620e905"
},
"_source": "git://github.com/metafizzy/isotope.git",
"_target": "*",
@@ -2,7 +2,7 @@

_Filter & sort magical layouts_

See [isotopejs.com](http://isotopejs.com) for complete docs and demos.
See [isotope.metafizzy.co](http://isotope.metafizzy.co) for complete docs and demos.

## Install

@@ -16,9 +16,9 @@ See [isotopejs.com](http://isotopejs.com) for complete docs and demos.
Link directly to [Isotope files on cdnjs](https://cdnjs.com/libraries/jquery.isotope).

``` html
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.isotope/2.1.1/isotope.pkgd.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.isotope/2.2.1/isotope.pkgd.js"></script>
<!-- or -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.isotope/2.1.1/isotope.pkgd.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.isotope/2.2.1/isotope.pkgd.min.js"></script>
```

### Package managers
@@ -41,40 +41,41 @@ If you are creating an open source application under a license compatible with t

## Initialize

### In JavaScript
With jQuery

``` js
// jQuery
$('#container').isotope({
$('.grid').isotope({
// options...
itemSelector: '.item',
itemSelector: '.grid-item',
masonry: {
columnWidth: 200
}
});
```

With vanilla JavaScript

``` js
// vanilla JS
var container = document.querySelector('#container');
var iso = new Isotope( container, {
var grid = document.querySelector('.grid');
var iso = new Isotope( grid, {
// options...
itemSelector: '.item',
itemSelector: '.grid-item',
masonry: {
columnWidth: 200
}
});
```

### In HTML
With HTML

Add a class of `js-isotope` to your element. Options can be set in JSON in `data-isotope-options`.

``` html
<div id="container" class="js-isotope"
data-isotope-options='{ "itemSelector": ".item", "masonry": { "columnWidth": 200 } }'>
<div class="item"></div>
<div class="item"></div>
<div class="grid js-isotope"
data-isotope-options='{ "itemSelector": ".grid-item", "masonry": { "columnWidth": 200 } }'>
<div class="grid-item"></div>
<div class="grid-item"></div>
...
</div>
```
@@ -1,12 +1,12 @@
{
"name": "isotope",
"version": "2.2.0",
"version": "2.2.2",
"description": "Filter and sort magical layouts",
"main": "js/isotope.js",
"dependencies": {
"get-size": "~1.2.2",
"matches-selector": ">=1 <2",
"outlayer": "~1.4.0",
"matches-selector": "~1.0.2",
"outlayer": "~1.4.1",
"masonry": "~3.3.0",
"fizzy-ui-utils": "~1.0.1"
},

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/*!
* Isotope v2.2.0
* Isotope v2.2.2
*
* Licensed GPLv3 for open source use
* or Isotope Commercial License for commercial use
@@ -222,7 +222,7 @@ var getText = docElem.textContent ?
var _this = this;
function arrangeParallelCallback() {
if ( isLayoutComplete && isHideComplete && isRevealComplete ) {
_this.emitEvent( 'arrangeComplete', [ _this.filteredItems ] );
_this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] );
}
}
this.once( 'layoutComplete', function() {
@@ -33,6 +33,6 @@
"commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
},
"_source": "git://github.com/jquery/jquery.git",
"_target": ">=1.6",
"_target": ">=1.7",
"_originalSource": "jquery"
}
@@ -1,6 +1,6 @@
{
"name": "masonry",
"version": "3.3.0",
"version": "3.3.2",
"description": "Cascading grid layout library",
"main": "masonry.js",
"dependencies": {
@@ -41,11 +41,11 @@
"globals",
"node"
],
"_release": "3.3.0",
"_release": "3.3.2",
"_resolution": {
"type": "version",
"tag": "v3.3.0",
"commit": "04a7364bebcc3d361f9e3c276c897a57d4609898"
"tag": "v3.3.2",
"commit": "48ed97fd2ebf0c126833bef6b29aff51781701e2"
},
"_source": "git://github.com/desandro/masonry.git",
"_target": "~3.3.0",
@@ -4,42 +4,65 @@ _Cascading grid layout library_

Masonry works by placing elements in optimal position based on available vertical space, sort of like a mason fitting stones in a wall. You’ve probably seen it in use all over the Internet.

For complete docs and demos, see [masonry.desandro.com](http://masonry.desandro.com) or [masonryjs.com](http://masonryjs.com) if you're lazy.
See [masonry.desandro.com](http://masonry.desandro.com) for complete docs and demos.

## Install

A packaged source file includes everything you need to use Masonry.
### Download

+ [masonry.pkgd.min.js](dist/masonry.pkgd.min.js)
+ [masonry.pkgd.js](dist/masonry.pkgd.js)
+ [masonry.pkgd.js](https://github.com/desandro/masonry/raw/master/dist/masonry.pkgd.js) un-minified, or
+ [masonry.pkgd.min.js](https://github.com/desandro/masonry/raw/master/dist/masonry.pkgd.min.js) minified

Or, if you're cool with the command line...
### CDN

Install with [Bower](http://bower.io): `bower install masonry`
Link directly to [Masonry files on cdnjs](https://cdnjs.com/libraries/masonry).

``` html
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.1/masonry.pkgd.js"></script>
<!-- or -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.1/masonry.pkgd.min.js"></script>
```

### Package managers

Bower: `bower install masonry --save`

[npm](https://www.npmjs.com/package/masonry-layout): `npm install masonry-layout --save`

[Install with npm](https://www.npmjs.org/package/masonry-layout) `npm install masonry-layout`

## Initialize

### In JavaScript
With jQuery

``` js
$('.grid').masonry({
// options...
itemSelector: '.grid-item',
columnWidth: 200
});
```

With vanilla JavaScript

``` js
var container = document.querySelector('#container');
var msnry = new Masonry( container, {
// vanilla JS
var grid = document.querySelector('.grid');
var msnry = new Masonry( grid, {
// options...
itemSelector: '.item',
itemSelector: '.grid-item',
columnWidth: 200
});
```

### In HTML
With HTML

Add a class of `js-masonry` to your element. Options can be set in JSON in `data-masonry-options`.

``` html
<div class="js-masonry" data-masonry-options='{ "itemSelector": ".item", "columnWidth": 200 }'>
<div class="item"></div>
<div class="item"></div>
<div class="grid js-masonry"
data-masonry-options='{ "itemSelector": ".grid-item", "columnWidth": 200 }'>
<div class="grid-item"></div>
<div class="grid-item"></div>
...
</div>
```
@@ -50,4 +73,4 @@ Masonry is released under the [MIT license](http://desandro.mit-license.org). Ha

* * *

Copyright :copyright: 2015 David DeSandro
Copyright 2015 David DeSandro
@@ -1,6 +1,6 @@
{
"name": "masonry",
"version": "3.3.0",
"version": "3.3.2",
"description": "Cascading grid layout library",
"main": "masonry.js",
"dependencies": {
@@ -1,8 +1,15 @@
# Changelog

### v3.3.1

+ Updated Outlayer v1.4.1
+ Added jQuery events
+ Fixed Safari layout and transition bugs. Fixed [#698](https://github.com/desandro/masonry/issues/698)

## v3.3.0

+ Added `percentPosition` option. Fixed [#574](https://github.com/desandro/masonry/issues/574)
+ Removed first `instance` argument from `layoutComplete` and `removeComplete` events
+ Added use of [fizzy-ui-utils](https://github.com/metafizzy/fizzy-ui-utils)

### v3.2.3
@@ -1,5 +1,5 @@
/*!
* Masonry PACKAGED v3.3.0
* Masonry PACKAGED v3.3.2
* Cascading grid layout library
* http://masonry.desandro.com
* MIT License
@@ -1633,14 +1633,19 @@ Item.prototype.getPosition = function() {
var layoutOptions = this.layout.options;
var isOriginLeft = layoutOptions.isOriginLeft;
var isOriginTop = layoutOptions.isOriginTop;
var x = parseInt( style[ isOriginLeft ? 'left' : 'right' ], 10 );
var y = parseInt( style[ isOriginTop ? 'top' : 'bottom' ], 10 );
var xValue = style[ isOriginLeft ? 'left' : 'right' ];
var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
// convert percent to pixels
var layoutSize = this.layout.size;
var x = xValue.indexOf('%') != -1 ?
( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 );
var y = yValue.indexOf('%') != -1 ?
( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 );

// clean up 'auto' or other non-integer values
x = isNaN( x ) ? 0 : x;
y = isNaN( y ) ? 0 : y;
// remove padding from measurement
var layoutSize = this.layout.size;
x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;

@@ -1660,10 +1665,8 @@ Item.prototype.layoutPosition = function() {
var xResetProperty = layoutOptions.isOriginLeft ? 'right' : 'left';

var x = this.position.x + layoutSize[ xPadding ];
// set in percentage
x = layoutOptions.percentPosition && !layoutOptions.isHorizontal ?
( ( x / layoutSize.width ) * 100 ) + '%' : x + 'px';
style[ xProperty ] = x;
// set in percentage or pixels
style[ xProperty ] = this.getXValue( x );
// reset other property
style[ xResetProperty ] = '';

@@ -1673,26 +1676,26 @@ Item.prototype.layoutPosition = function() {
var yResetProperty = layoutOptions.isOriginTop ? 'bottom' : 'top';

var y = this.position.y + layoutSize[ yPadding ];
// set in percentage
y = layoutOptions.percentPosition && layoutOptions.isHorizontal ?
( ( y / layoutSize.height ) * 100 ) + '%' : y + 'px';
style[ yProperty ] = y;
// set in percentage or pixels
style[ yProperty ] = this.getYValue( y );
// reset other property
style[ yResetProperty ] = '';

this.css( style );
this.emitEvent( 'layout', [ this ] );
};

Item.prototype.getXValue = function( x ) {
var layoutOptions = this.layout.options;
return layoutOptions.percentPosition && !layoutOptions.isHorizontal ?
( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
};

// transform translate function
var translate = is3d ?
function( x, y ) {
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
} :
function( x, y ) {
return 'translate(' + x + 'px, ' + y + 'px)';
};
Item.prototype.getYValue = function( y ) {
var layoutOptions = this.layout.options;
return layoutOptions.percentPosition && layoutOptions.isHorizontal ?
( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
};


Item.prototype._transitionTo = function( x, y ) {
@@ -1717,11 +1720,7 @@ Item.prototype._transitionTo = function( x, y ) {
var transX = x - curX;
var transY = y - curY;
var transitionStyle = {};
// flip cooridinates if origin on right or bottom
var layoutOptions = this.layout.options;
transX = layoutOptions.isOriginLeft ? transX : -transX;
transY = layoutOptions.isOriginTop ? transY : -transY;
transitionStyle.transform = translate( transX, transY );
transitionStyle.transform = this.getTranslate( transX, transY );

this.transition({
to: transitionStyle,
@@ -1732,6 +1731,19 @@ Item.prototype._transitionTo = function( x, y ) {
});
};

Item.prototype.getTranslate = function( x, y ) {
// flip cooridinates if origin on right or bottom
var layoutOptions = this.layout.options;
x = layoutOptions.isOriginLeft ? x : -x;
y = layoutOptions.isOriginTop ? y : -y;

if ( is3d ) {
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
}

return 'translate(' + x + 'px, ' + y + 'px)';
};

// non transition + transform support
Item.prototype.goTo = function( x, y ) {
this.setPosition( x, y );
@@ -1811,28 +1823,36 @@ Item.prototype._transition = function( args ) {

};

var itemTransitionProperties = transformProperty && ( utils.toDashed( transformProperty ) +
',opacity' );
// dash before all cap letters, including first for
// WebkitTransform => -webkit-transform
function toDashedAll( str ) {
return str.replace( /([A-Z])/g, function( $1 ) {
return '-' + $1.toLowerCase();
});
}

var transitionProps = 'opacity,' +
toDashedAll( vendorProperties.transform || 'transform' );

Item.prototype.enableTransition = function(/* style */) {
// only enable if not already transitioning
// bug in IE10 were re-setting transition style will prevent
// transitionend event from triggering
// HACK changing transitionProperty during a transition
// will cause transition to jump
if ( this.isTransitioning ) {
return;
}

// make transition: foo, bar, baz from style object
// TODO uncomment this bit when IE10 bug is resolved
// var transitionValue = [];
// make `transition: foo, bar, baz` from style object
// HACK un-comment this when enableTransition can work
// while a transition is happening
// var transitionValues = [];
// for ( var prop in style ) {
// // dash-ify camelCased properties like WebkitTransition
// transitionValue.push( toDash( prop ) );
// prop = vendorProperties[ prop ] || prop;
// transitionValues.push( toDashedAll( prop ) );
// }
// enable transition styles
// HACK always enable transform,opacity for IE10
this.css({
transitionProperty: itemTransitionProperties,
transitionProperty: transitionProps,
transitionDuration: this.layout.options.transitionDuration
});
// listen for transition end event
@@ -2035,7 +2055,7 @@ return Item;
}));

/*!
* Outlayer v1.4.0
* Outlayer v1.4.2
* the brains and guts of a layout library
* MIT license
*/
@@ -2450,7 +2470,7 @@ Outlayer.prototype._setContainerMeasure = function( measure, isWidth ) {
Outlayer.prototype._emitCompleteOnItems = function( eventName, items ) {
var _this = this;
function onComplete() {
_this.emitEvent( eventName + 'Complete', [ items ] );
_this.dispatchEvent( eventName + 'Complete', null, [ items ] );
}

var count = items.length;
@@ -2474,6 +2494,32 @@ Outlayer.prototype._emitCompleteOnItems = function( eventName, items ) {
}
};

/**
* emits events via eventEmitter and jQuery events
* @param {String} type - name of event
* @param {Event} event - original event
* @param {Array} args - extra arguments
*/
Outlayer.prototype.dispatchEvent = function( type, event, args ) {
// add original event to arguments
var emitArgs = event ? [ event ].concat( args ) : args;
this.emitEvent( type, emitArgs );

if ( jQuery ) {
// set this.$element
this.$element = this.$element || jQuery( this.element );
if ( event ) {
// create jQuery event
var $event = jQuery.Event( event );
$event.type = type;
this.$element.trigger( $event, args );
} else {
// just trigger with type if no event available
this.$element.trigger( type, args );
}
}
};

// -------------------------- ignore & stamps -------------------------- //


@@ -2936,7 +2982,7 @@ return Outlayer;


/*!
* Masonry v3.3.0
* Masonry v3.3.2
* Cascading grid layout library
* http://masonry.desandro.com
* MIT License

Large diffs are not rendered by default.

@@ -1,5 +1,5 @@
/*!
* Masonry v3.3.0
* Masonry v3.3.2
* Cascading grid layout library
* http://masonry.desandro.com
* MIT License
@@ -0,0 +1,110 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">

<title>add items</title>

<style>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}

.grid {
background: #DDD;
}

/* clearfix */
.grid:after {
display: block;
content: '';
clear: both;
}


.grid-sizer,
.grid-item {
width: 25%;
}

.grid-item {
border: 1px solid;
background: #09F;
height: 100px;
}

.grid-item--width2 { width: 50%; }

.grid-item--height2 { height: 160px; }

.grid-item--height3 { height: 220px; }

</style>

</head>
<body>

<h1>add items</h1>

<p>
<button class="prepend-button">Prepend button</button>
<button class="append-button">Append button</button>
</p>

<div class="grid">
<div class="grid-sizer"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--height2"></div>
</div>


<script src="../bower_components/eventEmitter/EventEmitter.js"></script>
<script src="../bower_components/eventie/eventie.js"></script>
<script src="../bower_components/doc-ready/doc-ready.js"></script>
<script src="../bower_components/get-style-property/get-style-property.js"></script>
<script src="../bower_components/get-size/get-size.js"></script>
<script src="../bower_components/jquery-bridget/jquery.bridget.js"></script>
<script src="../bower_components/matches-selector/matches-selector.js"></script>
<script src="../bower_components/fizzy-ui-utils/utils.js"></script>
<script src="../bower_components/outlayer/item.js"></script>
<script src="../bower_components/outlayer/outlayer.js"></script>

<script src="../masonry.js"></script>

<script>
function getItemElement() {
var elem = document.createElement('div');
var wRand = Math.random();
var hRand = Math.random();
var widthClass = wRand > 0.8 ? 'grid-item--width3' :
wRand > 0.6 ? 'grid-item--width2' : '';
var heightClass = hRand > 0.8 ? 'grid-item--height3' :
hRand > 0.5 ? 'grid-item--height2' : '';
elem.className = 'grid-item ' + widthClass + ' ' + heightClass;
return elem;
};

docReady( function() {
var msnry = window.msnry = new Masonry( '.grid', {
columnWidth: '.grid-sizer',
percentPosition: true
});

document.querySelector('.prepend-button').addEventListener( 'click', function() {
var itemElem = getItemElement();
msnry.element.insertBefore( itemElem, msnry.element.firstChild );
msnry.prepended( itemElem );
});

document.querySelector('.append-button').addEventListener( 'click', function() {
var itemElem = getItemElement();
msnry.element.appendChild( itemElem );
msnry.appended( itemElem );
});

});
</script>

</body>
</html>
@@ -0,0 +1,89 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">

<title>fluid</title>

<style>
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}

.grid {
background: #DDD;
}

/* clearfix */
.grid:after {
display: block;
content: '';
clear: both;
}


.grid-sizer,
.grid-item {
width: 25%;
}

.grid-item {
border: 1px solid;
background: #09F;
height: 100px;
}

.grid-item--width2 { width: 50%; }

.grid-item--height2 { height: 160px; }

.grid-item--height3 { height: 220px; }

</style>

</head>
<body>

<h1>fluid</h1>

<div class="grid">
<div class="grid-sizer"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height3"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--height3"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>


<script src="../bower_components/eventEmitter/EventEmitter.js"></script>
<script src="../bower_components/eventie/eventie.js"></script>
<script src="../bower_components/doc-ready/doc-ready.js"></script>
<script src="../bower_components/get-style-property/get-style-property.js"></script>
<script src="../bower_components/get-size/get-size.js"></script>
<script src="../bower_components/jquery-bridget/jquery.bridget.js"></script>
<script src="../bower_components/matches-selector/matches-selector.js"></script>
<script src="../bower_components/fizzy-ui-utils/utils.js"></script>
<script src="../bower_components/outlayer/item.js"></script>
<script src="../bower_components/outlayer/outlayer.js"></script>

<script src="../masonry.js"></script>

<script>
docReady( function() {
window.msnry = new Masonry( '.grid', {
columnWidth: '.grid-sizer',
percentPosition: true
});
});
</script>

</body>
</html>
@@ -0,0 +1,43 @@
{
"name": "minigrid",
"main": "index.js",
"version": "1.6.3",
"homepage": "http://alves.im/minigrid",
"authors": [
"Henrique Alves <henriquea@gmail.com>"
],
"description": "Minimal 2kb zero dependency cascading grid layout",
"moduleType": [
"amd",
"globals",
"node"
],
"keywords": [
"layout",
"grid",
"min",
"mini",
"minigrid",
"minimal",
"javascript",
"responsive"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"_release": "1.6.3",
"_resolution": {
"type": "version",
"tag": "v1.6.3",
"commit": "c2ca9e986777fb554e77594552c8f276c9268311"
},
"_source": "git://github.com/henriquea/minigrid.git",
"_target": "~1.6.3",
"_originalSource": "minigrid",
"_direct": true
}
@@ -0,0 +1,21 @@
**Be nice** 😎

Bare in mind that minigrid's main concept is simplicity. The goal is to keep the API always at 2kb. Bug fixes are more than welcome! For any new feature please [submit an issue](https://github.com/henriquea/minigrid/issues) first before send any pull request.

Thank you all! 🍺

## Tests

All commits need pass the tests `npm run test`.

Install browserify and testling globally.

```bash
$ npm install
$ npm install browserify -g
$ npm install testling -g
```

## Build

The build task `npm run build` runs the tests and does the minification.
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2015 Henrique Alves

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@@ -0,0 +1,111 @@
![icon](http://alves.im/minigrid/assets/favicon-32x32.png)

Minigrid is a minimal 2kb zero dependency cascading grid layout.

**[Demo](http://alves.im/minigrid/)**

## Install

`npm install minigrid`

Using Bower:

`bower install minigrid`

## Usage

```html
<div class="grid">
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
```

```js
var grid = require('minigrid');
grid('.grid', '.grid-item');
```

## API

### `minigrid(gridContainer, itemSelector, gutter, animate, done)`

- **gridContainer** - `string`|`node`: required. The element selector or element where your grid items sit.
- **itemSelector** - `string`: required. The grid item element selector.
- **gutter** - `number`: optional. The space between items, the default is `6`.
- **animate(element, x, y, index)** - `function`: optional.
- **done(nodeList)** - `function`: optional. Callback called after the grid is built. It returns the node list of grid items.

#### `animate`

It returns a function with the `element`,`x`,`y` and `index` parameters for each grid item.

```js
function animate(el, x, y, index) {
// Use your favourite library for animate the element
}
minigrid('.grid', '.grid-item', 6, animate);
```

## Responsiveness

minigrid is dead-simple and doesn't provide anything in-the-box but you can do:

```js
window.addEventListener('resize', function(){
minigrid('.grid', '.grid-item');
});
```

[Demo](http://output.jsbin.com/maroda/9/)

## Animation

The simple solution is to add a CSS `transition` in your grid item:

```css
.grid-item {
transition: .3s ease-in-out;
}
```

[Demo](http://output.jsbin.com/maroda/10/)

Or take it to the next level by using your favourite library. The example bellow is using the awesome [Dynamics.js](http://dynamicsjs.com) library:

```js
function animate(item, x, y, index) {
dynamics.animate(item, {
translateX: x,
translateY: y
}, {
type: dynamics.spring,
duration: 800,
frequency: 120,
delay: 100 + index * 30
});
}
minigrid('.grid', '.grid-item', 6, animate);
```
[Demo](http://output.jsbin.com/maroda/11/)

## Limitations

Minigrid won't fit all cases. It was done having in mind "cards" with same width and different heights. It won't work if your grid item has different width sizes.

If you need more control I'd recommend [Isotope](http://isotope.metafizzy.co).

## Built with Minigrid

Please [let me know](https://twitter.com/healves82) where are you using Minigrid.

## Contributing

Plese see [CONTRIBUTING](CONTRIBUTING.md).

## License

MIT &copy; 2015 [Henrique Alves](http://alves.im)
@@ -0,0 +1,33 @@
{
"name": "minigrid",
"main": "index.js",
"version": "1.6.3",
"homepage": "http://alves.im/minigrid",
"authors": [
"Henrique Alves <henriquea@gmail.com>"
],
"description": "Minimal 2kb zero dependency cascading grid layout",
"moduleType": [
"amd",
"globals",
"node"
],
"keywords": [
"layout",
"grid",
"min",
"mini",
"minigrid",
"minimal",
"javascript",
"responsive"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
@@ -0,0 +1,80 @@
/* @license minigrid v1.6.3 - minimal cascading grid layout http://alves.im/minigrid */
(function(exports){

'use strict';

var transformProp;
(function () {
var style = document.createElement('a').style;
var prop;
if (style[prop = 'webkitTransform'] !== undefined) {
transformProp = prop;
}
if (style[prop = 'msTransform'] !== undefined) {
transformProp = prop;
}
if (style[prop = 'transform'] !== undefined) {
transformProp = prop;
}
} ());

function minigrid(gridContainer, itemSelector, gutter, animate, done) {
var forEach = Array.prototype.forEach;
var containerEle = gridContainer instanceof Node ? gridContainer : document.querySelector(gridContainer);
if (!containerEle) { return false; }
var itemsNodeList = containerEle.querySelectorAll(itemSelector);
if (itemsNodeList.length === 0) { return false; }
gutter = (typeof gutter === "number" && isFinite(gutter)
&& Math.floor(gutter) === gutter) ? gutter : 6;
containerEle.style.width = '';
var containerWidth = containerEle.getBoundingClientRect().width;
var firstChildWidth = itemsNodeList[0].getBoundingClientRect().width + gutter;
var cols = Math.max(Math.floor((containerWidth - gutter) / firstChildWidth), 1);
var count = 0;
containerWidth = (firstChildWidth * cols + gutter) + 'px';
containerEle.style.width = containerWidth;
containerEle.style.position = 'relative';

for (var itemsGutter = [], itemsPosX = [], g = 0; g < cols; g++) {
itemsPosX.push(g * firstChildWidth + gutter);
itemsGutter.push(gutter);
}

forEach.call(itemsNodeList, function(item){
var itemIndex = itemsGutter.slice(0).sort(function (a, b) {
return a - b;
}).shift();
itemIndex = itemsGutter.indexOf(itemIndex);
var posX = itemsPosX[itemIndex];
var posY = itemsGutter[itemIndex];
item.style.position = 'absolute';
if (!animate && transformProp) {
item.style[transformProp] = 'translate3D(' + posX + 'px,' + posY + 'px,0)';
}
itemsGutter[itemIndex] += item.getBoundingClientRect().height + gutter;
count = count + 1;
if (animate) {
return animate(item, posX, posY, count);
}
});

var containerHeight = itemsGutter.slice(0).sort(function (a, b) {
return a - b;
}).pop();

containerEle.style.height = containerHeight + 'px';

if (typeof done === 'function'){
done(itemsNodeList);
}
}

if (typeof define === 'function' && define.amd) {
define(function() { return minigrid; });
} else if (typeof module !== 'undefined' && module.exports) {
module.exports = minigrid;
} else {
exports.minigrid = minigrid;
}

})(this);
@@ -0,0 +1,39 @@
{
"name": "minigrid",
"version": "1.6.3",
"description": "Minimal 2kb zero dependency cascading grid layout",
"main": "index.js",
"scripts": {
"uglify": "uglifyjs --comments -m -c -o minigrid.min.js index.js",
"test": "browserify test.js | tape-run",
"build": "npm run test && npm run uglify"
},
"repository": {
"type": "git",
"url": "git+https://github.com/henriquea/minigrid.git"
},
"keywords": [
"min",
"mini",
"grid",
"minigrid",
"cascading",
"layout",
"javascript",
"minimal",
"responsive"
],
"author": "Henrique Alves <henriquea@gmail.com> (http://alves.im)",
"license": "MIT",
"bugs": {
"url": "https://github.com/henriquea/minigrid/issues"
},
"homepage": "http://alves.im/minigrid",
"devDependencies": {
"phantomjs": "1.9.2-6",
"browserify": "^11.0.1",
"tape": "^4.0.2",
"tape-run": "^1.1.0",
"uglify-js": "^2.4.24"
}
}
@@ -0,0 +1,28 @@
'use restrict';

var minigrid = require('./');
var test = require('tape');

test('minigrid init with empty container', function(t){
t.equal(minigrid('.grid', '.grid-item'), false, 'return false');
t.end();
});

test('minigrid init with empty node list', function(t){
t.equal(minigrid('.grid', '.grid-item'), false, 'return false');
t.end();
});

test('minigrid done callback', function(t){
var grid = document.createElement('div');
grid.classList.add('grid');
document.body.appendChild(grid);
var gridItem = document.createElement('div');
gridItem.classList.add('grid-item');
grid.appendChild(gridItem);
minigrid('.grid', '.grid-item', 6, null, function(nodeList){
t.equal(typeof nodeList.length, 'number', 'nodeList.lenght is number');
t.equal(nodeList.length > 0, true, nodeList.length + ' grid items');
t.end();
});
});
@@ -1,6 +1,6 @@
{
"name": "outlayer",
"version": "1.4.0",
"version": "1.4.2",
"description": "the brains and guts of a layout library",
"main": "outlayer.js",
"dependencies": {
@@ -45,11 +45,11 @@
"isotope"
],
"license": "MIT",
"_release": "1.4.0",
"_release": "1.4.2",
"_resolution": {
"type": "version",
"tag": "v1.4.0",
"commit": "d6112741a7853de99530d2aa3911c26325b8a8cb"
"tag": "v1.4.2",
"commit": "c2d5e67fa6b4e716591ac11fa2d27494bdfc1733"
},
"_source": "git://github.com/metafizzy/outlayer.git",
"_target": "~1.4.0",
@@ -1,6 +1,6 @@
{
"name": "outlayer",
"version": "1.4.0",
"version": "1.4.2",
"description": "the brains and guts of a layout library",
"main": "outlayer.js",
"dependencies": {
@@ -162,14 +162,19 @@ Item.prototype.getPosition = function() {
var layoutOptions = this.layout.options;
var isOriginLeft = layoutOptions.isOriginLeft;
var isOriginTop = layoutOptions.isOriginTop;
var x = parseInt( style[ isOriginLeft ? 'left' : 'right' ], 10 );
var y = parseInt( style[ isOriginTop ? 'top' : 'bottom' ], 10 );
var xValue = style[ isOriginLeft ? 'left' : 'right' ];
var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
// convert percent to pixels
var layoutSize = this.layout.size;
var x = xValue.indexOf('%') != -1 ?
( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 );
var y = yValue.indexOf('%') != -1 ?
( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 );

// clean up 'auto' or other non-integer values
x = isNaN( x ) ? 0 : x;
y = isNaN( y ) ? 0 : y;
// remove padding from measurement
var layoutSize = this.layout.size;
x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;

@@ -189,10 +194,8 @@ Item.prototype.layoutPosition = function() {
var xResetProperty = layoutOptions.isOriginLeft ? 'right' : 'left';

var x = this.position.x + layoutSize[ xPadding ];
// set in percentage
x = layoutOptions.percentPosition && !layoutOptions.isHorizontal ?
( ( x / layoutSize.width ) * 100 ) + '%' : x + 'px';
style[ xProperty ] = x;
// set in percentage or pixels
style[ xProperty ] = this.getXValue( x );
// reset other property
style[ xResetProperty ] = '';

@@ -202,26 +205,26 @@ Item.prototype.layoutPosition = function() {
var yResetProperty = layoutOptions.isOriginTop ? 'bottom' : 'top';

var y = this.position.y + layoutSize[ yPadding ];
// set in percentage
y = layoutOptions.percentPosition && layoutOptions.isHorizontal ?
( ( y / layoutSize.height ) * 100 ) + '%' : y + 'px';
style[ yProperty ] = y;
// set in percentage or pixels
style[ yProperty ] = this.getYValue( y );
// reset other property
style[ yResetProperty ] = '';

this.css( style );
this.emitEvent( 'layout', [ this ] );
};

Item.prototype.getXValue = function( x ) {
var layoutOptions = this.layout.options;
return layoutOptions.percentPosition && !layoutOptions.isHorizontal ?
( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
};

// transform translate function
var translate = is3d ?
function( x, y ) {
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
} :
function( x, y ) {
return 'translate(' + x + 'px, ' + y + 'px)';
};
Item.prototype.getYValue = function( y ) {
var layoutOptions = this.layout.options;
return layoutOptions.percentPosition && layoutOptions.isHorizontal ?
( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
};


Item.prototype._transitionTo = function( x, y ) {
@@ -246,11 +249,7 @@ Item.prototype._transitionTo = function( x, y ) {
var transX = x - curX;
var transY = y - curY;
var transitionStyle = {};
// flip cooridinates if origin on right or bottom
var layoutOptions = this.layout.options;
transX = layoutOptions.isOriginLeft ? transX : -transX;
transY = layoutOptions.isOriginTop ? transY : -transY;
transitionStyle.transform = translate( transX, transY );
transitionStyle.transform = this.getTranslate( transX, transY );

this.transition({
to: transitionStyle,
@@ -261,6 +260,19 @@ Item.prototype._transitionTo = function( x, y ) {
});
};

Item.prototype.getTranslate = function( x, y ) {
// flip cooridinates if origin on right or bottom
var layoutOptions = this.layout.options;
x = layoutOptions.isOriginLeft ? x : -x;
y = layoutOptions.isOriginTop ? y : -y;

if ( is3d ) {
return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
}

return 'translate(' + x + 'px, ' + y + 'px)';
};

// non transition + transform support
Item.prototype.goTo = function( x, y ) {
this.setPosition( x, y );
@@ -340,28 +352,36 @@ Item.prototype._transition = function( args ) {

};

var itemTransitionProperties = transformProperty && ( utils.toDashed( transformProperty ) +
',opacity' );
// dash before all cap letters, including first for
// WebkitTransform => -webkit-transform
function toDashedAll( str ) {
return str.replace( /([A-Z])/g, function( $1 ) {
return '-' + $1.toLowerCase();
});
}

var transitionProps = 'opacity,' +
toDashedAll( vendorProperties.transform || 'transform' );

Item.prototype.enableTransition = function(/* style */) {
// only enable if not already transitioning
// bug in IE10 were re-setting transition style will prevent
// transitionend event from triggering
// HACK changing transitionProperty during a transition
// will cause transition to jump
if ( this.isTransitioning ) {
return;
}

// make transition: foo, bar, baz from style object
// TODO uncomment this bit when IE10 bug is resolved
// var transitionValue = [];
// make `transition: foo, bar, baz` from style object
// HACK un-comment this when enableTransition can work
// while a transition is happening
// var transitionValues = [];
// for ( var prop in style ) {
// // dash-ify camelCased properties like WebkitTransition
// transitionValue.push( toDash( prop ) );
// prop = vendorProperties[ prop ] || prop;
// transitionValues.push( toDashedAll( prop ) );
// }
// enable transition styles
// HACK always enable transform,opacity for IE10
this.css({
transitionProperty: itemTransitionProperties,
transitionProperty: transitionProps,
transitionDuration: this.layout.options.transitionDuration
});
// listen for transition end event
@@ -1,5 +1,5 @@
/*!
* Outlayer v1.4.0
* Outlayer v1.4.2
* the brains and guts of a layout library
* MIT license
*/
@@ -414,7 +414,7 @@ Outlayer.prototype._setContainerMeasure = function( measure, isWidth ) {
Outlayer.prototype._emitCompleteOnItems = function( eventName, items ) {
var _this = this;
function onComplete() {
_this.emitEvent( eventName + 'Complete', [ items ] );
_this.dispatchEvent( eventName + 'Complete', null, [ items ] );
}

var count = items.length;
@@ -438,6 +438,32 @@ Outlayer.prototype._emitCompleteOnItems = function( eventName, items ) {
}
};

/**
* emits events via eventEmitter and jQuery events
* @param {String} type - name of event
* @param {Event} event - original event
* @param {Array} args - extra arguments
*/
Outlayer.prototype.dispatchEvent = function( type, event, args ) {
// add original event to arguments
var emitArgs = event ? [ event ].concat( args ) : args;
this.emitEvent( type, emitArgs );

if ( jQuery ) {
// set this.$element
this.$element = this.$element || jQuery( this.element );
if ( event ) {
// create jQuery event
var $event = jQuery.Event( event );
$event.type = type;
this.$element.trigger( $event, args );
} else {
// just trigger with type if no event available
this.$element.trigger( type, args );
}
}
};

// -------------------------- ignore & stamps -------------------------- //


@@ -6,7 +6,7 @@
"slick/slick-theme.css",
"slick/fonts/*"
],
"version": "1.5.5",
"version": "1.5.8",
"homepage": "https://github.com/kenwheeler/slick",
"authors": [
"Ken Wheeler <ken_wheeler@me.com>"
@@ -29,14 +29,13 @@
"dependencies": {
"jquery": ">=1.7"
},
"_release": "1.5.5",
"_release": "1.5.8",
"_resolution": {
"type": "version",
"tag": "1.5.5",
"commit": "f73f1e4647c5c4d3fd7ed6c5efea64c10340d2e3"
"tag": "1.5.8",
"commit": "66a9ee8f01a0d8e56f959b17ce70ed1a27ebfdee"
},
"_source": "git://github.com/kenwheeler/slick.git",
"_target": "~1.5.5",
"_originalSource": "slick.js",
"_direct": true
"_originalSource": "slick.js"
}
@@ -7,6 +7,7 @@

+ A test case clearly demonstrates the bug or issue.
+ It contains the bare minimum HTML, CSS, and JavaScript required to demonstrate the bug.
+ Assets are not minified (we cannot debug .min.js files).
+ A link to your production site is **not** a reduced test case.

Providing a test case is the best way to get your issue addressed. Without a test case; your issue may be closed.
@@ -16,23 +16,23 @@ CDN hosted slick is a great way to get set up quick:
In your ```<head>``` add:

````
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.8/slick.css"/>
// Add the slick-theme.css if you want default styling
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick-theme.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.8/slick-theme.css"/>
````

Then, before your closing ```<body>``` tag add:

```
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.slick/1.5.8/slick.min.js"></script>
```

#### Package Managers

````
//Bower
bower install --save slick.js
bower install --save slick-carousel
//NPM
npm install slick-carousel
@@ -105,6 +105,7 @@ vertical | boolean | false | Vertical slide direction
verticalSwiping | boolean | false | Changes swipe direction to vertical
rtl | boolean | false | Change the slider's direction to become right-to-left
waitForAnimate | boolean | true | Ignores requests to advance the slide while animating
zIndex | number | 1000 | Set the zIndex values for slides, useful for IE9 and lower

### Events

@@ -133,6 +134,7 @@ Event | Params | Description
afterChange | event, slick, currentSlide | After slide change callback
beforeChange | event, slick, currentSlide, nextSlide | Before slide change callback
breakpoint | event, slick, breakpoint | Fires after a breakpoint is hit
destroy | event, slick | When slider is destroyed, or unslicked.
edge | event, slick, direction | Fires when an edge is overscrolled in non-infinite mode.
init | event, slick | When Slick initializes for the first time callback
reInit | event, slick | Every time Slick (re-)initializes callback
@@ -1,7 +1,7 @@
{
"name": "slick-carousel",
"main": ["slick/slick.min.js", "slick/slick.css", "slick/slick-theme.css", "slick/fonts/*"],
"version": "1.5.5",
"version": "1.5.8",
"homepage": "https://github.com/kenwheeler/slick",
"authors": [
"Ken Wheeler <ken_wheeler@me.com>"
@@ -2,7 +2,7 @@
"name": "slick",
"repo": "kenwheeler/slick",
"description": "the last carousel you'll ever need",
"version": "1.5.5",
"version": "1.5.8",
"keywords": ["ui", "jquery", "carousel", "responsive", "slider"],
"dependencies": {
"component/jquery": "*"
@@ -1,6 +1,6 @@
{
"name": "slick-carousel",
"version": "1.5.5",
"version": "1.5.8",
"description": "the last carousel you'll ever need",
"main": "slick/slick.js",
"repository": {
@@ -9,7 +9,7 @@
"touch",
"mobile"
],
"version": "1.5.5",
"version": "1.5.8",
"author": {
"name": "Ken Wheeler",
"url": "http://kenwheeler.github.io"
@@ -113,4 +113,7 @@
height: auto;

border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -93,4 +93,7 @@
height: auto;
border: 1px solid transparent;
}
}
.slick-arrow.slick-hidden {
display: none;
}

Large diffs are not rendered by default.

@@ -1,4 +1,3 @@
</section>
<section class="footer-border">
<div class="row">
<ul class="sub-nav">
@@ -27,11 +27,13 @@ function theme_enqueue_styles() {

wp_register_script( 'masonry', get_template_directory_uri() . '/bower_components/masonry/dist/masonry.pkgd.min.js', array('jquery'), '3.0.0', true );
wp_register_script( 'slick', get_stylesheet_directory_uri() . '/js/slick/slick.min.js', array('jquery'), '1.5.5', true );
wp_register_script( 'minigrid', get_stylesheet_directory_uri() . '/bower_components/minigrid/minigrid.min.js', array('jquery'), '1.6.3', true );

wp_enqueue_script( 'masonry' );

if( is_page_template( 'templates/home.php' )) {
if( is_page_template( 'templates/home.php' ) || is_singular('exhibitions')) {
wp_enqueue_script('slick');
wp_enqueue_script('minigrid');
}
}

@@ -40,6 +42,9 @@ function remove_parent_widgets(){
}
add_action( 'widgets_init', 'remove_parent_widgets', 11 );

require_once( get_stylesheet_directory() . '/library/navigation.php' );


// Add Custom Post Type
require_once( get_stylesheet_directory() . '/library/artists.php' );
require_once( get_stylesheet_directory() . '/library/exhibitions.php' );
@@ -50,6 +55,7 @@ function remove_parent_widgets(){
require_once( get_stylesheet_directory() . '/library/cwos.php' );
require_once( get_stylesheet_directory() . '/library/gala.php' );
require_once( get_stylesheet_directory() . '/library/air.php' );
require_once( get_stylesheet_directory() . '/library/sponsors.php' );


// Admin and Utility Functions
@@ -59,3 +65,15 @@ function remove_parent_widgets(){

// Add Options Pages
require_once( get_stylesheet_directory() . '/library/option-pages.php' );

/// Custom Excerpts
// Need to add if statement here
function custom_excerpt_length( $length ) {
if (is_post_type_archive('exhibitions')) {
return 25;
} else {
return 55;
}
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

@@ -0,0 +1,79 @@
<?php
global $post;
?>

<!doctype html>
<html class="no-js" <?php language_attributes(); ?> >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><?php if ( is_category() ) {
echo 'Category Archive for &quot;'; single_cat_title(); echo '&quot; | '; bloginfo( 'name' );
} elseif ( is_tag() ) {
echo 'Tag Archive for &quot;'; single_tag_title(); echo '&quot; | '; bloginfo( 'name' );
} elseif ( is_archive() ) {
wp_title(''); echo ' Archive | '; bloginfo( 'name' );
} elseif ( is_search() ) {
echo 'Search for &quot;'.esc_html($s).'&quot; | '; bloginfo( 'name' );
} elseif ( is_home() || is_front_page() ) {
bloginfo( 'name' ); echo ' | '; bloginfo( 'description' );
} elseif ( is_404() ) {
echo 'Error 404 Not Found | '; bloginfo( 'name' );
} elseif ( is_single() ) {
wp_title('');
} else {
echo wp_title( ' | ', 'false', 'right' ); bloginfo( 'name' );
} ?></title>

<style>
html {
background: url("<?php the_field('background_pattern','option') ?>") repeat;
}
.cwos-menu.top-bar-container, .footer-border, .footer-border ul.sub-nav li {
background-color: <?php the_field('primary_color', 'option'); ?> !important;
}
.cwos-menu > nav.top-bar[role="navigation"] {
margin-top: 0;
}
.cwos-sub-nav {
background: #fff;
margin-bottom: 1rem;
}
.cwos-sub-nav .sub-nav {margin: .125rem 0 .125rem;}
</style>

<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri() ; ?>/css/foundation.css" />

<link rel="icon" href="<?php echo get_stylesheet_directory_uri() ; ?>/assets/img/icons/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="<?php echo get_stylesheet_directory_uri() ; ?>/assets/img/icons/apple-touch-icon-144x144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="<?php echo get_stylesheet_directory_uri() ; ?>/assets/img/icons/apple-touch-icon-114x114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="<?php echo get_stylesheet_directory_uri() ; ?>/assets/img/icons/apple-touch-icon-72x72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="<?php echo get_stylesheet_directory_uri() ; ?>/assets/img/icons/apple-touch-icon-precomposed.png">

<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php do_action('SimpleSpaceship_after_body'); ?>

<div class="off-canvas-wrap" data-offcanvas>


<?php do_action('SimpleSpaceship_layout_start'); ?>

<nav class="tab-bar show-for-small-only">
<section class="left-small">
<a class="left-off-canvas-toggle menu-icon" href="#"><span></span></a>
</section>
<section class="middle tab-bar-section">

<h1 class="title"><?php bloginfo( 'name' ); ?></h1>

</section>
</nav>

<?php get_template_part('partials/off-canvas-menu'); ?>

<!-- need to inject menu for CWOS -->
<?php get_template_part('partials/cwos-topbar'); ?>

<?php do_action('SimpleSpaceship_after_header'); ?>
@@ -41,16 +41,31 @@
<div class="off-canvas-wrap" data-offcanvas>

<?php
$bannerimage = get_field('banner_image');
$size = 'full'; // (thumbnail, medium, large, full or custom size)

if( $bannerimage ) {
echo '<div class="inner-wrap has-banner-img" style="background-image: url(' . wp_get_attachment_url( $bannerimage, $large ) . ');background-position-y: 40px;">';
} else {
echo '<div class="inner-wrap">';
/// Conditional Tag for Archive Pages
/*
if (is_archive()) {
$arch_banner = get_field('arch_banner_image', 'option');
if ($arch_banner) {
echo '<div class="inner-wrap">';
echo '<img class="main-banner" src="' . wp_get_attachment_url( $arch_banner, $large ) . '" />';
} else {
echo '<div class="inner-wrap';
}
}
//// Conditional for Single Posts
if (is_singular( array('exhibitions'))) {
$bannerimage = get_field('banner_image');
if( $bannerimage ) {
echo '<div class="inner-wrap">';
echo '<img class="main-banner" src="' . wp_get_attachment_url( $bannerimage, $large ) . '" />';
} else {
echo '<div class="inner-wrap">';
}
}
*/
?>

<div class="inner-wrap">

<?php do_action('SimpleSpaceship_layout_start'); ?>

<nav class="tab-bar show-for-small-only">
@@ -97,5 +112,4 @@

<?php get_template_part('partials/top-bar'); ?>

<section class="container" role="document">
<?php do_action('SimpleSpaceship_after_header'); ?>
@@ -1,3 +1,26 @@
/// Scripts for Exhibitions Page
var bannerHeight = $('.main-banner').height();
$('article.type-exhibitions').css('padding-top', bannerHeight - 20);

/// Stuff for Artist Page
var navHeight = $('.site-nav-wrapper').outerHeight();
$('.page-banner-image').css('margin-top', - (navHeight + 5) );

var featureHeight = $('.main-thumb').outerHeight();
$('.artist-gallery-blocks li').css('height', featureHeight / 2);

$('.artist-gallery-blocks li').click(function() {
var currentBG = $(this).css('background-image');
$('.main-thumb').css('background-image', currentBG);
});
// testing Minigrid

minigrid('.grid', '.grid-item');

window.addEventListener('resize', function(){
minigrid('.grid', '.grid-item');
});

$(document).foundation();

$('.medium-block-grid-2 img').hover(function () {
@@ -0,0 +1,142 @@
<?php

/**
* Register Menus
* http://codex.wordpress.org/Function_Reference/register_nav_menus#Examples
*/
register_nav_menus(array(
'top-bar-l' => 'Left Top Bar', // registers the menu in the WordPress admin menu editor
'top-bar-r' => 'Right Top Bar',
'cwos-l' => 'CWOS Right Nav',
'cwos-r' => 'CWOS Left Nav',
'mobile-off-canvas' => 'Mobile'
));


/**
* Left top bar
* http://codex.wordpress.org/Function_Reference/wp_nav_menu
*/
if ( ! function_exists( 'SimpleSpaceship_top_bar_l' ) ) {
function SimpleSpaceship_top_bar_l() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container
'menu' => '', // menu name
'menu_class' => 'top-bar-menu left', // adding custom nav class
'theme_location' => 'top-bar-l', // where it's located in the theme
'before' => '', // before each link <a>
'after' => '', // after each link </a>
'link_before' => '', // before each link text
'link_after' => '', // after each link text
'depth' => 5, // limit the depth of the nav
'fallback_cb' => false, // fallback function (see below)
'walker' => new Roots_Nav_Walker()
));
}
}

/**
* Right top bar
*/
if ( ! function_exists( 'SimpleSpaceship_top_bar_r' ) ) {
function SimpleSpaceship_top_bar_r() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container
'menu' => '', // menu name
'menu_class' => 'top-bar-menu right', // adding custom nav class
'theme_location' => 'top-bar-r', // where it's located in the theme
'before' => '', // before each link <a>
'after' => '', // after each link </a>
'link_before' => '', // before each link text
'link_after' => '', // after each link text
'depth' => 5, // limit the depth of the nav
'fallback_cb' => false, // fallback function (see below)
'walker' => new Roots_Nav_Walker()
));
}
}

/**
* Mobile off-canvas
*/
if ( ! function_exists( 'SimpleSpaceship_mobile_off_canvas' ) ) {
function SimpleSpaceship_mobile_off_canvas() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container
'menu' => '', // menu name
'menu_class' => 'off-canvas-list', // adding custom nav class
'theme_location' => 'mobile-off-canvas', // where it's located in the theme
'before' => '', // before each link <a>
'after' => '', // after each link </a>
'link_before' => '', // before each link text
'link_after' => '', // after each link text
'depth' => 5, // limit the depth of the nav
'fallback_cb' => false, // fallback function (see below)
'walker' => new Roots_Nav_Walker()
));
}
}

/* City Wide Open Studios Menus */
if ( ! function_exists( 'cwos_top_bar_l' ) ) {
function cwos_top_bar_l() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container
'menu' => '', // menu name
'menu_class' => 'top-bar-menu left', // adding custom nav class
'theme_location' => 'cwos-l', // where it's located in the theme
'before' => '', // before each link <a>
'after' => '', // after each link </a>
'link_before' => '', // before each link text
'link_after' => '', // after each link text
'depth' => 5, // limit the depth of the nav
'fallback_cb' => false, // fallback function (see below)
'walker' => new Roots_Nav_Walker()
));
}
}

/**
* Right top bar for City Wide Open Studios
*/
if ( ! function_exists( 'cwos_top_bar_r' ) ) {
function cwos_top_bar_r() {
wp_nav_menu(array(
'container' => false, // remove nav container
'container_class' => '', // class of container
'menu' => '', // menu name
'menu_class' => 'top-bar-menu right', // adding custom nav class
'theme_location' => 'cwos-r', // where it's located in the theme
'before' => '', // before each link <a>
'after' => '', // after each link </a>
'link_before' => '', // before each link text
'link_after' => '', // after each link text
'depth' => 5, // limit the depth of the nav
'fallback_cb' => false, // fallback function (see below)
'walker' => new Roots_Nav_Walker()
));
}
}

/**
* Add support for buttons in the top-bar menu:
* 1) In WordPress admin, go to Apperance -> Menus.
* 2) Click 'Screen Options' from the top panel and enable 'CSS CLasses' and 'Link Relationship (XFN)'
* 3) On your menu item, type 'has-form' in the CSS-classes field. Type 'button' in the XFN field
* 4) Save Menu. Your menu item will now appear as a button in your top-menu
*/
if ( ! function_exists( 'add_menuclass') ) {
function add_menuclass($ulclass) {
$find = array('/<a rel="button"/', '/<a title=".*?" rel="button"/');
$replace = array('<a rel="button" class="button"', '<a rel="button" class="button"');

return preg_replace($find, $replace, $ulclass, 1);
}
add_filter('wp_nav_menu','add_menuclass');
}

?>
@@ -8,12 +8,18 @@
'capability' => 'manage_options'
));
}
// Options Pages for Exhibitions
// Options Pages
if( function_exists('acf_add_options_sub_page') )
{
acf_add_options_sub_page(array(
'title' => 'Exhibition Opts',
'parent' => 'edit.php?post_type=exhibitions',
'capability' => 'manage_options'
));

acf_add_options_sub_page(array(
'title' => 'CWOS Opts',
'parent' => 'options-general.php',
'capability' => 'manage_options'
));
}
@@ -0,0 +1,43 @@
<?php
function artspace_sponsors() {

$labels = array(
'name' => _x( 'Sponsors', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Sponsor', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Sponsors', 'text_domain' ),
'name_admin_bar' => __( 'Sponsors', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Sponsors', 'text_domain' ),
'add_new_item' => __( 'Add New Sponsor', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'new_item' => __( 'New Sponsor', 'text_domain' ),
'edit_item' => __( 'Edit Sponsor', 'text_domain' ),
'update_item' => __( 'Update Sponsor', 'text_domain' ),
'view_item' => __( 'View Sponsor', 'text_domain' ),
'search_items' => __( 'Search Sponsor', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
);
$args = array(
'label' => __( 'Sponsor', 'text_domain' ),
'description' => __( 'Post Type Description', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'thumbnail', ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-thumbs-up',
'show_in_admin_bar' => false,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => true,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type( 'sponsors', $args );

}
add_action( 'init', 'artspace_sponsors', 0 );

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.