관리-도구
편집 파일: freemium_functions.php
<?php ////////////////////////////////////////////////////////////// //=========================================================== // freemium_functions.php //=========================================================== // PAGELAYER // Inspired by the DESIRE to be the BEST OF ALL // ---------------------------------------------------------- // Started by: Pulkit Gupta // Date: 23rd Jan 2017 // Time: 23:00 hrs // Site: http://pagelayer.com/wordpress (PAGELAYER) // ---------------------------------------------------------- // Please Read the Terms of use at http://pagelayer.com/tos // ---------------------------------------------------------- //=========================================================== // (c)Pagelayer Team //=========================================================== ////////////////////////////////////////////////////////////// // Are we being accessed directly ? if(!defined('PAGELAYER_PRO_VERSION')) { exit('Hacking Attempt !'); } // Get page title - 2C function pagelayer_get_the_title( $including_context = false ) { $title = ''; if(pagelayer_is_live() || wp_doing_ajax() || pagelayer_is_gutenberg_editor()){ return 'Title'; } if ( is_singular() ) { $title = get_the_title(); if ( $including_context ) { $post_type_obj = get_post_type_object( get_post_type() ); $title = sprintf( '%s: %s', $post_type_obj->labels->singular_name, $title ); } } elseif ( is_search() ) { $title = sprintf( __( 'Search Results for: %s'), get_search_query() ); if ( get_query_var( 'paged' ) ) { $title .= sprintf( __( ' – Page %s' ), get_query_var( 'paged' ) ); } } elseif ( is_category() ) { $title = single_cat_title( '', false ); if ( $including_context ) { $title = sprintf( __( 'Category Archives: %s' ), $title ); } } elseif ( is_tag() ) { $title = single_tag_title( '', false ); if ( $including_context ) { $title = sprintf( __( 'Tag Archives: %s' ), $title ); } } elseif ( is_author() ) { $title = get_the_author() ; if ( $including_context ) { $title = sprintf( __( 'Author Archives: %s' ), $title ); } } elseif ( is_year() ) { $title = get_the_date( _x( 'Y', 'yearly archives date format' ) ); if ( $including_context ) { $title = sprintf( __( 'Yearly Archives: %s' ), $title ); } } elseif ( is_month() ) { $title = get_the_date( _x( 'F Y', 'monthly archives date format' ) ); if ( $including_context ) { $title = sprintf( __( 'Monthly Archives: %s' ), $title ); } } elseif ( is_day() ) { $title = get_the_date( _x( 'F j, Y', 'daily archives date format' ) ); if ( $including_context ) { $title = sprintf( __( 'Daily Archives: %s' ), $title ); } } elseif ( is_tax( 'post_format' ) ) { if ( is_tax( 'post_format', 'post-format-aside' ) ) { $title = _x( 'Asides', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) { $title = _x( 'Galleries', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-image' ) ) { $title = _x( 'Images', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-video' ) ) { $title = _x( 'Videos', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-quote' ) ) { $title = _x( 'Quotes', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-link' ) ) { $title = _x( 'Links', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-status' ) ) { $title = _x( 'Statuses', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-audio' ) ) { $title = _x( 'Audio', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-chat' ) ) { $title = _x( 'Chats', 'post format archive title' ); } } elseif ( is_post_type_archive() ) { $title = post_type_archive_title( '', false ); if ( $including_context ) { $title = sprintf( __( 'Archives: %s' ), $title ); } } elseif ( is_tax() ) { $title = single_term_title( '', false ); if ( $including_context ) { $tax = get_taxonomy( get_queried_object()->taxonomy ); $title = sprintf( __( '%1$s: %2$s' ), $tax->labels->singular_name, $title ); } } elseif ( is_404() ) { $title = __( 'Page Not Found' ); } elseif ( is_archive() ) { $title = get_the_archive_title(); } elseif ( is_home() ) { $title = single_post_title('', false); } return $title; } // Get Taxonomies function pagelayer_tax_list($item = '', $page = false){ // Get types $types = pagelayer_post_types($page); // Loop thru foreach($types as $slug => $label){ // Get the items $items = get_object_taxonomies($slug, 'objects'); foreach($items as $name => $v) { if(!isset($taxonomies[$name])){ $taxonomies[$name] = array('label' => $v->labels->singular_name, 'posttypes' => array($label)); }else{ $taxonomies[$name]['posttypes'][] = $label; } } } // Make it simple foreach($taxonomies as $k => $v){ $taxonomies[$k] = $v['label'].' ('.implode(', ', $v['posttypes']).')'; } $pos = array_search($item, array_keys($taxonomies)); if(!empty($pos)) { $cut = array_splice($taxonomies, $pos, 1); $taxonomies = $cut + $taxonomies; } return $taxonomies; } ///////////////////////////////////// // Miscellaneous Shortcode Functions ///////////////////////////////////// // The types of Posts function pagelayer_post_types($page = false){ // Get the types $args = array('public' => TRUE); $types = get_post_types($args, 'objects'); // Unset Page if not required if($page == false){ unset($types['page']); } // Remove Attachment types ! unset($types['attachment']); foreach($types as $name => $type){ $return[$name] = $type->labels->singular_name; } return $return; } // Get all posts and pages list function pagelayer_get_posts($args = array()){ if(empty($args)){ $args = array_keys(pagelayer_post_types(true)); } $posts_list = array(); // Get type foreach($args as $p){ // Create post list foreach(get_posts(['post_type' => $p]) as $post){ $posts_list[$post->ID] = $post->post_title; } } return $posts_list; } // Get Menu List() function pagelayer_get_menu_list($return_def = false){ $menus = wp_get_nav_menus(); $nav_menu = array( '0' => __('-- Select Menu --') ); if(empty($menus)){ return $nav_menu; } $default = $menus[0]->term_id; foreach ( $menus as $menu ) { $nav_menu[$menu->term_id] = $menu->name; if($default > $menu->term_id){ $default = $menu->term_id; } } if($return_def){ return $default; } return $nav_menu; } // Animated Heading function pagelayer_sc_anim_heading(&$el){ $el['atts']['rotate_html'] = ''; //Creates html for rotating text if(!empty($el['atts']['rotate_text'])){ $rotate_text = ''; $rotate_text = explode(',', $el['atts']['rotate_text']); $el['atts']['rotate_html'] .= '<div class="pagelayer-animated-heading pagelayer-rotating-text pagelayer-words-wrapper">'; //print_r($rotate_text); foreach($rotate_text as $key => $val){ //print_r($key); $el['atts']['rotate_html'] .= '<span'; if( $key == 0){ $el['atts']['rotate_html'] .= ' class="pagelayer-is-visible"'; } $el['atts']['rotate_html'] .= '>' . $rotate_text[$key] . '</span>'; } $el['atts']['rotate_html'] .= '</div>'; } //Required classes for particular rotate $el['atts']['rotate_req'] = ''; $letters = ['pagelayer-aheading-rotate2', 'pagelayer-aheading-rotate3', 'pagelayer-aheading-scale']; if(!empty($el['atts']['animations'])){ if(in_array($el['atts']['animations'], $letters)){ $el['atts']['rotate_req'] = 'letters '; } if($el['atts']['animations'] == 'clip'){ $el['atts']['rotate_req'] = 'is-full-width '; } } } // Contact Form function pagelayer_sc_contact(&$el){ $recaptcha_version = get_option('pagelayer_recaptcha_version', ''); $el['atts']['grecaptcha'] = get_option('pagelayer_google_captcha'); if(!empty($el['atts']['captcha'])){ if($recaptcha_version == 'v3'){ $el['atts']['grecaptcha_v3'] = true; }else{ $el['atts']['grecaptcha_v2'] = true; } if(!wp_script_is('pagelayer_cap_script', 'registered')){ $pagelayer_cap_lang = get_option('pagelayer_google_captcha_lang'); $lang = empty($pagelayer_cap_lang) ? '' : '&hl='.$pagelayer_cap_lang; $cap_api = ($recaptcha_version == 'v3') ? $el['atts']['grecaptcha'].$lang : "explicit$lang"; wp_register_script('pagelayer_cap_script', "https://www.google.com/recaptcha/api.js?render=$cap_api", array(), PAGELAYER_PRO_VERSION, true); } wp_enqueue_script('pagelayer_cap_script'); } } // Contact Form Item function pagelayer_sc_contact_item(&$el){ $html = ''; $options = array(); $placeholder = ''; $required = ''; if(!empty($el['atts']['required'])){ $required = 'required'; } if(!empty($el['atts']['label_name']) && empty($el['atts']['label_as_holder'])){ $html = '<label for="'.pagelayer_isset($el['atts'], 'field_name').'"><span class="pagelayer-form-label">'.$el['atts']['label_name'].'</span>'; if(!empty($required)){ $html .= ' *'; } $html .= '</label>'; } if(!empty($el['atts']['label_as_holder'])){ $placeholder = $el['atts']['label_name']; }else{ if(!empty($el['atts']['placeholder'])) $placeholder = $el['atts']['placeholder']; } // File accept $file_accept = '.jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv'; if(!empty($el['atts']['accept_file'])){ $file_accept = $el['atts']['accept_file']; } if($el['atts']['field_type'] == 'select'){ $html .= '<select name="'.$el['atts']['field_name'].'" '.$required.'>'; if(!empty($el['atts']['label_name']) && !empty($el['atts']['label_as_holder'])){ $html .= '<option value="" disabled selected>'.$el['atts']['label_name'].'</option>'; }else{ $html .= '<option value="" disabled selected>---</option>'; } if(!empty($el['atts']['values'])){ $options = explode("\n", $el['atts']['values']); for($x = 0; $x < sizeof($options); $x++){ $html .= '<option value="'.trim($options[$x]).'" >'.trim($options[$x]).'</option>'; } } $html .= '</select>'; }elseif($el['atts']['field_type'] == 'checkbox'){ $html .= '<div class="pagelayer-radcheck-holder pagelayer-contact-checkbox" '.$required.'>'; if(!empty($el['atts']['values'])){ $options = explode("\n", $el['atts']['values']); for($x = 0; $x < sizeof($options); $x++){ $html .= '<div><input type="checkbox" id="'.$el["id"].trim($options[$x]).'" name="'.$el['atts']['field_name'].'[]" value="'.trim($options[$x]).'"/><label for="'.$el["id"].trim($options[$x]).'" class="pagelayer-form-label">'.trim($options[$x]).'</label></div>'; } } $html .= '</div>'; }elseif($el['atts']['field_type'] == 'radio'){ $html .= '<div class="pagelayer-radcheck-holder">'; if(!empty($el['atts']['values'])){ $options = explode("\n", $el['atts']['values']); for($x = 0; $x < sizeof($options); $x++){ $html .= '<div><input type="radio" name="'.$el['atts']['field_name'].'"'.$required.' value="'.trim($options[$x]).'"/><span> '.trim($options[$x]).'</span></div>'; } } $html .= '</div>'; }elseif($el['atts']['field_type'] == 'textarea'){ $html .= '<textarea name="'.$el['atts']['field_name'].'" rows="'.$el['atts']['textarea_rows'].'" '.$required.' placeholder="'.$placeholder.'"></textarea>'; }elseif($el['atts']['field_type'] == 'file'){ $html .= '<input type="'.$el['atts']['field_type'].'" '.$required.' name="'.$el['atts']['field_name'].'" accept="'.$file_accept.'" />'; }elseif($el['atts']['field_type'] == 'label'){ $html .= ''; }else{ $html .= '<input type="'.$el['atts']['field_type'].'" '.$required.' placeholder="'.$placeholder.'" name="'.$el['atts']['field_name'].'" />'; } $el['atts']['fieldhtml'] = $html; } // Featured Image Handler function pagelayer_sc_featured_img(&$el){ // Image size if(!empty($el['atts']['size'])){ $size = $el['atts']['size']; } $thumbnail_id = get_post_thumbnail_id(); $title = $alt = ''; if(!empty($thumbnail_id)){ $title = get_the_title($thumbnail_id); $alt = get_post_meta($thumbnail_id, '_wp_attachment_image_alt', true); } if($size){ $src = get_the_post_thumbnail_url(null, $size); }else{ $src = get_the_post_thumbnail_url(); } // Fallback image if(empty($src) && !empty($el['atts']['img'])){ $src = !empty($el['tmp']['img-'.$size.'-url']) ? $el['tmp']['img-'.$size.'-url'] : pagelayer_isset($el['tmp'], 'img-url'); $alt = $el['tmp']['img-alt']; $title = $el['tmp']['img-title']; } $el['atts']['img_html'] = ''; if(!empty($src)){ $el['atts']['img_html'] = '<img class="pagelayer-img" src="'.$src.'" title="'.$title.'" alt="'.$alt.'" />'; }elseif(pagelayer_is_live_template()){ $el['atts']['img_html'] = '<img class="pagelayer-img" src="'.PAGELAYER_URL.'/images/default-image.png" />'; } // What is the link ? if(!empty($el['atts']['link_type'])){ // Custom url if($el['atts']['link_type'] == 'custom_url'){ // Backward compatibility for new link props pagelayer_add_link_backward($el, array( 'rel' => '', 'selector' => '.pagelayer-ele-link')); $el['atts']['func_link'] = empty($el['tmp']['link']) ? '' : $el['tmp']['link']; } // Link to the media file itself if($el['atts']['link_type'] == 'media_file' || $el['atts']['link_type'] == 'lightbox'){ $el['atts']['func_link'] = $src; } } } // Site Title Handler function pagelayer_sc_wp_title(&$el){ // Decide the image URL $el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'id-' . pagelayer_isset($el['atts'], 'id-size') . '-url'); $el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'id-url') : $el['atts']['func_id']; // Default Logo if(empty($el['atts']['logo_img_type'])){ // Load it $logo = pagelayer_site_logo(); // Only if we get it if(!empty($logo)){ $logo_img_size = pagelayer_isset($el['atts'], 'logo_img_size'); $el['atts']['func_image'] = pagelayer_isset($logo, $logo_img_size.'-url'); $el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($logo, 'url') : $el['atts']['func_image']; $el['tmp']['logo_img-title'] = pagelayer_isset($logo, 'title'); $el['tmp']['logo_img-alt'] = pagelayer_isset($logo, 'alt'); } // Custom logo }else{ $logo_img_size = pagelayer_isset($el['atts'], 'logo_img_size'); $el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'logo_img-' . $logo_img_size . '-url'); $el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'logo_img-url') : $el['atts']['func_image']; $el['tmp']['logo_img-title'] = pagelayer_isset($el['tmp'],'logo_img-title'); $el['tmp']['logo_img-alt'] = pagelayer_isset($el['tmp'], 'logo_img-alt'); } } // Primary menu Handler function pagelayer_sc_wp_menu(&$el){ if(!empty($el['atts']['inside_mega'])){ $el['atts']['nav_menu'] = ''; if(pagelayer_is_live()){ $el['atts']['nav_menu'] = 'Primary Menu Holder. Please select the correct menu.'; } return true; } // Setting default toggle icon. If the icon is empty. if(empty($el['atts']['menu_toggle_icon'])){ $el['atts']['menu_toggle_icon'] = 'fas fa-bars'; } // Load Pagelayer nav menu walker include_once(PAGELAYER_DIR.'/main/nav_walker.php'); $el['atts']['nav_menu'] = wp_nav_menu( array( 'menu' => wp_get_nav_menu_object(pagelayer_isset($el['atts'], 'nav_list')), 'menu_id' => pagelayer_isset($el['atts'], 'nav_list'), 'menu_class' => 'pagelayer-wp_menu-ul', 'walker' => new Pagelayer_Walker_Nav_Menu(), //'theme_location' => 'primary', 'echo' => false, ) ); } // Post Navigation Handler function pagelayer_sc_post_nav(&$el){ $in_same_term = false; $taxonomies = 'category'; $title = ''; $arrows_list = $el['atts']['arrows_list']; if(!empty($el['atts']['in_same_term'])){ $in_same_term = true; $taxonomies = $el['atts']['taxonomies']; } if(!empty($el['atts']['post_title'])){ $title = '<span class="pagelayer-post-nav-title">%title</span>'; } $next_label = '<span class="pagelayer-next-holder"> <span class="pagelayer-post-nav-link"> '.$el["atts"]["next_label"].'</span>'.$title.' </span> <span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-right"></span>'; $prev_label = '<span class="pagelayer-post-nav-icon fa fa-'.$arrows_list.'-left"></span> <span class="pagelayer-next-holder"> <span class="pagelayer-post-nav-link"> '.$el["atts"]["prev_label"].'</span>'.$title.' </span>'; $el['atts']['next_link'] = get_next_post_link('%link', $next_label, $in_same_term, '', $taxonomies); $el['atts']['prev_link'] = get_previous_post_link('%link', $prev_label, $in_same_term, '', $taxonomies ); } // Comments Handler function pagelayer_sc_post_comment(&$el){ global $post; // Is it custom ? if($el['atts']['post_type'] == 'custom' && !empty($el['atts']['post_id'])){ $orig_post = $post; $post = get_post($el['atts']['post_id']); } $post_id = $post->ID; //echo $post_id.' - '.$el['atts']['post_id']; if ( comments_open($post_id) || get_comments_number($post_id) ) { // Handel comments template echo ob_start(); comments_template(); $el['atts']['post_comment'] = '<div class="pagelayer-comments-template">'.ob_get_clean().'</div>'; // Comments are now closed if(!comments_open($post_id)){ $el['atts']['post_comment'] = '<div class="pagelayer-comments-close"> <h2>Comments are closed!</h2> </div>'; } }else{ $el['atts']['post_comment'] = ''; } if(pagelayer_is_live_template() || $post->post_type == 'pagelayer-template'){ $el['atts']['post_comment'] = '<div class="pagelayer-comments-close"> <center><h4>Comments section !</h4></center> </div>'; } if(!empty($orig_post)){ $post = $orig_post; } } // post navigation Handler function pagelayer_sc_post_info_list(&$el){ global $post; $el['atts']['post_info_content'] =''; switch($el['atts']['type']){ case 'author': $author_id = get_the_author_meta( 'ID' ) ? get_the_author_meta( 'ID' ) : $GLOBALS['post']->post_author; $el['atts']['link'] = get_author_posts_url( $author_id ); $el['atts']['avatar_url'] = get_avatar_url( $author_id, 96 ); $el['atts']['post_info_content'] = get_the_author_meta( 'display_name', $author_id ); break; case 'date': $format = [ 'default' => 'F j, Y', '0' => 'F j, Y', '1' => 'Y-m-d', '2' => 'm/d/Y', '3' => 'd/m/Y', 'custom' => empty( $el['atts']['date_format_custom'] ) ? 'F j, Y' : $el['atts']['date_format_custom'], ]; $el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['date_format'] ] ); $el['atts']['link'] = get_day_link( get_post_time( 'Y' ), get_post_time( 'm' ), get_post_time( 'j' ) ); break; case 'time': $format = [ 'default' => 'g:i a', '0' => 'g:i a', '1' => 'g:i A', '2' => 'H:i', 'custom' => empty( $el['atts']['time_format_custom'] ) ? 'F j, Y' : $el['atts']['time_format_custom'], ]; $el['atts']['post_info_content'] = get_the_time( $format[ $el['atts']['time_format'] ] ); if(!pagelayer_is_live_template()){ $el['atts']['link'] = 'javascript:void(0)'; $el['atts']['info_link'] = 1; } break; case 'comments': $el['atts']['post_info_content'] = (int) get_comments_number(); $el['atts']['link'] = get_comments_link(); // Comments are closed then dont show ! if(pagelayer_is_live_template() || $GLOBALS['post']->post_type == 'pagelayer-template'){ $el['atts']['post_info_content'] = 1; }elseif(!comments_open($post->ID)){ $el['atts']['post_info_content'] = ''; } break; case 'terms': $taxonomy = $el['atts']['taxonomy']; $terms = wp_get_post_terms( get_the_ID(), $taxonomy ); foreach ( $terms as $term ) { $el['atts']['post_info_content'] .= ' <a href="'. get_term_link( $term ) .'"> '. $term->name .' </a>'; } if(pagelayer_is_live_template() || $GLOBALS['post']->post_type == 'pagelayer-template'){ $el['atts']['post_info_content'] .= '<a>Dummy '.ucfirst(str_replace('_', ' ', $el['atts']['taxonomy'])).'</a>'; } $el['atts']['info_link'] = ''; break; case 'custom': $el['atts']['post_info_content'] = $el['atts']['type_custom']; $el['atts']['link'] = $el['atts']['info_custom_link']; break; } } // Post Content Handler - 2C function pagelayer_sc_post_content(&$el){ static $did_posts = []; global $pagelayer; $post_obj = get_post(); if(empty( $post_obj )){ return false; } if ( post_password_required( $post_obj->ID ) && !pagelayer_is_live() ) { $el['atts']['post_content'] = get_the_password_form( $post_obj->ID ); return; } // Avoid recursion if ( isset( $did_posts[$post_obj->ID] ) || pagelayer_is_live_template($post_obj) ) { $el['atts']['post_content'] = '<div style="min-height:20px;background-color:#e3e3e3;text-align:center">Post Content Holder</div>'; return; } // Is it an attachment if(is_attachment()){ $el['atts']['post_content'] = '<center>'.wp_get_attachment_image( get_the_ID(), 'full' ).'</center>'; return; } // To prevent recursion, set it to True $did_posts[$post_obj->ID] = true; $content = $post_obj->post_content; // If we are rendering a template and this post content is being edited live, then dont_make_editable is set true in pagelayer_get_post_content. Hence we need to set it as false and revert it after rendering the posts content ! if(!empty($pagelayer->dont_make_editable)){ $reset = $pagelayer->dont_make_editable; $pagelayer->dont_make_editable = false; // While rendering post content inside the template $rendering_template_id = $pagelayer->rendering_template_id; $pagelayer->rendering_template_id = $post_obj->ID; } // Split to pages. setup_postdata( $post_obj ); $content = apply_filters( 'the_content', get_the_content() ); if(!empty($reset)){ $pagelayer->rendering_template_id = $rendering_template_id; $pagelayer->dont_make_editable = $reset; } $content .= wp_link_pages( array( 'before' => '<p class="post-nav-links pagelayer-page-links"><span class="page-links-title pagelayer-page-links-title">' . __( 'Pages:') . '</span>', 'after' => '</p>', 'echo' => 0, ) ); $el['atts']['post_content'] = $content; } // Archive Posts shows the posts as per the QUERY of the current page function pagelayer_sc_archive_posts(&$el){ global $wp_query, $pagelayer; $query_args = $wp_query->query_vars; if(pagelayer_is_live() || (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'pagelayer_archive_posts_data')){ $query_args = ['post_type' => 'post']; $dummy_pagination = 10; } $allow_param = array('show_thumb', 'thumb_size', 'show_content', 'show_title', 'more', 'btn_type', 'size', 'icon_position', 'icon', 'show_more', 'meta_sep', 'exc_length', 'thumb_img_type', 'infinite_types' ); $param = array(); foreach($allow_param as $val){ $param[$val] = !empty($el['atts'][$val]) ? $el['atts'][$val] : ''; } if(!empty($el['atts']['meta'])){ $meta_arr = explode(',',$el['atts']['meta']); //pagelayer_print($el['atts']['meta']); foreach($meta_arr as $arr){ $param[$arr] = $arr; } } if(!empty($el['atts']['thumb_img_type'])){ $thumb_size = pagelayer_isset($el['atts'], 'thumb_size'); $img_size = pagelayer_isset($el['tmp'], 'def_thumb_img-'.$thumb_size.'-url'); $param['def_thumb_img'] = empty($img_size) ? pagelayer_isset($el['tmp'], 'def_thumb_img-url') : $img_size; } $el['atts']['pagelayer_pagination_top'] = ''; $el['atts']['pagelayer_pagination_bottom'] = ''; if(!empty($el['atts']['pagination']) && empty($el['atts']['infinite_types'])){ // Create array for pagination $pagination = array( 'prev_next' => $el['atts']['pagination'] == 'number' ? false : true, 'prev_text' => __( pagelayer_isset($el['atts'], 'pagi_prev_text') ), 'next_text' => __( pagelayer_isset($el['atts'], 'pagi_next_text') ), 'end_size' => $el['atts']['pagi_end_size'], 'mid_size' => $el['atts']['pagi_mid_size'], 'before_page_number' => pagelayer_isset($el['atts'], 'before_page_number'), 'after_page_number' => pagelayer_isset($el['atts'], 'after_page_number'), ); if(!empty($dummy_pagination)){ $pagination['total'] = 10; } if( isset($el['atts']['pagination_on']) && $el['atts']['pagination_on'] == 'top'){ $el['atts']['pagelayer_pagination_top'] = '<div class="pagelayer-pagination">'.paginate_links($pagination).'</div>'; }else{ $el['atts']['pagelayer_pagination_bottom'] = '<div class="pagelayer-pagination">'.paginate_links($pagination).'</div>'; } } if(wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'pagelayer_infinite_posts'){ $query_args['paged'] = $el['atts']['paged']; }else{ $data = array('tag' => $el['tag'], 'atts' => $el['oAtts']); $pagelayer->localScript['pagelayer_post_'.$el['id']] = $data; } $el['atts']['pagelayer_archive_posts'] = pagelayer_posts($param, $query_args); } // Flipbox handler function pagelayer_sc_flipbox(&$el){ // Flipbox front heading image if(!empty($el['atts']['heading_image'])){ $heading_image_size = pagelayer_isset($el['atts'], 'heading_image_size'); $el['atts']['func_image'] = pagelayer_isset($el['tmp'], 'heading_image-'.$heading_image_size.'-url'); $el['atts']['func_image'] = empty($el['atts']['func_image']) ? pagelayer_isset($el['tmp'], 'heading_image-url') : $el['atts']['func_image']; } $back = pagelayer_isset($el['atts'], 'back_section'); if(pagelayer_is_live() && !empty($back)){ $el['attr'][] = 'back_section="'.$back.'"'; } } // Countdown handler function pagelayer_sc_countdown(&$el){ $exp = pagelayer_isset($el['atts'], 'display_expired_text'); if(pagelayer_is_live() && !empty($exp)){ $el['attr'][] = 'display_expired_text="'.$exp.'"'; } if(!isset($el['atts']['custom_label_text'])){ $el['atts']['days_label_text'] = 'Days'; $el['atts']['hours_label_text'] = 'Hours'; $el['atts']['minutes_label_text'] = 'Minutes'; $el['atts']['seconds_label_text'] = 'Seconds'; } } // Social Share Handler function pagelayer_sc_share(&$el){ if(empty($el['atts']['icon'])){ return; } $profileName = ''; if(isset($el['atts']['custom_profile'])){ $profileName = $el['atts']['custom_profile'].'/'; } $icon_splited = explode(' fa-', $el['atts']['icon']); $el['classes'][] = ['.pagelayer-share-content' => 'pagelayer-'.$icon_splited[1]]; $icon = $icon_splited[1]; $labelList = array( 'Facebook' => array( 'icons' => array('facebook', 'facebook-f', 'facebook-messenger', 'facebook-square', 'facebook-official'), 'url' => 'https://www.facebook.com/sharer/sharer.php?u=' ), 'Twitter' => array( 'icons' => array('twitter', 'twitter-square'), 'url' => 'https://twitter.com/intent/tweet?url=' ), 'Google+' => array( 'icons' => array('google-plus', 'google-plus-square', 'google-plus-g'), 'url' => 'https://plus.google.com/share?url=' ), 'Instagram' => array( 'icons' => array('instagram'), 'url' => 'https://www.instagram.com/'.$profileName, 'no' => 1 ), 'Linkedin' => array( 'icons' => array('linkedin', 'linkedin-in', 'linkedin-square'), 'url' => 'https://www.linkedin.com/shareArticle?url=' ), 'pinterest' => array( 'icons' => array('pinterest', 'pinterest-p', 'pinterest-square'), 'url' => '//www.pinterest.com/pin/create/button/?url=' ), 'Reddit' => array( 'icons' => array('reddit-alien', 'reddit-square', 'reddit'), 'url' => 'https://reddit.com/submit?url=' ), 'Skype' => array( 'icons' => array('skype'), 'url' => 'https://web.skype.com/share?', 'no' => 1 ), 'Stumbleupon' => array( 'icons' => array('stumbleupon', 'stumbleupon-circle'), 'url' => 'https://www.stumbleupon.com/submit?url=' ), 'Telegram' => array( 'icons' => array('telegram', 'telegram-plane'), 'url' => 'https://t.me/share/url?url=' ), 'Tumblr' => array( 'icons' => array('tumblr', 'tumblr-square'), 'url' => 'https://www.tumblr.com/share/link?url=' ), 'VK' => array( 'icons' => array('vk'), 'url' => 'http://vk.com/share.php?url=' ), 'Weibo' => array( 'icons' => array('weibo'), 'url' => 'http://service.weibo.com/share/share.php?url=' ), 'WhatsApp' => array( 'icons' => array('whatsapp', 'whatsapp-square'), 'url' => 'whatsapp://send?text=' ), 'WordPress' => array( 'icons' => array('wordpress', 'wordpress-simple'), 'url' => 'https://wordpress.com/press-this.php?u=' ), 'Xing' => array( 'icons' => array('xing', 'xing-square'), 'url' => 'https://www.xing.com/spi/shares/new?url=' ), 'Delicious' => array( 'icons' => array('delicious'), 'url' => 'https://delicious.com/save?v=5&noui&jump=close&url=' ), 'Dribbble' => array( 'icons' => array('dribbble', 'dribbble-square'), 'url' => 'https://dribbble.com/shots/'.$profileName, 'no' => 1 ), 'Pocket' => array( 'icons' => array('get-pocket'), 'url' => 'https://getpocket.com/edit?url=' ), 'Email' => array( 'icons' => array('envelope', 'envelope-open', 'envelope-o'), 'url' => 'mailto:?body=' ) ); if(!empty($el['atts']['text'])){ $el['atts']['icon_label'] = $el['atts']['text']; }else{ foreach($labelList as $key => $val){ if(in_array($icon, $val['icons'])){ $el['atts']['icon_label'] = $key; break; } } } foreach($labelList as $key => $val){ if(in_array($icon, $val['icons'])){ if(empty($val['no'])){ $el['atts']['social_url'] = $val['url'].$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; }else{ $el['atts']['social_url'] = $val['url']; } break; } } } // If the excerpt for current post is there only then give function pagelayer_get_the_excerpt(){ global $post; if(!empty($post->post_excerpt)){ return $post->post_excerpt; } return ''; } function pagelayer_sc_post_excerpt(&$el){ $el['tmp']['post_excerpt'] = ''; $tmp_excerpt = pagelayer_get_the_excerpt(); if(!empty($tmp_excerpt) && strlen($tmp_excerpt) > 0){ $el['tmp']['post_excerpt'] = '<div class="pagelayer-post-excerpt">'.$tmp_excerpt.'</div>'; } if(pagelayer_is_live_template()){ $el['tmp']['post_excerpt'] = '<div class="pagelayer-post-excerpt pagelayer-empty-widget"></div>'; } } function pagelayer_sc_copyright(&$el){ $el['atts']['copyright_text'] = pagelayer_get_option('pagelayer-copyright'); $el['oAtts']['copyright_text'] = $el['atts']['copyright_text']; } // Pricing Handler function pagelayer_sc_pricing(&$el){ //Backward compatibility for new link props pagelayer_add_link_backward($el, array( 'link' => 'button_url', 'rel' => '', 'target' => 'button_url_target', 'selector' => '.pagelayer-pricing-btn' )); } // Post Title function pagelayer_sc_post_title(&$el){ $el['atts']['open_html_tag'] = !empty($el['atts']['html_tag']) ? '<'.$el['atts']['html_tag'].'>' :''; $el['atts']['close_html_tag'] = !empty($el['atts']['html_tag']) ? '</'.$el['atts']['html_tag'].'>' :''; }