diff --git a/includes/class-staff.php b/includes/class-staff.php index 76bac6e..3584393 100644 --- a/includes/class-staff.php +++ b/includes/class-staff.php @@ -42,7 +42,7 @@ public function __construct( $post_id ) { $this->ID = $post->ID; $this->name = $post->post_title; $this->title = get_post_meta( $post_id, 'staffer_staff_title', true ); - $this->bio = esc_attr( $post->post_content ); + $this->bio = apply_filters( 'the_content', $post->post_content ); $this->departments = wp_get_post_terms( $post_id, 'department' ); $excerpt = $post->post_excerpt; $this->excerpt = empty( $excerpt ) ? wp_trim_words( $post->post_content, 55 ) : $excerpt; @@ -58,4 +58,4 @@ public function __construct( $post_id ) { $this->youtube = get_post_meta( $post_id, 'staffer_staff_youtube', true ); $this->github = get_post_meta( $post_id, 'staffer_staff_github', true ); } -} \ No newline at end of file +} diff --git a/includes/class-staffer.php b/includes/class-staffer.php index ceb88f9..097ea0d 100644 --- a/includes/class-staffer.php +++ b/includes/class-staffer.php @@ -298,7 +298,7 @@ public function create_staff_page() { * @since 2.0.0 * @return string Markup for Staffer output */ - + public function build_staff_page() { //ob_start(); @@ -364,7 +364,33 @@ public function build_staff_page() { $output .= '
'; - $output .= 'name . '" + data-departments="' . $departments_string . '" + data-image="' . esc_attr( $thumbnail ) . '" + data-large-image="' . esc_attr( $large ) . '" + data-phone="' . $staff_obj->phone . '" + data-email="' . $staff_obj->email . '" + data-facebook="' . $staff_obj->facebook . '" + data-twitter="' . $staff_obj->twitter . '" + data-linkedin="' . $staff_obj->linkedin . '" + data-youtube="' . $staff_obj->youtube . '" + data-instagram="' . $staff_obj->instagram . '" + data-github="' . $staff_obj->github . '" + data-google-plus="' . $staff_obj->google_plus . '" + data-website="' . $staff_obj->website . '" + data-title="' . $staff_obj->title . '" + data-staff-slug="' . $staff->post_name. '" + data-staff-id="' . $staff_obj->ID . '" + class="cw-launch-staffer-modal" href="/">' . $thumbnail . ''; + + if( $options['layout'] == 'grid' ) { + $output .= '
'; + $output .= '
'; + } + + $output .= '

+ ' . $thumbnail . ''; - - if( $options['layout'] == 'grid' ) { - $output .= ''; - $output .= '
'; - } - - $output .= '

- - ' . $staff_obj->name . ' -

'; + class="cw-launch-staffer-modal" href="/"> + ' . $staff_obj->name . ' +

'; if( $staff_obj->title ) { $output .= '' . $staff_obj->title . ''; @@ -428,6 +428,12 @@ class="cw-launch-staffer-modal" href="/"> $output .= ''; } + $output .= '
'; + + if( $staff_obj->bio ) { + $output .= '
' . $staff_obj->bio . '
'; + } + if( $options['layout'] == 'list' ) { $output .= $social_output; //$output .= '
' . wpautop( $staff_obj->excerpt ) . '
'; diff --git a/public/class-staffer-public.php b/public/class-staffer-public.php index f7ed833..866c16d 100644 --- a/public/class-staffer-public.php +++ b/public/class-staffer-public.php @@ -120,7 +120,7 @@ public function register_post_types() { * * @since 1.0.0 */ - + public function register_taxonomies() { $staffer = new Staffer(); @@ -144,7 +144,7 @@ public function register_taxonomies() { * * @since 2.0.0 */ - + public function staffer_thumbnail_check() { if ( !current_theme_supports ('post-thumbnails') ) { @@ -280,53 +280,53 @@ public function staffer_shortcode( $atts ) { echo '
'; - echo '' . $thumbnail . ''; - + echo '' . $thumbnail . ''; + if( $options['layout'] == 'grid' ) { echo '
'; echo '
'; } echo '

- - ' . $staff_obj->name . ' -

'; + + ' . $staff_obj->name . ' + '; if( $staff_obj->title ) { echo '' . $staff_obj->title . ''; @@ -344,6 +344,10 @@ class="cw-launch-staffer-modal" href="/"> echo ''; } + if( $staff_obj->bio ) { + echo '
' . $staff_obj->bio . '
'; + } + if( $options['layout'] == 'list' ) { echo $social_output; } @@ -430,7 +434,7 @@ public function staffer_body_class( $classes ) { $classes[] = 'staffer-main-page'; } - return $classes; + return $classes; } } diff --git a/public/css/sass/_base.scss b/public/css/sass/_base.scss index e07feb5..1bf972e 100644 --- a/public/css/sass/_base.scss +++ b/public/css/sass/_base.scss @@ -42,6 +42,10 @@ ul.staffer-archive-list { box-shadow: none!important; } +.staff-li .staffer-staff-bio { + display: none; +} + ul.staffer-archive-grid h3.staffer-staff-title, ul.staffer-archive-list h3.staffer-staff-title { font-size: initial!important; @@ -210,4 +214,4 @@ body.cw-staffer-overlay:before { top: 0; left: 0; background: rgba(0,0,0,0.80); -} \ No newline at end of file +} diff --git a/public/css/staffer-styles.css b/public/css/staffer-styles.css index b860e2e..a575ddf 100644 --- a/public/css/staffer-styles.css +++ b/public/css/staffer-styles.css @@ -1 +1 @@ -.cw-style-reset{all:initial}.cw-style-reset *{all:unset}.cw-staffer-clearfix:after{content:"";display:table;clear:both}.cw-staffer-max-image{width:100% !important;max-width:300px !important}header.staffer-staff-header{margin-top:5px}ul.staffer-archive-grid,ul.staffer-archive-list{margin:initial !important;padding:initial !important;list-style:none;display:flex;flex-wrap:wrap}.staff-li a,.staff-li a:hover,.staff-li a:active,.staff-li a:focus{text-decoration:none !important;box-shadow:none !important}ul.staffer-archive-grid h3.staffer-staff-title,ul.staffer-archive-list h3.staffer-staff-title{font-size:initial !important;margin:initial !important;padding:initial !important;clear:initial !important}ul.staffer-archive-grid h3.staffer-staff-title,ul.staffer-archive-grid em{text-align:center !important;display:block}ul.staffer-archive-list h3.staffer-staff-title,ul.staffer-archive-list em{text-align:left !important;display:block}ul.staffer-archive-list .staff-bio{margin-top:10px}ul.staffer-archive-grid li{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}ul.staffer-archive-grid>li.staff-li,ul.staffer-archive-list>li.staff-li{list-style:none;margin-bottom:10px}ul.staffer-archive-list .staff-content{position:relative}ul.staffer-archive-list .staff-content .social-icons{position:absolute;bottom:0;left:170px}ul.staffer-archive-grid .staff-content .social-icons{text-align:center}ul.staffer-archive-grid .staff-content .social-icons a{display:inline-block;width:20px;margin-right:5px;display:inline}.staff-content img.staffer-list-image{width:100% !important;max-width:150px;margin-top:0;margin-bottom:0}ul.staffer-archive-list li{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.cw-staffer-modal{display:none;position:fixed;width:80vw;height:80vh;z-index:9999999;background-color:white;color:#222;overflow-y:auto;overflow-x:hidden;margin:0 auto;border:1px solid #1a1a1a;margin:1% auto;left:0;right:0;top:10%}.cw-staffer-modal a{box-shadow:none !important}.cw-staffer-modal .cw-modal-inner{margin:0 auto;padding:20px;position:relative}.cw-staffer-modal .cw-modal-close{font-size:28px;position:absolute;right:10px;top:10px;cursor:pointer}.cw-staffer-modal .cw-modal-header{margin:initial !important;padding:initial !important;list-style:none;display:flex;flex-wrap:wrap}.cw-staffer-modal .cw-modal-header .section{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:3px 0}.cw-staffer-modal img.staffer-social-icon{width:20px;margin-right:10px;display:inline}.cw-staffer-modal .staffer-website-link{display:block;margin-top:5px}.cw-staffer-modal h5,.cw-staffer-modal p{font-size:initial !important;text-transform:none;margin:10px 0 !important}.staffer-archive-list img.staffer-social-icon{width:20px;margin-right:10px;display:inline}body.cw-staffer-overlay,html.cw-staffer-overlay{overflow:hidden;position:relative}body.cw-staffer-overlay:before{content:" ";width:100%;height:100%;position:fixed;z-index:999999;top:0;left:0;background:rgba(0,0,0,0.8)}@media screen and (max-width: 500px){.staff-content img.staffer-list-image{width:100% !important;max-width:none;float:none}ul.staffer-archive-list h3.staffer-staff-title{margin-top:10px}}@media screen and (min-width: 600px){ul.staffer-archive-grid li{flex:0 50%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.cw-staffer-modal{width:70vw}.cw-staffer-modal .cw-modal-header .section{flex:0 50%}}@media screen and (min-width: 800px){.cw-staffer-modal .cw-modal-header .section{flex:0 50%;padding:10px 0}.cw-staffer-modal img.staffer-social-icon{width:24px}}@media screen and (max-width: 800px){.cw-staffer-max-image{display:block;float:none !important}}@media screen and (min-width: 1000px){ul.staffer-archive-grid li{flex:0 25%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.staff-content .staffer-list-image{width:100% !important;max-width:150px !important}.cw-staffer-modal{width:60vw}} +.cw-style-reset{all:initial}.cw-style-reset *{all:unset}.cw-staffer-clearfix:after{content:"";display:table;clear:both}.cw-staffer-max-image{width:100% !important;max-width:300px !important}header.staffer-staff-header{margin-top:5px}ul.staffer-archive-grid,ul.staffer-archive-list{margin:initial !important;padding:initial !important;list-style:none;display:flex;flex-wrap:wrap}.staff-li a,.staff-li a:hover,.staff-li a:active,.staff-li a:focus{text-decoration:none !important;box-shadow:none !important}.staff-li .staffer-staff-bio{display:none}ul.staffer-archive-grid h3.staffer-staff-title,ul.staffer-archive-list h3.staffer-staff-title{font-size:initial !important;margin:initial !important;padding:initial !important;clear:initial !important}ul.staffer-archive-grid h3.staffer-staff-title,ul.staffer-archive-grid em{text-align:center !important;display:block}ul.staffer-archive-list h3.staffer-staff-title,ul.staffer-archive-list em{text-align:left !important;display:block}ul.staffer-archive-list .staff-bio{margin-top:10px}ul.staffer-archive-grid li{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}ul.staffer-archive-grid>li.staff-li,ul.staffer-archive-list>li.staff-li{list-style:none;margin-bottom:10px}ul.staffer-archive-list .staff-content{position:relative}ul.staffer-archive-list .staff-content .social-icons{position:absolute;bottom:0;left:170px}ul.staffer-archive-grid .staff-content .social-icons{text-align:center}ul.staffer-archive-grid .staff-content .social-icons a{display:inline-block;width:20px;margin-right:5px;display:inline}.staff-content img.staffer-list-image{width:100% !important;max-width:150px;margin-top:0;margin-bottom:0}ul.staffer-archive-list li{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.cw-staffer-modal{display:none;position:fixed;width:80vw;height:80vh;z-index:9999999;background-color:white;color:#222;overflow-y:auto;overflow-x:hidden;margin:0 auto;border:1px solid #1a1a1a;margin:1% auto;left:0;right:0;top:10%}.cw-staffer-modal a{box-shadow:none !important}.cw-staffer-modal .cw-modal-inner{margin:0 auto;padding:20px;position:relative}.cw-staffer-modal .cw-modal-close{font-size:28px;position:absolute;right:10px;top:10px;cursor:pointer}.cw-staffer-modal .cw-modal-header{margin:initial !important;padding:initial !important;list-style:none;display:flex;flex-wrap:wrap}.cw-staffer-modal .cw-modal-header .section{flex:0 100%;box-sizing:border-box;background:inherit;color:inherit;padding:3px 0}.cw-staffer-modal img.staffer-social-icon{width:20px;margin-right:10px;display:inline}.cw-staffer-modal .staffer-website-link{display:block;margin-top:5px}.cw-staffer-modal h5,.cw-staffer-modal p{font-size:initial !important;text-transform:none;margin:10px 0 !important}.staffer-archive-list img.staffer-social-icon{width:20px;margin-right:10px;display:inline}body.cw-staffer-overlay,html.cw-staffer-overlay{overflow:hidden;position:relative}body.cw-staffer-overlay:before{content:" ";width:100%;height:100%;position:fixed;z-index:999999;top:0;left:0;background:rgba(0,0,0,0.8)}@media screen and (max-width: 500px){.staff-content img.staffer-list-image{width:100% !important;max-width:none;float:none}ul.staffer-archive-list h3.staffer-staff-title{margin-top:10px}}@media screen and (min-width: 600px){ul.staffer-archive-grid li{flex:0 50%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.cw-staffer-modal{width:70vw}.cw-staffer-modal .cw-modal-header .section{flex:0 50%}}@media screen and (min-width: 800px){.cw-staffer-modal .cw-modal-header .section{flex:0 50%;padding:10px 0}.cw-staffer-modal img.staffer-social-icon{width:24px}}@media screen and (max-width: 800px){.cw-staffer-max-image{display:block;float:none !important}}@media screen and (min-width: 1000px){ul.staffer-archive-grid li{flex:0 25%;box-sizing:border-box;background:inherit;color:inherit;padding:10px}.staff-content .staffer-list-image{width:100% !important;max-width:150px !important}.cw-staffer-modal{width:60vw}} diff --git a/public/js/staffer-scripts.js b/public/js/staffer-scripts.js index 3cf1433..9b770e1 100644 --- a/public/js/staffer-scripts.js +++ b/public/js/staffer-scripts.js @@ -16,91 +16,100 @@ } }; - $(document).ready( function(e) { - $('a.cw-launch-staffer-modal').on('click', function(e) { - var bio,img,name,title, id, slug, - department,website,phone,email,fb, - linkedin,twitter,gplus,youtube, - instagram,github, iconArr, - iconOutput = ''; - - bio = $(this).attr('data-bio'); - img = $(this).attr('data-large-image'); - img = img.replace('aligncenter', 'alignleft'); - img = img.replace('alignleft', 'alignleft cw-staffer-max-image'); - name = $(this).attr('data-name'); - title = $(this).attr('data-title'); - department = $(this).attr('data-departments'); - phone = $(this).attr('data-phone'); - email = $(this).attr('data-email'); - website = $(this).attr('data-website'); - id = $(this).attr('data-staff-id'); - slug = $(this).attr('data-staff-slug'); - - fb = $(this).attr('data-facebook'); - twitter = $(this).attr('data-twitter'); - linkedin = $(this).attr('data-linkedin'); - gplus = $(this).attr('data-google-plus'); - - youtube = $(this).attr('data-youtube'); - instagram = $(this).attr('data-instagram'); - github = $(this).attr('data-github'); - - iconArr = { - 'facebook' : fb, - 'twitter' : twitter, - 'linkedin' : linkedin, - 'googleplus' : gplus, - 'youtube' : youtube, - 'instagram' : instagram, - 'github' : github - } - - $.each( iconArr, function( key, value ) { - if( value !== '' ) { - iconOutput += '' + name + ''; + $(document).ready( function() { + $('a.cw-launch-staffer-modal').on('click', function(e){ + + var profile = { + 'id' : $(this).attr('data-staff-id'), + 'slug' : $(this).attr('data-staff-slug'), + 'name' : $(this).attr('data-name'), + 'title' : $(this).attr('data-title'), + 'departments' : $(this).attr('data-departments'), + 'website' : $(this).attr('data-website'), + 'phone' : $(this).attr('data-phone'), + 'email' : $(this).attr('data-email'), + 'social' : { + 'facebook' : $(this).attr('data-facebook'), + 'twitter' : $(this).attr('data-twitter'), + 'linkedin' : $(this).attr('data-linkedin'), + 'googleplus' : $(this).attr('data-google-plus'), + 'youtube' : $(this).attr('data-youtube'), + 'instagram' : $(this).attr('data-instagram'), + 'github' : $(this).attr('data-github'), + }, + 'img' : $(this).attr('data-large-image'), + 'bio' : $(this).closest('.staff-li').find('.staffer-staff-bio').html(), + }; + + var build = function( profile ){ + + // modal header + $('.cw-staffer-modal .staff-name').text( profile.name ); + $('.cw-staffer-modal .staff-title').text( profile.title ); + $('.cw-staffer-modal .staff-department').text( profile.departments ); + + if ( profile.website ) { + $('.cw-staffer-modal .staff-website').html('' + profile.website + ''); + } else { + $('.cw-staffer-modal .staff-website').empty(); } - }); - - $('.cw-staffer-modal .staff-name').text(name); - $('.cw-staffer-modal .cw-modal-header .staff-title').text(title); - $('.cw-staffer-modal .cw-modal-header .staff-department').text(department); - - $('.cw-staffer-modal .cw-modal-header .social-icons').html(iconOutput); - - if( website ) { - $('.cw-staffer-modal .cw-modal-header .staff-website').html('' + website + ''); - } else { - $('.cw-staffer-modal .cw-modal-header .staff-website').html(''); - } - - $('.cw-staffer-modal .cw-modal-header .staff-phone').text(phone); - $('.cw-staffer-modal .cw-modal-header .staff-email').text(email); - - $('.cw-staffer-modal .cw-modal-body').html(img + bio); - $('.cw-staffer-modal').show(); + $('.cw-staffer-modal .staff-phone').text( profile.phone ); + $('.cw-staffer-modal .staff-email').text( profile.email ); - $('body').addClass('cw-staffer-overlay'); - $('html').addClass('cw-staffer-overlay'); + var social = ''; + $.each( profile.social, function( key, value ) { + if( value ) { + social += '' + name + ''; + } + }); + $('.cw-staffer-modal .social-icons').html(social); + + // modal body + var image = ''; + if( profile.img ) { + image = profile.img.replace('aligncenter', 'alignleft'); + image = profile.img.replace('alignleft', 'alignleft cw-staffer-max-image'); + } + $('.cw-staffer-modal .cw-modal-body').html( image + profile.bio ); + }; - var state = { name: slug }; - history.pushState(state, '', '?uid=' + slug ); + var open = function( slug ){ + $('.cw-staffer-modal').show(); + $('html, body').addClass('cw-staffer-overlay'); + var state = { name: slug }; + history.pushState( state, null, '?uid=' + slug ); + }; + build( profile ); + open( profile.slug ); return false; - }); - $('.cw-staffer-modal .cw-modal-close').on('click', function(e) { - $('.cw-staffer-modal').hide(); - $('body').removeClass('cw-staffer-overlay'); - $('html').removeClass('cw-staffer-overlay'); + $('html').on('click', function(e){ - var state = { name: 'none' }; - history.replaceState(state, '', '?' ); + var close = function(){ + $('.cw-staffer-modal').hide(); + $('html, body').removeClass('cw-staffer-overlay'); + var state = { name: 'none' }; + history.replaceState( state, null, window.location.pathname ); + }; - return false; + // check if modal is open, otherwise continue + if( $('html').hasClass('cw-staffer-overlay') ) { + + // clicked outside modal + if( !$(e.target).closest('.cw-modal-inner').length && !$(e.target).is('.cw-modal-inner') ) { + close(); + } + } + + // clicked close button + if( $(e.target).is('.cw-modal-close') ) { + e.preventDefault(); + close(); + } }); if( $('body').hasClass('staffer-main-page') ) {