This repository has been archived by the owner. It is now read-only.
Permalink
Cannot retrieve contributors at this time
<?php | |
/** | |
Template Name: People | |
* This page template has no padding, and does not display the page title. | |
* Useful for large images, iframes, or other edge cases. | |
*/ | |
get_header(); ?> | |
<div id="page-userlist"> | |
<?php include('inc/sidebar-check.php')?> | |
<?php while ( have_posts() ) : the_post(); ?> | |
<?php include('inc/submenu-check.php')?> | |
<div class="row"> | |
<div class="col-sm-<?php echo (is_active_sidebar( $sidebar )?9:12); ?>"> | |
<div id="primary" class="content-area"> | |
<main id="main" class="site-main" role="main"> | |
<article id="post-<?php the_ID(); ?>" <?php post_class('clearfix'); ?>> | |
<header class="entry-header"> | |
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> | |
</header><!-- .entry-header --> | |
<div class="entry-content"> | |
<?php the_content(); ?> | |
<footer class="entry-footer"> | |
<?php edit_post_link( __( 'Edit', 'cs' ), '<span class="edit-link">', '</span>' ); ?> | |
</footer><!-- .entry-footer --> | |
<div class="uc-people"> | |
<?php | |
if(! post_password_required()){ | |
// everything we'll be doing will go into the args for WP_query. | |
//$args = array('post_type=person'); | |
$args = array( | |
'posts_per_page' => -1, | |
'post_type' => 'person', | |
'meta_key' => 'last_name', | |
'orderby' => 'menu_order meta_value title', | |
'order' => 'ASC', | |
); | |
// Settings | |
$layout = get_field( "layout" ); | |
$people_to_display = get_field( "people_to_display" ); | |
$break_into_groups = get_field( "break_into_groups" ); | |
$specific_people = get_field( "specific_people" ); | |
$specific_groups = get_field( "specific_groups" ); | |
$specific_tags = get_field( "specific_tags" ); | |
$information_to_display = get_field( "information_to_display" ); | |
function createTextCell($setting, $field){ | |
global $information_to_display; | |
if (in_array($setting, $information_to_display)) { | |
echo '<td class="person-'.$field.'">'; | |
the_field($field); | |
echo '</td>'; | |
} | |
}; | |
function sort_group_by_order( $a, $b ){ | |
// Getting the order for groups $a and $b | |
$groupA = get_term_by('slug', $a, 'group')->term_id; | |
$array_orderGroupA = get_option( "taxonomy_{$groupA}" ); | |
$orderGroupA = $array_orderGroupA['group_order']; | |
$groupB = get_term_by('slug', $b, 'group')->term_id; | |
$array_orderGroupB = get_option( "taxonomy_{$groupB}" ); | |
$orderGroupB = $array_orderGroupB['group_order']; | |
$r = strnatcasecmp( $orderGroupA, $orderGroupB ); | |
if( $r === 0 ){ | |
$r = strnatcasecmp( $a, $b ); | |
} | |
return $r; | |
} | |
if ($specific_people){ | |
global $specific_people; | |
global $args; | |
$post__in = array(); | |
foreach($specific_people as &$value){ | |
//array_push($post__in, $value->ID); | |
array_push($post__in, $value); | |
} | |
$args[post__in]= $post__in; | |
} | |
// do we need a tax query? | |
if ($specific_groups != false || $specific_tags != false){ | |
$tax_query = array(); | |
$isTagSet = false; | |
if ($specific_groups != false) { | |
$group_query = array( | |
'taxonomy' => 'group', | |
'field' => 'term_id', | |
'terms' => $specific_groups | |
); | |
array_push($tax_query, $group_query); | |
} | |
if ($specific_tags != false) { | |
$isTagSet = true; | |
$tag_query = array( | |
'taxonomy' => 'persontag', | |
'field' => 'term_id', | |
'terms' => $specific_tags | |
); | |
array_push($tax_query, $tag_query); | |
} | |
$args[tax_query] = $tax_query; | |
} | |
$persons_per_row = get_field("persons_per_row"); // default is 4 | |
if ( ! $persons_per_row ){ | |
$persons_per_row = 4; | |
} | |
if ($break_into_groups == 1 ){ | |
//echo '<h1>Break into Groups</h1>'; | |
// get all the people | |
$the_query = new WP_Query( $args ); | |
// focusing on just the people, not the rest of the query. | |
$people = $the_query->posts; | |
// look at each person, and see each group used, use that to create a list of terms. | |
$groups_in_use = array(); | |
foreach($people as $value){ | |
//$id = $value->ID; | |
$id = $value; | |
$terms = get_the_terms($id, 'group'); | |
if (is_array($terms)){ | |
foreach($terms as $key => $value){ | |
//duplicates will overwrite themselves... | |
$slug = $value->slug; | |
$groups_in_use[$slug]= $slug; | |
} | |
}; | |
} | |
if(!empty($specific_groups) && is_array($specific_groups)){ | |
$groups_in_use = array(); | |
foreach($specific_groups as $group){ | |
$group = get_term_by('id', $group, 'group'); | |
$groups_in_use[] = $group->slug; | |
} | |
} | |
// sort the groups in use alphabetically | |
//sort($groups_in_use); | |
usort($groups_in_use, 'sort_group_by_order' ); | |
// for each item in the list of terms, do a new query, but this time we're going to limit it to ONLY items from that one group. | |
foreach($groups_in_use as $value){ | |
// this sets up the query we'll need, and will overwrite any group queries from the original settings. | |
$tax_query = array(); | |
$group_query = array( | |
'taxonomy' => 'group', | |
'field' => 'slug', | |
'terms' => $value | |
); | |
array_push($tax_query, $group_query); | |
if( $isTagSet != false ){ | |
array_push($tax_query, $tag_query); | |
} | |
$args['tax_query'] = $tax_query; | |
// with $arg updated, let's do a new query. | |
echo '<h3 class="group-title">'.get_term_by('slug', $value, 'group')->name.'</h3>'; | |
if ($layout == 'grid') { | |
include('inc/people-grid.php'); | |
} | |
if ($layout == 'table') { | |
include('inc/people-table.php'); | |
} | |
} | |
} else { | |
if ($layout == 'grid') { | |
include('inc/people-grid.php'); | |
} | |
if ($layout == 'table') { | |
include('inc/people-table.php'); | |
} | |
} | |
} | |
?> | |
</div> | |
</div><!-- .entry-content --> | |
</article><!-- #post-## --> | |
</main> | |
</div> | |
</div> | |
<?php include('inc/sidebar-if-active.php')?> | |
</div> | |
<?php include('inc/submenu-closing-tags.php')?> | |
<?php endwhile; // end of the loop. ?> | |
</div> | |
<script type="application/javascript"> | |
function adjustImages(){ | |
jQuery('.person-image').each(function(index, element) { | |
var imgWidth = jQuery(this).find('img').width(); | |
var imgHeight = jQuery(this).find('img').height(); | |
var width = jQuery(this).width(); | |
//jQuery(this).height(width); | |
jQuery(this).css('display', 'block'); | |
}); | |
}; | |
jQuery(window).resize(function() { | |
adjustImages(); | |
}); | |
jQuery(window).load(function() { | |
adjustImages(); | |
}); | |
</script> | |
<?php get_footer(); ?> |