/**
* CUSTOM GALLERY
* Produce customized gallery based on Vimeography Pro Theme
* with key variables set by Advanced Custom Fields
* requires gallery ID from Vimeography Settings
* uses ckm_svg_switcher
* also uses custom admin pages, custom CSS - not shown
*/
add_shortcode( 'custom_gallery', 'custom_gallery_handler' ) ;
function custom_gallery_handler( $atts ) {
$a = shortcode_atts( array(
'gallery_id' => 18
), $atts ) ;
$gallery_id = $a['gallery_id'] ;
$fields = get_field( 'custom_galleries', 'option' ) ;
foreach( $fields as $row ) {
if ( $gallery_id == $row['gallery_id'] ) {
$type = $row['type'] ;
$icon = $row['icon'] ;
$linkto = $row['link_to'] ;
$gallery_title = $row['title'] ;
$color = $row['color'] ;
$show_title = $row['show_title'] ;
break;
}
}
$type_class = '' ;
if ( 1 == $type ) {
$type_class = ' custom-gallery-row' ;
}
if ( 2 == $type ) {
$type_class = ' custom-gallery-archive' ;
}
$img = ckm_svg_switcher( $icon ) ;
ob_start() ;
?>
<!-- CUSTOM GALLERY -->
<div id="custom-gallery-<?php echo $gallery_id ; ?>" class="custom-gallery custom-gallery-<?php echo $gallery_id . $type_class ; ?>" >
<?php if ( $img ) { ?>
<div class="custom-gallery-image-wrap" style="color: <?php echo $color ; ?>">
<?php echo $img ; ?>
</div>
<?php } ?>
<?php if ( $linkto && 1 == $show_title ) { ?>
<h3>
<a style="color: <?php echo $color ; ?>" href="<?php echo $linkto ; ?>"><?php echo $gallery_title ; ?></a>
</h3>
<?php }
if ( ! $linkto && 1 == $show_title ) { ?>
<h3 style="color: <?php echo $color ; ?>">
<?php echo $gallery_title ; ?>
</h3>
<?php }
if ( 1 == $type ) {
echo do_shortcode( ' [vimeography id="' . $gallery_id . '" limit="0" per_page="4"] ' ) ;
}
if ( 2 == $type ) {
echo do_shortcode( ' [vimeography id="' . $gallery_id . '" limit="0" per_page="100"] ' ) ;
}
if ( 0 == $type ) {
echo do_shortcode( ' [vimeography id="' . $gallery_id . '"] ' ) ;
}
?>
</div><!--/ CUSTOM GALLERY -->
<?php
return ob_get_clean() ;
}
/* Add Custom Gallery Body Class
* Not recommended unless necessary - "has_shortcode" is high overhead function
*/
function custom_gallery_class( $classes ) {
global $post;
if( isset( $post->post_content ) && has_shortcode( $post->post_content, 'custom_gallery' ) ) {
$classes[] = 'custom-gallery' ;
}
return $classes ;
}
add_filter( 'body_class', 'custom_gallery_class' );
/* Add Inline Color Styles */
add_action( 'wp_enqueue_scripts', 'add_custom_gallery_svg_styles',100 ) ;
function add_custom_gallery_svg_styles() {
$custom_gallery_style = '' ;
$fields = get_field( 'custom_galleries', 'option' ) ;
foreach( $fields as $row ) {
$custom_gallery_style .=
'
.custom-gallery-' . $row['gallery_id'] . ' svg path
{
fill: ' . $row['color'] . '
}
.custom-gallery-' . $row['gallery_id'] . ' .vimeography-thumbnail
{
background: ' . $row['color'] . ' !important;
}
';
}
$teacher_video_fields = get_field( 'teacher_boxes', 'option' ) ;
foreach ( $teacher_video_fields as $row ) {
$custom_gallery_style .=
'
.video-teacher-' . $row['name'] . ' .vimeography-thumbnail
{
background: ' . $row['color'] . ' !important;
}
';
}
wp_register_style( 'custom-gallery-styles', false );
wp_enqueue_style( 'custom-gallery-styles' );
wp_add_inline_style( 'custom-gallery-styles', $custom_gallery_style ) ;
}
/**
* SVG IMAGE SWITCHER
* Return Image Url
* Get File Contents if SVG
* based on https://gist.github.com/derekshirk/f2c1bb844a5bc98a038cc40fdb5f559a
*/
function ckm_svg_switcher( $icon ) {
if ( ! empty( $icon ) ) {
$ext = pathinfo( $icon['url'], PATHINFO_EXTENSION );
if ( $ext == 'svg' ) {
$img = file_get_contents( $icon['url'] ) ;
} else {
$url = $icon['url'];
$title = $icon['title'];
$alt = $icon['alt'];
// Thumbnail size attributes.
$size = 'gallery-icon';
$thumb = $icon['sizes'][ $size ];
$width = $icon['sizes'][ $size . '-width' ];
$height = $icon['sizes'][ $size . '-height' ];
$img = '<img class="custom-gallery-icon" src="' . esc_url( $thumb ) . '" alt="' . esc_attr( $alt ) .'" />' ;
}
}
return $img ;
}
add_image_size( 'gallery-icon', 60, 60, true ) ;
/**



