This repository has been archived by the owner. It is now read-only.
Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
cornerstone/user-people.php
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
228 lines (195 sloc)
7.88 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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(); ?> |