$settings['grid_type'], 'rowHeight' => isset( $settings['grid_row_height'] ) ? absint( $settings['grid_row_height'] ) : 640, 'lastRow' => isset( $settings['grid_justify_last_row'] ) ? $settings['grid_justify_last_row'] : 'justify', ); $js_config = wp_parse_args( $js_new_config, $js_config ); if ( isset( $js_config['height'] ) ) { unset( $js_config['height'] ); } } return $js_config; } /** * Add grid-gallery class to modula-items container * * @param $template_data * * @return mixed * * @since 2.3.0 */ public function template_data_config($template_data){ $settings = $template_data['settings']; if('grid' == $settings['type']){ $template_data['items_container']['class'][] = 'grid-gallery'; } return $template_data; } /** * Model image attributes * * @param $image * @param $settings * * @return mixed * * @since 2.3.0 */ public function modula_grid_image_data( $image, $settings ) { $grid_size = Modula_Helper::get_image_sizes( false, $settings['grid_image_size'] ); // check if selected image size is defined if ( $grid_size ) { $image['width'] = $grid_size['width']; $image['height'] = $grid_size['height']; } else { if ( 'default' == $settings['grid_image_size'] ) { $image['width'] = $settings['grid_image_dimensions']['width']; $image['height'] = $settings['grid_image_dimensions']['height']; } else { $image['width'] = 0; $image['height'] = 0; } } return $image; } /** * Grid sizer for columns * * @param $settings * * @return mixed * * @since 2.3.0 */ public function modula_grid_sizer( $settings ) { if ( 'grid' == $settings['type'] && 'automatic' != $settings['grid_type'] ) { echo '
'; } } /** * Generate Grid Css * * @param $css * @param $gallery_id * @param $settings * * @return string * * @since 2.3.0 */ public function generate_grid_css( $css, $gallery_id, $settings ) { if ( 'grid' == $settings['type'] ) { if ( 'automatic' != $settings['grid_type'] ) { $css .= "#{$gallery_id}.modula-gallery .modula-item, #{$gallery_id}.modula-gallery .modula-grid-sizer { width: calc(" . 100 / $settings['grid_type'] . "% - " . ( absint( $settings['gutter'] ) - absint( $settings['gutter'] ) / absint( $settings['grid_type'] ) ) . "px) ; } "; // Make the modula-item and grid-sizer width if ( '1' == $settings['enable_responsive'] ) { $tablet_width = 100 / $settings['tablet_columns'] . "% - " . ( absint( $settings['tablet_gutter'] ) - absint( $settings['tablet_gutter'] ) / absint( $settings['tablet_columns'] ) ) . 'px'; $mobile_width = 100 / $settings['mobile_columns'] . "% - " . ( absint( $settings['mobile_gutter'] ) - absint( $settings['mobile_gutter'] ) / absint( $settings['mobile_columns'] ) . 'px' ); } else { $tablet_width = 100 / $settings['grid_type'] . "% - " . ( absint( $settings['tablet_gutter'] ) - absint( $settings['tablet_gutter'] ) / absint( $settings['grid_type'] ) ) . 'px'; $mobile_width = 100 / $settings['grid_type'] . "% - " . ( absint( $settings['mobile_gutter'] ) - absint( $settings['mobile_gutter'] ) / absint( $settings['grid_type'] ) ) . 'px'; } $css .= "@media (max-width: 768px) { html body #{$gallery_id}.modula-gallery .modula-item, html body #{$gallery_id}.modula-gallery .modula-grid-sizer {width: calc(" . esc_attr( $tablet_width ) . " ) ; } }"; $css .= "@media (max-width: 568px) { html body #{$gallery_id}.modula-gallery .modula-item, html body #{$gallery_id}.modula-gallery .modula-grid-sizer {width: calc(" . esc_attr( $mobile_width ) . " ) ; } }"; $css .= "#{$gallery_id} .modula-items{position:relative;}"; } } return $css; } /** * Returns the singleton instance of the class. * * @return object The Modula_Grid object. * * @since 2.3.0 */ public static function get_instance() { if ( !isset( self::$instance ) && !( self::$instance instanceof Modula_Grid ) ) { self::$instance = new Modula_Grid(); } return self::$instance; } } $modula_grid = Modula_Grid::get_instance();