| Server IP : 172.67.159.97 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/src/Functions/ |
Upload File : |
<?php
/**
* Envira Theme Functions.
*
* @since 1.8.0
*
* @package Envira_Gallery
* @author Envira Gallery Team <[email protected]>
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Helper method for retrieving lightbox themes.
*
* @since 1.8.0
*
* @return array Array of lightbox theme data.
*/
function envira_get_lightbox_themes() {
$themes = [
[
'value' => 'base_dark',
'name' => __( 'Base (Dark)', 'envira-gallery' ),
'file' => ENVIRA_FILE,
'config' => [
'arrows' => 'true',
'margins' => [ 120, 0 ], // top/bottom, left/right.
'gutter' => '100',
'thumbs_position' => 'bottom',
'base_template' => 'envirabox_default_template',
],
],
];
$themes = apply_filters( 'envira_gallery_lightbox_themes', $themes );
$themes[] = [
'value' => 'base',
'name' => __( 'Legacy', 'envira-gallery' ),
'file' => ENVIRA_FILE,
'config' => [
'arrows' => 'true',
'margins' => [ 220, 0 ], // top/bottom, left/right.
'gutter' => '50',
'base_template' => 'envirabox_legecy_template',
],
];
return $themes;
}
/**
* Helper method for retrieving gallery themes.
*
* @since 1.8.0
*
* @return array Array of gallery theme data.
*/
function envira_get_gallery_themes() {
$themes = [
[
'value' => 'base',
'name' => __( 'Base', 'envira-gallery' ),
'file' => ENVIRA_FILE,
],
];
return apply_filters( 'envira_gallery_gallery_themes', $themes );
}
/**
* Helper method to retrieve the gallery lightbox template
*
* @since 1.8.0
*
* @param array $data Array of gallery data.
* @return string String template for the gallery lightbox
*/
function envirabox_default_template( $data ) {
// Build out the lightbox template.
$envirabox_wrap_css_classes = apply_filters( 'envirabox_wrap_css_classes', 'envirabox-wrap', $data );
$lightbox_themes = envira_get_lightbox_themes();
$key = array_search( envira_get_config( 'lightbox_theme', $data ), array_column( $lightbox_themes, 'value' ), true );
// if the theme could not be located - possible that this is a theme from gallery themes addon, and the addon is not activated/installed.
$theme = ( empty( $key ) ) ? 'base_dark' : envira_get_config( 'lightbox_theme', $data );
$envirabox_theme = apply_filters( 'envirabox_theme', 'envirabox-theme-' . $theme, $data );
$template = '<div id="envirabox-' . $data['id'] . '" data-envirabox-id="' . $data['id'] . '" class="envirabox-container ' . $envirabox_theme . ' ' . $envirabox_wrap_css_classes . '" role="dialog">';
$template .= '<div class="envirabox-bg"></div>';
$template .= '<div class="envirabox-outer"><div class="envirabox-inner">';
$template = apply_filters( 'envirabox_inner_above', $template, $data );
$template .= '<div class="envirabox-caption-wrap">';
if ( 'title' === envira_get_config( 'lightbox_title_caption', $data ) || 'title_caption' === envira_get_config( 'lightbox_title_caption', $data ) ) {
$template .= '<div class="envirabox-title"></div>';
}
if ( 'caption' === envira_get_config( 'lightbox_title_caption', $data ) || 'title_caption' === envira_get_config( 'lightbox_title_caption', $data ) ) {
$template .= '<div class="envirabox-caption"></div>';
}
if ( envira_get_config( 'image_counter', $data ) ) {
$template .= apply_filters( 'envirabox_theme_image_counter', ' <div class="envirabox-image-counter">' . __( 'Image', 'envira-gallery' ) . ' <span data-envirabox-index></span> ' . __( 'of', 'envira-gallery' ) . ' <span data-envirabox-count></span></div>', $theme, $data );
}
if ( envira_get_config( 'payment', $data ) ) {
$template .= '<div class="envirabox-payment"></div>';
}
$template .= '</div>';
$template .= '<div class="envirabox-toolbar">';
$template = apply_filters( 'envirabox_actions', $template, $data );
if ( envira_get_config( 'thumbnails', $data ) && envira_get_config( 'thumbnails_toggle', $data ) ) {
$template .= '<div class="envira-thumbs-button"><a data-envirabox-thumbs class="envirabox-item envira-thumbs-button envirabox-button--thumbs" title="' . __( 'Toggle Thumbnails', 'envira-gallery' ) . '" href="javascript:void(0)"></a></div>';
}
$template .= '<div class="envira-close-button"><a data-envirabox-close class="envirabox-item envirabox-close envirabox-button--close" title="' . __( 'Close', 'envira-gallery' ) . '" href="#"></a></div>';
$template .= '</div>';
if ( envira_get_config( 'arrows', $data ) ) {
$template .= '<div class="envirabox-navigation">';
$template .= '<a data-envirabox-prev title="' . __( 'Prev', 'envira-gallery' ) . '" class="envirabox-arrow envirabox-arrow--left envirabox-nav envirabox-prev" href="#"><span></span></a>';
$template .= '<a data-envirabox-next title="' . __( 'Next', 'envira-gallery' ) . '" class="envirabox-arrow envirabox-arrow--right envirabox-nav envirabox-next" href="#"><span></span></a>';
$template .= '</div>';
}
$template .= '<div class="envirabox-stage"></div>';
$template = apply_filters( 'envirabox_inner_below', $template, $data );
$template .= '</div></div></div>';
return str_replace( "\n", '', $template );
}
/**
* Loads a custom gallery lightbox theme.
*
* @since 1.8.0
*
* @param string $theme The custom theme slug to load.
*/
function envira_load_lightbox_theme( $theme ) {
$lightbox_themes = envira_get_lightbox_themes();
$key = array_search( $theme, array_column( $lightbox_themes, 'value' ), true );
// if the theme could not be located - possible that this is a theme from gallery themes addon, and the addon is not activated/installed.
if ( empty( $key ) ) {
$key = array_search( 'base_dark', array_column( $lightbox_themes, 'value' ), true ); // revert to default lightbox theme.
$theme = 'base_dark';
}
$current_theme = $lightbox_themes[ $key ];
$version = ( defined( 'ENVIRA_DEBUG' ) && ENVIRA_DEBUG === 'true' ) ? $version = time() . '-' . ENVIRA_VERSION : ENVIRA_VERSION;
if ( file_exists( get_stylesheet_directory() . '/envira-gallery/lightbox-themes/' . $theme . '/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-lightbox-theme', get_stylesheet_directory_uri() . '/envira-gallery/lightbox-themes/' . $theme . '/style.css', [ ENVIRA_SLUG . '-style' ], $version );
return;
} elseif ( file_exists( get_template_directory() . '/envira-gallery/lightbox-themes/' . $theme . '/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-lightbox-theme', get_template_directory_uri() . '/envira-gallery/lightbox-themes/' . $theme . '/style.css', [ ENVIRA_SLUG . '-style' ], $version );
return;
} elseif ( file_exists( plugin_dir_path( $current_theme['file'] ) . 'envira-gallery/lightbox-themes/' . $theme . '/css/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-lightbox-theme', plugins_url( 'envira-gallery/lightbox-themes/' . $theme . '/css/style.css', $current_theme['file'] ), [ ENVIRA_SLUG . '-style' ], $version );
return;
} else {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-lightbox-theme', plugins_url( 'envira-gallery/lightbox-themes/' . $theme . '/css/style.css', ENVIRA_FILE ), [ ENVIRA_SLUG . '-style' ], $version );
return;
}
}
/**
* Envira Lightbox Config function.
*
* @since 1.8.0
*
* @access public
* @param int $gallery_id The Id of the gallery.
* @param bool $raw Raw data.
* @param bool|string $gallery_type Type of gallery.
* @return string Config.
*/
function envira_load_lightbox_config( $gallery_id, $raw = false, $gallery_type = false ) {
// Grab the gallery Data.
$data = envira_get_gallery( $gallery_id );
if ( $gallery_type ) {
$data = apply_filters( 'envira_gallery_custom_gallery_data_by_' . $gallery_type, $data, [ 'type' => $gallery_type ], null, $gallery_id );
}
$lightbox_themes = envira_get_lightbox_themes();
$key = array_search( envira_get_config( 'lightbox_theme', $data ), array_column( $lightbox_themes, 'value' ), true );
// if the theme could not be located - possible that this is a theme from gallery themes addon, and the addon is not activated/installed.
if ( empty( $key ) ) {
$key = array_search( 'base_dark', array_column( $lightbox_themes, 'value' ), true ); // revert to default lightbox theme.
}
$legacy_themes = envirabox_legecy_themes();
$current_theme = $lightbox_themes[ $key ];
if ( ! empty( $current_theme['config'] ) && is_array( $current_theme['config'] ) ) {
$current_theme['config']['base_template'] = function_exists( $current_theme['config']['base_template'] ) ? call_user_func( $current_theme['config']['base_template'], $data ) : envirabox_default_template( $data );
$config = $current_theme['config'];
} else {
$config = envirabox_default_config( $gallery_id );
}
$config['load_all'] = apply_filters( 'envira_load_all_images_lightbox', false, $data );
$config['error_template'] = envirabox_error_template( $data );
// If supersize is enabled lets override settings.
if ( intval( envira_get_config( 'supersize', $data ) ) === 1 ) {
$config['margins'] = ( in_array( envira_get_config( 'lightbox_theme', $data ), $legacy_themes, true ) && ( null !== envira_get_config( 'lightbox_title_caption', $data ) ) ) ? [ 100, 0 ] : [ 10, 0 ];
}
if ( isset( $current_theme['config']['inner_caption'] ) && $current_theme['config']['inner_caption'] ) {
$config['inner_caption'] = true;
$config['caption_position'] = isset( $current_theme['config']['caption_position'] ) ? $current_theme['config']['caption_position'] : 'outside';
} else {
$config['inner_caption'] = in_array( $current_theme['value'], $legacy_themes, true ) ? true : false;
$config['caption_position'] = in_array( $current_theme['value'], $legacy_themes, true ) ? envira_get_config( 'title_display', $data ) : false;
}
if ( isset( $current_theme['config']['thumbs_position'] ) && $current_theme['config']['thumbs_position'] ) {
$config['thumbs_position'] = isset( $current_theme['config']['thumbs_position'] ) ? $current_theme['config']['thumbs_position'] : 'lock';
} else {
$config['thumbs_position'] = in_array( $current_theme['value'], $legacy_themes, true ) ? envira_get_config( 'thumbnails_position', $data ) : 'lock';
}
$config['arrow_position'] = in_array( $current_theme['value'], $legacy_themes, true ) ? envira_get_config( 'arrows_position', $data ) : false;
$config['arrows'] = in_array( $current_theme['value'], $legacy_themes, true ) ? envira_get_config( 'arrows', $data ) : true;
$config['toolbar'] = in_array( $current_theme['value'], $legacy_themes, true ) ? false : true;
$config['infobar'] = in_array( $current_theme['value'], $legacy_themes, true ) ? true : false;
$config['show_smallbtn'] = in_array( $current_theme['value'], $legacy_themes, true ) ? true : false;
$config['idle_time'] = envira_get_config( 'idle_time', $data ) ? envira_get_config( 'idle_time', $data ) : false;
$config['click_content'] = envira_get_config( 'click_content', $data ) ? envira_get_config( 'click_content', $data ) : false;
$config['click_slide'] = envira_get_config( 'click_slide', $data ) ? envira_get_config( 'click_slide', $data ) : false;
$config['click_outside'] = envira_get_config( 'click_outside', $data ) ? envira_get_config( 'click_outside', $data ) : false;
$config['animation_duration'] = envira_get_config( 'animation_duration', $data ) ? envira_get_config( 'animation_duration', $data ) : false;
$config['transition_duration'] = envira_get_config( 'transition_duration', $data ) ? envira_get_config( 'transition_duration', $data ) : false;
$config['small_btn_template'] = '<a data-envirabox-close class="envirabox-item envirabox-close envirabox-button--close" title="' . __( 'Close', 'envira-gallery' ) . '" href="#"></a>';
// return a filtered configuration.
return wp_json_encode( apply_filters( 'envira_load_lightbox_config', $config, $data, $gallery_id ) );
}
/**
* Envirabox Legecy Themes function.
*
* @since 1.8.0
*
* @access public
* @return array
*/
function envirabox_legecy_themes() {
$legecy = [
'base',
'captioned',
'polaroid',
'showcase',
'sleek',
'subtle',
];
return $legecy;
}
/**
* Envira Default Lightbox Config function.
*
* @since 1.8.0
*
* @access public
* @param intenger $gallery_id Gallery Post type ID.
* @return array
*/
function envirabox_default_config( $gallery_id ) {
$data = envira_get_gallery( $gallery_id );
$config = [
'arrows' => 'true',
'margins' => [ 220, 0 ], // top/bottom, left/right.
'template' => envirabox_default_template( $data ),
'thumbs_position' => 'bottom',
];
return apply_filters( 'envirabox_default_config', $config, $data, $gallery_id );
}
/**
* Envirabox Error Template function.
*
* @since 1.8.0
*
* @access public
* @param mixed $data Gallery data.
* @return html
*/
function envirabox_error_template( $data ) {
$template = '<div class="envirabox-error"><p>{{ERROR}}<p></div>';
return apply_filters( 'envirabox_default_error_template', $template, $data );
}
/**
* Loads a custom gallery display theme.
*
* @since 1.8.0
*
* @param string $theme The custom theme slug to load.
*/
function envira_load_gallery_theme( $theme ) {
$gallery_themes = envira_get_gallery_themes();
$key = array_search( $theme, array_column( $gallery_themes, 'value' ), true );
$current_theme = $gallery_themes[ $key ];
if ( file_exists( get_stylesheet_directory() . '/envira-gallery/gallery-themes/' . $theme . '/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-gallery-theme', get_stylesheet_directory_uri() . '/envira-gallery/gallery-themes/' . $theme . '/style.css', [ ENVIRA_SLUG . '-style' ], ENVIRA_VERSION );
return;
} elseif ( file_exists( get_template_directory() . '/envira-gallery/gallery-themes/' . $theme . '/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-gallery-theme', get_template_directory_uri() . '/envira-gallery/gallery-themes/' . $theme . '/style.css', [ ENVIRA_SLUG . '-style' ], ENVIRA_VERSION );
return;
} elseif ( file_exists( plugin_dir_path( $current_theme['file'] ) . 'envira-gallery/gallery-themes/' . $theme . '/css/style.css' ) ) {
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-gallery-theme', plugins_url( 'envira-gallery/gallery-themes/' . $theme . '/css/style.css', $current_theme['file'] ), [ ENVIRA_SLUG . '-style' ], ENVIRA_VERSION );
return;
} else {
$last_resort = apply_filters( 'envira_load_gallery_theme_url', plugins_url( 'envira-gallery/gallery-themes/' . $theme . '/css/style.css', ENVIRA_FILE ), $theme );
wp_enqueue_style( ENVIRA_SLUG . '-' . $theme . '-gallery-theme', $last_resort, [ ENVIRA_SLUG . '-style' ], ENVIRA_VERSION );
return;
}
}
/**
* Envira Get Layout Template function.
*
* @since 1.8.0
*
* @access public
* @param mixed $file Filename.
* @param array $data (default: array()).
* @return string
*/
function envira_get_layout_template( $file, $data = [] ) {
if ( empty( $data ) || ! is_array( $data ) ) {
return false;
}
ob_start();
if ( file_exists( get_stylesheet_directory() . '/envira-gallery/templates/' . $file . '.php' ) ) {
include get_stylesheet_directory() . '/envira-gallery/templates/' . $file . '.php';
} elseif ( file_exists( get_template_directory() . '/envira-gallery/templates/' . $file . '.php' ) ) {
include get_template_directory() . '/envira-gallery/templates/' . $file . '.php';
} else {
include plugins_url( 'envira-gallery/templates/' . $file . '.php', ENVIRA_FILE );
}
$template = ob_get_clean();
return $template;
}
/**
* Envirabox Legecy Template function.
*
* @since 1.8.0
*
* @access public
* @param mixed $data Gallery data.
* @return string
*/
function envirabox_legecy_template( $data ) {
// Build out the lightbox template.
$envirabox_wrap_css_classes = apply_filters( 'envirabox_wrap_css_classes', 'envirabox-wrap', $data );
$envirabox_theme = apply_filters( 'envirabox_theme', 'envirabox-theme-' . envira_get_config( 'lightbox_theme', $data ), $data );
$template = '<div id="envirabox-' . $data['id'] . '" data-envirabox-id="' . $data['id'] . '" class="envirabox-container ' . $envirabox_theme . ' ' . $envirabox_wrap_css_classes . '" role="dialog">';
$template .= '<div class="envirabox-bg"></div>';
$template .= '<div class="envirabox-outer"><div class="envirabox-inner">';
$template = apply_filters( 'envirabox_inner_above', $template, $data );
if ( envira_get_config( 'toolbar', $data ) && envira_get_config( 'toolbar_position', $data ) === 'top' ) {
$template .= envira_get_toolbar_template( $data );
}
if ( envira_get_config( 'arrows', $data ) && envira_get_config( 'arrows_position', $data ) !== 'inside' ) {
$template .= '<div class="envirabox-navigation">';
$template .= '<a data-envirabox-prev title="' . __( 'Prev', 'envira-gallery' ) . '" class="envirabox-arrow envirabox-arrow--left envirabox-nav envirabox-prev" href="#"><span></span></a>';
$template .= '<a data-envirabox-next title="' . __( 'Next', 'envira-gallery' ) . '" class="envirabox-arrow envirabox-arrow--right envirabox-nav envirabox-next" href="#"><span></span></a>';
$template .= '</div>';
}
// Top Left box.
$template .= '<div class="envirabox-position-overlay envira-gallery-top-left">';
$template = apply_filters( 'envirabox_output_dynamic_position', $template, $data, false, 'top-left' );
$template .= '</div>';
// Top Right box.
$template .= '<div class="envirabox-position-overlay envira-gallery-top-right">';
$template = apply_filters( 'envirabox_output_dynamic_position', $template, $data, false, 'top-right' );
$template .= '</div>';
// Bottom Left box.
$template .= '<div class="envirabox-position-overlay envira-gallery-bottom-left">';
$template = apply_filters( 'envirabox_output_dynamic_position', $template, $data, false, 'bottom-left' );
$template .= '</div>';
// Bottom Right box.
$template .= '<div class="envirabox-position-overlay envira-gallery-bottom-right">';
$template = apply_filters( 'envirabox_output_dynamic_position', $template, $data, false, 'bottom-right' );
$template .= '</div>';
$template .= '<div class="envirabox-stage"></div>';
if ( envira_get_config( 'toolbar', $data ) && envira_get_config( 'toolbar_position', $data ) === 'bottom' ) {
$template .= envira_get_toolbar_template( $data );
}
$template = apply_filters( 'envirabox_inner_below', $template, $data );
$template .= '</div></div></div>';
return str_replace( "\n", '', $template );
}
/**
* Helper method to retrieve the proper gallery toolbar template.
*
* @since 1.8.0
*
* @param array $data Array of gallery data.
* @return string String template for the gallery toolbar.
*/
function envira_get_toolbar_template( $data ) {
global $post;
$title = false;
$supersize = ! isset( $data['config']['supersize'] ) ? '' : ' envira-supersize';
// Build out the custom template based on options chosen.
$template = '<div id="envirabox-buttons" class="envirabox-infobar ' . envira_get_config( 'toolbar_position', $data ) . '">';
$template .= '<ul>';
$template = apply_filters( 'envira_gallery_toolbar_start', $template, $data );
// Prev.
$template .= '<li><a data-envirabox-prev class="btnPrev" title="' . __( 'Previous', 'envira-gallery' ) . '" href="#"></a></li>';
$template = apply_filters( 'envira_gallery_toolbar_after_prev', $template, $data );
// Next.
$template .= '<li><a data-envirabox-next class="btnNext" title="' . __( 'Next', 'envira-gallery' ) . '" href="#"></a></li>';
$template = apply_filters( 'envira_gallery_toolbar_after_next', $template, $data );
// Title.
if ( envira_get_config( 'toolbar_title', $data ) ) {
// to get the title, don't grab title from $post first
// because you'll be grabbing the title of the page
// the gallery is embedded on.
$gallery = ( ! empty( $data['id'] ) ) ? get_post( $data['id'] ) : false;
if ( ! empty( $gallery->post_title ) ) {
$title = $gallery->post_title;
} elseif ( isset( $post->post_title ) ) {
// there should ALWAYS be a title, but just in case revert to grabbing from $post.
$title = $post->post_title;
}
// add a filter in case title needs to be manipulated for the toolbar.
$title = apply_filters( 'envira_gallery_toolbar_title', $title, $data );
$template .= '<li id="envirabox-buttons-title"><span>' . htmlentities( $title, ENT_QUOTES ) . '</span></li>';
$template = apply_filters( 'envira_gallery_toolbar_after_title', $template, $data );
}
// Close.
$template .= '<li><a data-envirabox-close class="btnClose" title="' . __( 'Close', 'envira-gallery' ) . '" href="javascript:;"></a></li>';
$template = apply_filters( 'envira_gallery_toolbar_after_close', $template, $data );
$template = apply_filters( 'envira_gallery_toolbar_end', $template, $data );
$template .= '</ul>';
$template .= '</div>';
// Return the template, filters applied and all.
return apply_filters( 'envira_gallery_toolbar', $template, $data );
}