Uname: Linux premium72.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software: LiteSpeed
PHP version: 8.2.29 [ PHP INFO ] PHP os: Linux
Server Ip: 198.54.125.95
Your Ip: 216.73.216.132
User: matican (532) | Group: matican (531)
Safe Mode: OFF
Disable Function:
NONE

name : portfolio-style.php
<?php
	/*	
	*	Goodlayers Blog Item Style
	*/
	
	if( !class_exists('gdlr_core_portfolio_style') ){
		class gdlr_core_portfolio_style{

			private $portfolio_item_id;
			private $portfolio_medium_count = 0;

			// init the variable
			function __construct(){
				global $portfolio_item_id;
				$portfolio_item_id = empty($portfolio_item_id)? 1: $portfolio_item_id+1;
				$this->portfolio_item_id = $portfolio_item_id;
			}

			// get portfolio icon class
			function portfolio_icon_class( $icon_type = 'image' ){

				$icon_class = apply_filters('gdlr_core_portfolio_hover_icon_class', $icon_type);
				if( !empty($icon_class) ) return $icon_class;

				$icon_class = array(
					'image' => 'icon_zoom-in_alt',
					'link' => 'icon_link_alt',
					'video' => 'icon_film'
				);
				return $icon_class[$icon_type];

			}

			// get the content of the blog item
			function get_content( $args ){

				$ret = apply_filters('gdlr_core_portfolio_style_content', '', $args, $this);
				if( !empty($ret) ) return $ret;

				switch( $args['portfolio-style'] ){
					case 'modern':
					case 'modern-no-space': 
						return $this->portfolio_modern( $args ); 
						break;
					case 'modern-desc':
					case 'modern-desc-no-space': 
						return $this->portfolio_modern_desc( $args ); 
						break;
					case 'metro':
					case 'metro-no-space': 
					case 'fixed-metro':
						return $this->portfolio_metro( $args ); 
						break;
					case 'grid':
					case 'grid-no-space': 
						return $this->portfolio_grid( $args ); 
						break;
					case 'grid2':
						return $this->portfolio_grid2( $args ); 
						break;	
					case 'medium': 
						return $this->portfolio_medium( $args ); 
						break;
					case 'medium-feature': 
						return $this->portfolio_medium_feature( $args ); 
						break;
				}
				
			}

			// get blog excerpt
			function portfolio_excerpt($args){
				$ret = '';

				if( $args['excerpt'] == 'specify-number' ){
					if( !empty($args['excerpt-number']) ){
						$ret .= '<div class="gdlr-core-portfolio-content" >' . $this->get_excerpt($args['excerpt-number']) . '</div>';
					}
				}else if( $args['excerpt'] != 'none' ){
					$ret .= '<div class="gdlr-core-portfolio-content" >' . gdlr_core_content_filter(get_the_content(), true) . '</div>';
				}

				return $ret;

			}
			function get_excerpt( $excerpt_length, $excerpt_more = ' [&hellip;]' ) {

				$post = get_post();
				if( empty($post) || post_password_required() ){ return ''; }
			
				$excerpt = $post->post_excerpt;
				if( empty($excerpt) ){
					$excerpt = get_the_content('');
					$excerpt = strip_shortcodes($excerpt);
					
					$excerpt = apply_filters('the_content', $excerpt);
					$excerpt = str_replace(']]>', ']]&gt;', $excerpt);
				}
				
				$excerpt_more = apply_filters('excerpt_more', $excerpt_more);
				$excerpt = wp_trim_words($excerpt, $excerpt_length, $excerpt_more);

				$excerpt = apply_filters('wp_trim_excerpt', $excerpt, $post->post_excerpt);		
				$excerpt = apply_filters('get_the_excerpt', $excerpt);
				
				return $excerpt;
			}

			// get the portfolio title
			function portfolio_title( $args ){
				if( !empty($args['enable-portfolio-title']) && $args['enable-portfolio-title'] == 'disable' ){ return ''; }

				if( !empty($args['lightbox-group']) ){
					$args['lightbox-group'] .= 't';
				}

				$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
				if( !empty($portfolio_info) && $portfolio_info['thumbnail-type'] == 'feature-image' && $portfolio_info['title-link-to'] == 'icon' ){
					$link_attr = $this->get_thumbnail_link( $portfolio_info, $args );
					$link_tag = $link_attr['link-tag'];
				}else if( !empty($portfolio_info) && $portfolio_info['thumbnail-type'] == 'gallery' ){
					$gallery = gdlr_core_lb_gallery($portfolio_info['slider']);
					$link_tag = '<a class="gdlr-core-js" href="#" data-gallery-lb="' . esc_attr(json_encode($gallery)) . '" >';
				}else{
					$link_tag = '<a href="' . get_permalink() . '" >';
				}

				$ret  = '<h3 class="gdlr-core-portfolio-title gdlr-core-skin-title" ' . gdlr_core_esc_style(array(
					'margin-bottom' => empty($args['portfolio-title-bottom-margin'])? '': $args['portfolio-title-bottom-margin'],
					'font-size' => empty($args['portfolio-title-font-size'])? '': $args['portfolio-title-font-size'],
					'font-weight' => empty($args['portfolio-title-font-weight'])? '': $args['portfolio-title-font-weight'],
					'letter-spacing' => empty($args['portfolio-title-letter-spacing'])? '': $args['portfolio-title-letter-spacing'],
					'text-transform' => (empty($args['portfolio-title-text-transform']) || $args['portfolio-title-text-transform'] == 'uppercase')? '': $args['portfolio-title-text-transform']
				)) . ' >';
				$ret .= $link_tag . get_the_title() . '</a>';
				$ret .= '</h3>';


				return $ret;
			}

			// get portfolio 
			function portfolio_badge( $portfolio_info ){

				$ret = '';
				if( (empty($portfolio_info['enable-badge']) || $portfolio_info['enable-badge'] == 'enable') && !empty($portfolio_info['badge-text']) ){
					$ret .= '<div class="gdlr-core-portfolio-badge gdlr-core-outer-frame-element" ' . gdlr_core_esc_style(array(
						'color' => empty($portfolio_info['badge-text-color'])? '': $portfolio_info['badge-text-color'],
						'background-color' => empty($portfolio_info['badge-background-color'])? '': $portfolio_info['badge-background-color']
					)) . ' >';
					$ret .= gdlr_core_text_filter($portfolio_info['badge-text']);
					$ret .= '</div>';
				}
				return $ret;

			}

			// get portfolio thumbnail icon link
			function get_thumbnail_link( $portfolio_info, $args ){

				$icon_type = 'image';
				$link_tag = '<a ';
				if( !empty($portfolio_info['thumbnail-type']) && $portfolio_info['thumbnail-type'] == 'gallery' ){
					$gallery = gdlr_core_lb_gallery($portfolio_info['slider']);
					$link_tag .= 'class="gdlr-core-js" href="#" data-gallery-lb="' . esc_attr(json_encode($gallery)) . '" ';

				}else if( empty($portfolio_info['hover-icon-link-to']) || $portfolio_info['hover-icon-link-to'] == 'lb-full-image' ){
					$feature_image = get_post_thumbnail_id();
					if( !empty($feature_image) ){
						$link_tag .= gdlr_core_get_lightbox_atts(array( 
							'url' => gdlr_core_get_image_url($feature_image),
							'caption' => gdlr_core_get_image_info($feature_image, 'caption'),
							'group' => empty($args['lightbox-group'])? '': $args['lightbox-group'],
						));
					}
				}else if( $portfolio_info['hover-icon-link-to'] == 'lb-custom-image' ){
					if( is_numeric($portfolio_info['hover-icon-custom-image']) ){
						$lb_image_url = gdlr_core_get_image_url($portfolio_info['hover-icon-custom-image']);
						$lb_image_caption = gdlr_core_get_image_info($portfolio_info['hover-icon-custom-image'], 'caption');
					}else{
						$lb_image_url = $portfolio_info['hover-icon-custom-image'];
						$lb_image_caption = '';
					}

					$link_tag .= gdlr_core_get_lightbox_atts(array( 
						'url' => $lb_image_url,
						'caption' => $lb_image_caption,
						'group' => empty($args['lightbox-group'])? '': $args['lightbox-group'],
					));
				}else if( $portfolio_info['hover-icon-link-to'] == 'lb-video' ){
					$icon_type = 'video';
					$link_tag .= gdlr_core_get_lightbox_atts(array( 
						'type' => 'video',
						'group' => empty($args['lightbox-group'])? '': $args['lightbox-group'],
						'url' => empty($portfolio_info['hover-icon-video-url'])? '': $portfolio_info['hover-icon-video-url'],
					));
				}else if( $portfolio_info['hover-icon-link-to'] == 'custom-url' ){
					$icon_type = 'link';
					$link_tag .= empty($portfolio_info['hover-icon-custom-url'])? '': 'href="' . esc_url($portfolio_info['hover-icon-custom-url']) . '" ';
					$link_tag .= empty($portfolio_info['hover-icon-custom-link-target'])? '': 'target="' . esc_attr($portfolio_info['hover-icon-custom-link-target']) . '" ';
				}else if( $portfolio_info['hover-icon-link-to'] == 'portfolio' ){
					$icon_type = 'link';
					$link_tag .= 'href="' . get_permalink() . '" ';
				}
				$link_tag .= '>';

				return array(
					'link-tag' => $link_tag,
					'icon-type' => $icon_type
				);
			}

			// get the portfolio thumbnail
			function get_thumbnail( $args, $has_content = true, $thumbnail_shadow = false ){
				
				$ret = '';

				$extra_class = '';
				$thumbnail_atts = array();
				if( $thumbnail_shadow && !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
					$thumbnail_atts['background-shadow-size'] = $args['frame-shadow-size'];
					$thumbnail_atts['background-shadow-color'] = $args['frame-shadow-color'];
					$thumbnail_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];

					$extra_class .= ' gdlr-core-outer-frame-element';
				}
				if( !empty($args['border-radius']) ){
					$thumbnail_atts['border-radius'] = $args['border-radius'];
				}
				
				$thumbnail_size = empty($args['thumbnail-size'])? 'full': $args['thumbnail-size'];
				$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);

				// image thumbnail
				if( empty($portfolio_info['thumbnail-type']) || in_array($portfolio_info['thumbnail-type'], array('feature-image', 'gallery')) || !empty($args['only-image']) ){
					$feature_image = get_post_thumbnail_id();
					
					$overlay_class  = ' gdlr-core-portfolio-overlay';
					if( !empty($args['hover']) && $args['hover'] == 'title-tag-bottom' ){
						$overlay_class .= ' gdlr-core-title-tag-bottom';
					}else if( empty($args['hover']) || strpos($args['hover'], '-slide') == false ){
						$overlay_class .= in_array($args['portfolio-style'], array('modern-desc', 'modern-desc-no-space'))? ' gdlr-core-image-overlay-center gdlr-core-js': ' gdlr-core-image-overlay-center-icon gdlr-core-js';
					}else{
						$overlay_class .= ' gdlr-core-image-overlay-slide';
					}
					if( !empty($args['hover-info']) && ($key = array_search('margin', $args['hover-info'])) !== false ){
						$overlay_class .= ' gdlr-core-with-margin';
						unset($args['hover-info'][$key]);
					}

					$overlay_content = '';
					$overlay_outer = '';
					if( !empty($args['hover-info']) ){
						$info_size = sizeof($args['hover-info']);
						foreach( $args['hover-info'] as $port_info ){
					
							switch( $port_info ){
					
								case 'date':
									$overlay_content .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-date-wrap" >';
									$overlay_content .= get_the_date();
									$overlay_content .= '</span>';
									break;

								case 'icon':
									$link_attr = $this->get_thumbnail_link($portfolio_info, $args); 
									$overlay_content .= '<span class="gdlr-core-portfolio-icon-wrap" >';
									if( $info_size == 1 ){
										$link_tag = $link_attr['link-tag'];
										$overlay_content .= '<i class="gdlr-core-portfolio-icon ' . $this->portfolio_icon_class($link_attr['icon-type']) . '" ></i>';
									}else{
										$overlay_content .= $link_attr['link-tag'];
										$overlay_content .= '<i class="gdlr-core-portfolio-icon ' . $this->portfolio_icon_class($link_attr['icon-type']) . '" ></i>';
										$overlay_content .= '</a>';
									}
									$overlay_content .= '</span>';
									break;

								case 'title':
								case 'title_bottom':
									$port_title_hover_atts = array(
										'font-size' => empty($args['portfolio-hover-title-font-size'])? '': $args['portfolio-hover-title-font-size'],
										'font-weight' => empty($args['portfolio-hover-title-font-weight'])? '': $args['portfolio-hover-title-font-weight'],
										'letter-spacing' => empty($args['portfolio-hover-title-letter-spacing'])? '': $args['portfolio-hover-title-letter-spacing'],
										'text-transform' => (empty($args['portfolio-hover-title-text-transform']) || $args['portfolio-hover-title-text-transform'] == 'uppercase')? '': $args['portfolio-hover-title-text-transform']
									);
									$portfolio_thumbnail_title_class = apply_filters('gdlr_core_portfolio_thumbnail_title_class', '');

									if( empty($portfolio_info['title-link-to']) || $portfolio_info['title-link-to'] == 'title' ){
										if( $info_size == 1 ){
											$link_tag = '<a href="' . get_permalink() . '" >';
											$title_html = '<span class="gdlr-core-portfolio-title gdlr-core-title-font ' . esc_attr($portfolio_thumbnail_title_class) . '" ' . gdlr_core_esc_style($port_title_hover_atts) . ' >' . get_the_title() . '</span>';
										}else{
											$title_html = '<span class="gdlr-core-portfolio-title gdlr-core-title-font ' . esc_attr($portfolio_thumbnail_title_class) . '" ' . gdlr_core_esc_style($port_title_hover_atts) . ' ><a href="' . get_permalink() . '" >' . get_the_title() . '</a></span>';
										}
									}else{
										$args['lightbox-group'] .= 't';
										$link_attr = $this->get_thumbnail_link($portfolio_info, $args); 
										$args['lightbox-group'] = substr($args['lightbox-group'], 0, -1);

										if( $info_size == 1 ){
											$link_tag = $link_attr['link-tag'];
											$title_html = '<span class="gdlr-core-portfolio-title gdlr-core-title-font ' . esc_attr($portfolio_thumbnail_title_class) . '" ' . gdlr_core_esc_style($port_title_hover_atts) . ' >' . get_the_title() . '</span>';
										}else{
											$title_html = '<span class="gdlr-core-portfolio-title gdlr-core-title-font ' . esc_attr($portfolio_thumbnail_title_class) . '" ' . gdlr_core_esc_style($port_title_hover_atts) . ' >' . $link_attr['link-tag'] . get_the_title() . '</a></span>';
										}
									}

									if( $port_info == 'title_bottom' ){
										$overlay_outer .= $title_html;
									}else{
										$overlay_content .= $title_html;
									}
									
									break;
					
								case 'tag':
									$tag = get_the_term_list(get_the_ID(), 'portfolio_tag', '', ' <span class="gdlr-core-sep">/</span> ' , '');

									if( !empty($tag) ){
										$overlay_content .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-info-tag gdlr-core-info-font" ' . gdlr_core_esc_style(array(
											'font-size' => empty($args['portfolio-tag-font-size'])? '': $args['portfolio-tag-font-size'],
											'font-style' => (empty($args['portfolio-tag-font-style']) || $args['portfolio-tag-font-style'] == 'default')? '': $args['portfolio-tag-font-style'],
											'text-transform' => empty($args['portfolio-tag-text-transform'])? '': $args['portfolio-tag-text-transform'],
										)) . ' >';
										$overlay_content .= $tag;
										$overlay_content .= '</span>';
									}
									break;
									
								case 'category':
									$category = get_the_term_list(get_the_ID(), 'portfolio_category', '', ' <span class="gdlr-core-sep">/</span> ' , '');

									if( !empty($category) ){
										$overlay_content .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-info-tag gdlr-core-info-font" >';
										$overlay_content .= $category;							
										$overlay_content .= '</span>';		
									}
									break;
									
								case 'excerpt':
									if( $args['excerpt'] == 'specify-number' ){
										if( !empty($args['excerpt-number']) ){
											$overlay_content .= '<span class="gdlr-core-portfolio-content" >' . $this->get_excerpt($args['excerpt-number']) . '</span>';
										}
									}else if( $args['excerpt'] != 'none' ){
										$overlay_content .= '<span class="gdlr-core-portfolio-content" >' . gdlr_core_content_filter(get_the_content(), true) . '</span>';
									}
									break;
					
								default:
									break;
					
							} // switch
							
						} // foreach
					} // $args['hover-info']

					$extra_class .= empty($args['extra-class'])? '': ' ' . $args['extra-class'];
					if( !empty($feature_image) ){
						$extra_class .= empty($args['hover'])? '': ' gdlr-core-style-' . $args['hover'];

						$image_effect = '';
						if( empty($args['enable-thumbnail-zoom-on-hover']) || $args['enable-thumbnail-zoom-on-hover'] == 'enable' ){
							$image_effect .= ' gdlr-core-zoom-on-hover';
						}
						if( !empty($args['enable-thumbnail-grayscale-effect']) && $args['enable-thumbnail-grayscale-effect'] == 'enable' ){
							$image_effect .= ' gdlr-core-grayscale-effect';
						}

						$image_overlay_background = '';
						if( !empty($args['overlay-color']) ){
							if( empty($args['overlay-opacity']) ){
								$args['overlay-opacity'] = 1;
							}
							$image_overlay_background = array($args['overlay-color'], $args['overlay-opacity']);
						}
						
						$ret .= '<div class="gdlr-core-portfolio-thumbnail gdlr-core-media-image ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style($thumbnail_atts) . ' >';
						$ret .= '<div class="gdlr-core-portfolio-thumbnail-image-wrap ' . esc_attr($image_effect) . '" >';
						$ret .= gdlr_core_get_image($feature_image, $args['thumbnail-size'], array(
							'link-tag' => empty($link_tag)? '': $link_tag,
							'image-overlay-class' => $overlay_class,
							'image-overlay-content' => $overlay_content,
							'image-overlay-content-outer' => $overlay_outer,
							'image-overlay-background' => $image_overlay_background,
							'placeholder' => false
						));	
						$ret .= '</div>'; // gdlr-core-portfolio-thumbnail-image-wrap
						$ret .= '</div>'; // gdlr-core-portfolio-thumbnail
					}else if( empty($has_content) ){
						$ret .= '<div class="gdlr-core-portfolio-thumbnail gdlr-core-no-image ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style($thumbnail_atts) . ' >';
						$ret .= $overlay_content;
						$ret .= $overlay_outer;
						$ret .= '</div>';
					}

				// video thumbnail
				}else if( $portfolio_info['thumbnail-type'] == 'video' ){

					if( !empty($portfolio_info['video-url']) ){
						$ret .= '<div class="gdlr-core-portfolio-thumbnail gdlr-core-media-video ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style($thumbnail_atts) . ' >';
						$ret .= gdlr_core_get_video($portfolio_info['video-url'], $thumbnail_size);
						$ret .= '</div>';
					}

				// slider thumbnail
				}else if( $portfolio_info['thumbnail-type'] == 'slider' ){

					if( class_exists('gdlr_core_pb_element_gallery') ){
						if( !empty($portfolio_info['slider']) ){
							$ret .= '<div class="gdlr-core-portfolio-thumbnail gdlr-core-media-slider ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style($thumbnail_atts) . ' >';
							$ret .= gdlr_core_pb_element_gallery::get_flexslider_slider(
								$portfolio_info['slider'], 
								array( 'thumbnail-size' => $thumbnail_size ),
								(empty($args['lightbox-group'])? '': $args['lightbox-group'])
							);							$ret .= '</div>';
						}

					}

				} 

				return $ret;
			}

			// portfolio info
			function get_info( $type, $args ){

				$ret = '';

				switch( $type ){
					case 'date':
						$ret .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-info-date gdlr-core-info-font gdlr-core-skin-caption" >';
						$ret .= '<a href="' . get_day_link(get_the_time('Y'), get_the_time('m'), get_the_time('d')) . '">';
						$ret .= get_the_date();
						$ret .= '</a>';
						$ret .= '</span>';

						break;

					case 'tag':
						$tag = get_the_term_list(get_the_ID(), 'portfolio_tag', '', ' <span class="gdlr-core-sep">/</span> ' , '');

						if( !empty($tag) ){
							$ret .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-info-tag gdlr-core-info-font gdlr-core-skin-caption" ' . gdlr_core_esc_style(array(
								'font-size' => empty($args['portfolio-tag-font-size'])? '': $args['portfolio-tag-font-size'],
								'font-style' => (empty($args['portfolio-tag-font-style']) || $args['portfolio-tag-font-style'] == 'default')? '': $args['portfolio-tag-font-style'],
								'text-transform' => empty($args['portfolio-tag-text-transform'])? '': $args['portfolio-tag-text-transform'],
							)) . ' >';
							$ret .= $tag;
							$ret .= '</span>';
						}
						break;
						
					case 'category':
						$category = get_the_term_list(get_the_ID(), 'portfolio_category', '', ' <span class="gdlr-core-sep">/</span> ' , '');

						if( !empty($category) ){
							$ret .= '<span class="gdlr-core-portfolio-info gdlr-core-portfolio-info-tag gdlr-core-info-font" >';
							$ret .= $category;							
							$ret .= '</span>';		
						}
						break;
					default: 
						break;
				}

				return $ret;
			}

			// portfolio medium
			function portfolio_medium( $args ){

				$this->portfolio_medium_count++;

				$size = empty($args['portfolio-medium-size'])? 'small': $args['portfolio-medium-size'];
				$style = empty($args['portfolio-medium-style'])? 'left': $args['portfolio-medium-style'];

				$extra_class  = ' gdlr-core-size-' . $size; 
				if( $style == 'switch' ){
					$extra_class .= ' gdlr-core-style-' . (($this->portfolio_medium_count % 2 == 0)? 'right': 'left');
				}else{
					$extra_class .= ' gdlr-core-style-' . $style;
				}
				$extra_class .= (!empty($args['layout']) && $args['layout'] == 'carousel')? '': ' gdlr-core-item-pdlr';

				$args['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}

				$thumbnail = $this->get_thumbnail($args);
				$thumbnail = empty($thumbnail)? '': '<div class="gdlr-core-portfolio-thumbnail-wrap">' . $thumbnail . $badge . '</div>';
				
				$ret  = '<div class="gdlr-core-item-list gdlr-core-portfolio-medium ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style(array(
					'margin-bottom' => empty($args['portfolio-item-bottom-margin'])? '': $args['portfolio-item-bottom-margin']
				)) . ' >';
				if( $style == 'left' || ($style == 'switch' && $this->portfolio_medium_count % 2 == 1) ){ 
					$ret .= $thumbnail;
				}

				$ret .= '<div class="gdlr-core-portfolio-content-wrap" >';
				$ret .= $this->portfolio_title($args);
				if( empty($args['enable-portfolio-tag']) || $args['enable-portfolio-tag'] == 'enable' ){
					$ret .= $this->get_info('tag', $args);
				}

				$ret .= $this->portfolio_excerpt($args);

				if( !empty($args['read-more-button']) && $args['read-more-button'] == 'enable' ){
					$ret .= '<a class="gdlr-core-portfolio-read-more" href="' . get_permalink() . '" >' . esc_html__('Read More', 'goodlayers-core-portfolio') . '</a>';
				}
				$ret .= '</div>'; // gdlr-core-portfolio-content-wrap

				if( $style == 'right' || ($style == 'switch' && $this->portfolio_medium_count % 2 == 0) ){ 
					$ret .= $thumbnail;
				}
				$ret .= '</div>'; // gdlr-core-blog-medium
				
				return $ret;
			} 

			// portfolio medium feature
			function portfolio_medium_feature( $args ){
				
				global $portfolio_medium_feature_id;
				$portfolio_medium_feature_id = empty($portfolio_medium_feature_id)? 1: $portfolio_medium_feature_id + 1;

				$extra_class  = (!empty($args['layout']) && $args['layout'] == 'carousel')? '': ' gdlr-core-item-pdlr';
				$args['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				$ret  = '<div class="gdlr-core-item-list gdlr-core-portfolio-medium-feature ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style(array(
					'margin-bottom' => empty($args['portfolio-item-bottom-margin'])? '': $args['portfolio-item-bottom-margin']
				)) . ' >';
				$ret .= '<div class="gdlr-core-item-list-inner" >';
				$ret .= '<div class="gdlr-core-portfolio-content-wrap gdlr-core-skin-e-background" >';
				$ret .= $this->portfolio_title($args);
				if( empty($args['enable-portfolio-tag']) || $args['enable-portfolio-tag'] == 'enable' ){
					$ret .= $this->get_info('tag', $args);
				}
				$ret .= $this->portfolio_excerpt($args);
				$ret .= '</div>'; // gdlr-core-portfolio-content-wrap

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				$thumbnail = $this->get_thumbnail($args);
				$ret .= empty($thumbnail)? '': '<div class="gdlr-core-portfolio-thumbnail-wrap gdlr-core-js" data-sync-height="portfolio-medium-feature-' . esc_attr($portfolio_medium_feature_id) . '" >' . $thumbnail . $badge . '</div>';
				$ret .= '</div>'; // gdlr-core-item-list-inner
				$ret .= '</div>'; // gdlr-core-blog-medium-feature
				
				return $ret;
			} 
			
			// portfolio modern
			function portfolio_modern( $args ){
				
				$ret = '';
				$port_atts = array();
				if( !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
					$port_atts['background-shadow-size'] = $args['frame-shadow-size'];
					$port_atts['background-shadow-color'] = $args['frame-shadow-color'];
					$port_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];

					$extra_class .= ' gdlr-core-outer-frame-element';
				}
				$port_atts['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				if( !empty($badge) ){
					$ret .= '<div class="gdlr-core-portfolio-badge-wrap" >';
				}

				$ret .= '<div class="gdlr-core-portfolio-modern" ' . gdlr_core_esc_style($port_atts) . ' >';
				$ret .= $this->get_thumbnail($args, false);
				$ret .= '</div>'; // gdlr-core-portfolio-modern
				
				if( !empty($badge) ){
					$ret .= $badge . '</div>';
				}

				return $ret;
			} 
			
			// portfolio modern desc
			function portfolio_modern_desc( $args ){
				
				$ret = '';
				$args['hover-info'] = array('icon', 'title');
				if( empty($args['enable-portfolio-tag']) || $args['enable-portfolio-tag'] == 'enable' ){
					$args['hover-info'][] = 'tag';
				} 
				$args['hover-info'][] = 'excerpt';
				$args['hover'] = '';
				
				$port_atts = array();
				if( !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
					$port_atts['background-shadow-size'] = $args['frame-shadow-size'];
					$port_atts['background-shadow-color'] = $args['frame-shadow-color'];
					$port_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];

					$extra_class .= ' gdlr-core-outer-frame-element';
				}
				$port_atts['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				if( !empty($badge) ){
					$ret .= '<div class="gdlr-core-portfolio-badge-wrap" >';
				}

				$ret .= '<div class="gdlr-core-portfolio-modern-desc" ' . gdlr_core_esc_style($port_atts) . ' >';
				$ret .= $this->get_thumbnail($args, false);
				$ret .= '</div>'; // gdlr-core-portfolio-modern
				
				if( !empty($badge) ){
					$ret .= $badge . '</div>';
				}

				return $ret;
			} 	

			// portfolio metro
			function portfolio_metro( $args ){
				
				if( $args['portfolio-style'] == 'metro' ){
					$args['extra-class'] = ' gdlr-core-metro-rvpdlr';
				}
				
				$ret = '';

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				if( !empty($badge) ){
					$ret .= '<div class="gdlr-core-portfolio-badge-wrap" >';
				}

				$port_atts = array();
				if( !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
					$port_atts['background-shadow-size'] = $args['frame-shadow-size'];
					$port_atts['background-shadow-color'] = $args['frame-shadow-color'];
					$port_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];

					$extra_class .= ' gdlr-core-outer-frame-element';
				}
				$port_atts['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				$ret .= '<div class="gdlr-core-portfolio-metro" ' . gdlr_core_esc_style($port_atts) . ' >';
				$ret .= $this->get_thumbnail($args, false);
				$ret .= '</div>'; // gdlr-core-portfolio-modern
				
				if( !empty($badge) ){
					$ret .= $badge . '</div>';
				}

				return $ret;
			} 
			
			// portfolio grid
			function portfolio_grid( $args ){
				
				$ret = '';
				$extra_class  = ' gdlr-core-' . (empty($args['portfolio-grid-text-align'])? 'left': $args['portfolio-grid-text-align']) . '-align';
				$extra_class .= ' gdlr-core-style-' . (empty($args['portfolio-grid-style'])? 'normal': $args['portfolio-grid-style']);
				
				$thumbnail_shadow = false;
				
				$port_atts = array(
					'margin-bottom' => empty($args['portfolio-item-bottom-margin'])? '': $args['portfolio-item-bottom-margin']
				);
				if( !empty($args['portfolio-grid-style']) && $args['portfolio-grid-style'] == 'with-frame' ){
					if( !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
						$port_atts['background-shadow-size'] = $args['frame-shadow-size'];
						$port_atts['background-shadow-color'] = $args['frame-shadow-color'];
						$port_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];	

						$extra_class .= ' gdlr-core-outer-frame-element';					
					}
					$port_atts['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				}else{
					$thumbnail_shadow = true;
					$args['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];
				}

				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				if( !empty($badge) ){
					$ret .= '<div class="gdlr-core-portfolio-badge-wrap" >';
				}

				if( !empty($args['portfolio-grid-style']) && $args['portfolio-grid-style'] == 'with-frame' &&
					(empty($args['layout']) || $args['layout'] != 'masonry') ){
					
					$ret .= '<div class="gdlr-core-portfolio-grid ' . esc_attr($extra_class) . ' gdlr-core-js" data-sync-height="portfolio-item-' . esc_attr($this->portfolio_item_id) . '" ' . gdlr_core_esc_style($port_atts) . ' >';
				}else{
					$ret .= '<div class="gdlr-core-portfolio-grid ' . esc_attr($extra_class) . '" ' . gdlr_core_esc_style($port_atts) . ' >';
				}
				if( !empty($args['portfolio-grid-style']) && $args['portfolio-grid-style'] == 'with-frame' ){
					$ret .= '<div class="gdlr-core-portfolio-grid-frame gdlr-core-skin-e-background" ' . gdlr_core_esc_style(array(
						'opacity' => isset($args['portfolio-frame-opacity'])? $args['portfolio-frame-opacity']: ''
					)) . ' ></div>';
				}
				
				$ret .= $this->get_thumbnail($args, true, $thumbnail_shadow);

				// portfolio-frame-opacity
				if( !empty($args['portfolio-grid-style']) && $args['portfolio-grid-style'] == 'with-frame' ){
					$ret .= '<div class="gdlr-core-portfolio-content-wrap gdlr-core-skin-divider" ' . gdlr_core_esc_style(array(
						'padding' => empty($args['portfolio-frame-padding'])? '': $args['portfolio-frame-padding']
					)) . ' >';
				}else{
					$ret .= '<div class="gdlr-core-portfolio-content-wrap gdlr-core-skin-divider" >';
				}				
					
				$ret .= $this->portfolio_title($args);
				if( empty($args['enable-portfolio-tag']) || $args['enable-portfolio-tag'] == 'enable' ){
					$ret .= $this->get_info('tag', $args);
				}
				if( !empty($args['enable-portfolio-date']) && $args['enable-portfolio-date'] == 'enable' ){
					$ret .= $this->get_info('date', $args);
				}
				
				$ret .= $this->portfolio_excerpt($args);

				if( !empty($args['read-more-button']) && $args['read-more-button'] == 'enable' ){
					$ret .= '<div class="gdlr-core-portfolio-read-more-wrap" >';
					$ret .= '<a class="gdlr-core-portfolio-read-more" href="' . get_permalink() . '" >' . esc_html__('Read More', 'goodlayers-core-portfolio') . '</a>';
					$ret .= '</div>';
				}
				$ret .= '</div>'; // gdlr-core-portfolio-content-wrap
				$ret .= '</div>'; // gdlr-core-portfolio-modern

				if( !empty($badge) ){
					$ret .= $badge . '</div>';
				}
				
				return $ret;
			}

			// portfolio grid2
			function portfolio_grid2( $args ){
				
				$ret = '';
				$extra_class  = ' gdlr-core-' . (empty($args['portfolio-grid-text-align'])? 'left': $args['portfolio-grid-text-align']) . '-align';
				
				$port_atts = array(
					'border-width' => empty($args['portfolio-frame-border-size'])? '': $args['portfolio-frame-border-size'],
					'border-color' => empty($args['portfolio-frame-border-color'])? '': $args['portfolio-frame-border-color']
				);
				if( !empty($args['frame-shadow-size']['size']) && !empty($args['frame-shadow-color']) && !empty($args['frame-shadow-opacity']) ){
					$port_atts['background-shadow-size'] = $args['frame-shadow-size'];
					$port_atts['background-shadow-color'] = $args['frame-shadow-color'];
					$port_atts['background-shadow-opacity'] = $args['frame-shadow-opacity'];
					
					$extra_class .= ' gdlr-core-outer-frame-element';
				}
				$port_atts['border-radius'] = empty($args['portfolio-border-radius'])? '': $args['portfolio-border-radius'];

				// move up with shadow effect
				$effect_class = '';
				if( !empty($args['enable-move-up-shadow-effect']) && $args['enable-move-up-shadow-effect'] == 'enable' ){
					$effect_class = ' gdlr-core-move-up-with-shadow gdlr-core-outer-frame-element';
				}


				$badge = '';
				if( !empty($args['enable-badge']) && $args['enable-badge'] == 'enable' ){
					$portfolio_info = get_post_meta(get_the_ID(), 'gdlr-core-page-option', true);
					$badge .= $this->portfolio_badge($portfolio_info); 
				}
				if( !empty($badge) ){
					$ret .= '<div class="gdlr-core-portfolio-badge-wrap ' . esc_attr($effect_class) . '" >';
				}else{
					$extra_class .= $effect_class;
				}

				if( empty($args['layout']) || $args['layout'] != 'masonry' ){
					$ret .= '<div class="gdlr-core-portfolio-grid2 gdlr-core-js ' . esc_attr($extra_class) . ' gdlr-core-skin-e-background" data-sync-height="portfolio-item-' . esc_attr($this->portfolio_item_id) . '" ' . gdlr_core_esc_style($port_atts) . ' >';
				}else{
					$ret .= '<div class="gdlr-core-portfolio-grid2 ' . esc_attr($extra_class) . ' gdlr-core-skin-e-background" ' . gdlr_core_esc_style($port_atts) . ' >';
				}
				
				$ret .= $this->get_thumbnail($args);
				// portfolio-frame-opacity
				$ret .= '<div class="gdlr-core-portfolio-content-wrap gdlr-core-skin-divider" ' . gdlr_core_esc_style(array(
					'padding' => empty($args['portfolio-frame-padding'])? '': $args['portfolio-frame-padding']
				)) . ' >';
				if( !empty($args['portfolio-grid-style']) && $args['portfolio-grid-style'] == 'with-frame' ){
					$ret .= '<div class="gdlr-core-portfolio-grid-frame" ' . gdlr_core_esc_style(array(
						'opacity' => isset($args['portfolio-frame-opacity'])? $args['portfolio-frame-opacity']: ''
					)) . ' ></div>';
				}

				$ret .= $this->portfolio_title($args);
				if( empty($args['enable-portfolio-tag']) || $args['enable-portfolio-tag'] == 'enable' ){
					$ret .= $this->get_info('tag', $args);
				}
				$ret .= '</div>'; // gdlr-core-portfolio-content-wrap
				$ret .= '</div>'; // gdlr-core-portfolio-grid2
				
				if( !empty($badge) ){
					$ret .= $badge . '</div>';
				}

				return $ret;
			} 
			
		} // gdlr_core_blog_item
	} // class_exists
© 2025 XylotrechusZ