1000 lines
30 KiB
PHP
1000 lines
30 KiB
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_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 --')
|
|
);
|
|
|
|
$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){
|
|
$el['atts']['grecaptcha'] = get_option('pagelayer_google_captcha');
|
|
|
|
if(!empty($el['atts']['captcha'])){
|
|
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;
|
|
wp_register_script('pagelayer_cap_script', "https://www.google.com/recaptcha/api.js?render=explicit$lang", array(), PAGELAYER_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="'.@$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'] : @$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'] = @$el['tmp']['id-'.$el['atts']['id-size'].'-url'];
|
|
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? @$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)){
|
|
|
|
$el['atts']['func_image'] = @$logo[$el['atts']['logo_img_size'].'-url'];
|
|
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? @$logo['url'] : $el['atts']['func_image'];
|
|
$el['tmp']['logo_img-title'] = @$logo['title'];
|
|
$el['tmp']['logo_img-alt'] = @$logo['alt'];
|
|
}
|
|
|
|
// Custom logo
|
|
}else{
|
|
|
|
$el['atts']['func_image'] = @$el['tmp']['logo_img-'.$el['atts']['logo_img_size'].'-url'];
|
|
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? @$el['tmp']['logo_img-url'] : $el['atts']['func_image'];
|
|
|
|
$el['tmp']['logo_img-title'] = @$el['tmp']['logo_img-title'];
|
|
$el['tmp']['logo_img-alt'] = @$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(@$el['atts']['nav_list']),
|
|
'menu_id' => @$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() && @$_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'])){
|
|
$img_size = @$el['tmp']['def_thumb_img-'.$el['atts']['thumb_size'].'-url'];
|
|
$param['def_thumb_img'] = empty($img_size) ? @$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' => __( @$el['atts']['pagi_prev_text'] ),
|
|
'next_text' => __( @$el['atts']['pagi_next_text'] ),
|
|
'end_size' => $el['atts']['pagi_end_size'],
|
|
'mid_size' => $el['atts']['pagi_mid_size'],
|
|
'before_page_number' => @$el['atts']['before_page_number'],
|
|
'after_page_number' => @$el['atts']['after_page_number'],
|
|
);
|
|
|
|
if(!empty($dummy_pagination)){
|
|
$pagination['total'] = 10;
|
|
}
|
|
|
|
if( @$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() && @$_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'])){
|
|
$el['atts']['func_image'] = @$el['tmp']['heading_image-'.$el['atts']['heading_image_size'].'-url'];
|
|
$el['atts']['func_image'] = empty($el['atts']['func_image']) ? @$el['tmp']['heading_image-url'] : $el['atts']['func_image'];
|
|
}
|
|
|
|
$back = @$el['atts']['back_section'];
|
|
if(pagelayer_is_live() && !empty($back)){
|
|
$el['attr'][] = 'back_section="'.$back.'"';
|
|
}
|
|
}
|
|
|
|
// Countdown handler
|
|
function pagelayer_sc_countdown(&$el){
|
|
$exp = @$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'].'>' :'';
|
|
} |