!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/var/softaculous/sitepad/editor/site-data/plugins/pagelayer-pro/main/   drwxr-xr-x
Free 293.09 GB of 429.69 GB (68.21%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     template-builder.php (29.4 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

//////////////////////////////////////////////////////////////
//===========================================================
// tampalte-builder.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 !');
}

// The function shows the page to add template
function pagelayer_builder_template_wizard(){
    
    global 
$pagelayer;
    
    if(!empty(
$_REQUEST['post'])){
        
$posts get_posts([
            
'post_type' => $pagelayer->builder['name'],
            
'post_status' => 'any',
            
'include' => (int) $_REQUEST['post'],
        ]);        
        
//print_r($posts);
        
        // Did we find it ?
        
if(!empty($posts[0])){
            
$post $posts[0];
            
$_post['id'] = $post->ID;
            
$_post['type'] = get_post_meta($post->ID'pagelayer_template_type'true);
            
$_post['conditions'] = get_post_meta$post->ID'pagelayer_template_conditions'true );
            
$_post['post_title'] = $post->post_title;
        }
    }
    
    
// Fill in defaults if nothing found
    
if(empty($_post)){
        
$_post['id'] = 0;
        
$_post['type'] = '';
        
$_post['post_title'] = '';
        
$_post['conditions'] = [];
    }
    
?>
<style>

.pagelayer-temp-search-sel-open{
float: right;
font-size: 10px;
padding: 0px;
line-height: 20px;
}

.pagelayer-temp-search-sel-remove{
position: absolute;
right: 20px;
font-size: 11px;
top: 10px;
z-index: 10;
}

.pagelayer-temp-search-sel-span{
display: block;
margin: 2px;
cursor: pointer;
box-sizing: border-box;
border: 1px solid #dbdbdb;
transition: all 0.3s;
font-size: 13px;
padding: 3px;
}

.pagelayer-temp-search-sel-span:hover{
border-color: #00A0D2;
background-color: #3e8ef7;
color: #ffffff;
box-shadow: 0px 1px 1px #3e8ef7bf;
}

.pagelayer-temp-search-sel-span i{
font-size: 15px;
line-height: 1em;
padding: 3px;
color: #555;
transition: all 0.3s;
vertical-align: middle;
}

.pagelayer-temp-search-sel-span:hover i{
color: #ffffff;
}

.pagelayer-temp-search-sel{
vertical-align: top
}

.pagelayer-temp-toggle{
cursor:pointer;    
}

.pagelayer-temp-label{
display:block;
margin-bottom:5px;
}

.pagelayer-temp-fields{
display:inline-block;
position:relative;
margin:0 3px;
}

.pagelayer-temp-condition{
border:1px solid #d0d0d0;
margin-bottom:10px;
}

.pagelayer-temp-tab{
padding: 6px 10px;
background: #d0d0d0;
display: flow-root;
}

.pagelayer-temp-condition-div{
padding:10px;
}

.pagelayer-temp-hide{
display:none;
}

.pagelayer-temp-search-holder{
position:relative;
display:inline-block;
}

.pagelayer-temp-search-div{
cursor: pointer;
padding: 5px;
border: solid 1px #d1d1d1;
background: #fffffc;
color: #333;
vertical-align: middle;
width: 126px;
display: flex;
/* min-width: 245px;
border-radius: 4px;
margin: 0 auto;
position: absolute;
top: 7px; */
}

.pagelayer-temp-search-preview{
position: relative;
margin-right: 5px;
width: 100%;
border: none;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

.pagelayer-temp-search-preview i{
padding-right: 5px;
font-size: 19px;
color: #666;
vertical-align: middle;
}

.pagelayer-temp-search-name{
font-size: 13px;
}

.pagelayer-temp-search-selector{
position: absolute;
z-index: 1000;
border: 1px solid rgba(0,0,0,0.2) !important;
background: #fff !important;
box-shadow: 0 3px 5px rgba(0,0,0,0.2) !important;
-webkit-border-radius: 2px !important;
text-shadow: none !important;
padding: 5px;
height: auto;
box-sizing: border-box;
display: none;
width: 100%;
border-radius: 2px;
margin: 0 0 0 auto;
top: 35px;
}

.pagelayer-temp-search-val{
margin-bottom: 5px !important;
padding: 2px 6px;
line-height: 20px !important;
border-radius: 3px !important;
width: 100%;
}

.pagelayer-temp-search-list{
width: 100%;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
max-height: 183px;
overflow-y: auto;
}


.pagelayer-temp-close{
float:right;
font-size:15px;
}

.pagelayer-close-condition{
font-size: 15px;
font-weight: 900;
height:7px;
margin-top: -2px;
padding-left:5px;
padding-right:5px;
float:right;
cursor: pointer;
}

.pagelayer-temp-add-new,
.pagelayer-temp-submit-btn{
font-size: 14px;
font-weight: bold;
cursor: pointer;
border-radius: 2px;
padding: 4px 8px;
border: #398439 1px solid;
color: #fff;
background: #449d44;
}

.pagelayer-temp-pad5{
padding-left:5px;
padding-right:5px;
}

.pagelayer-temp-container{
background-color:#fff;
padding:0px;
width:95%;
border-radius: 4px;
margin: 10px auto;
}

.pagelayer-temp-head{
padding:10px;
font-weight:bold;
border-bottom: 1px solid #dfdfdf;
}

.pagelayer-temp-row{
display:table-cell; padding: 10px;
}

.pagelayer-temp-condition-holder{
padding: 0px 10px;
display: none;
}

.pagelayer-temp-submit{
padding: 10px;
}

.pagelayer-temp-container select{
font-size:13px;
}

.postbox{
margin-bottom:5px;
}

</style>
<?php

    $sel_type 
$_post['type'];
    
$dis_conditions $_post['conditions'];
    
    echo 
'
<div class="pagelayer-temp-container">
    <div class="pagelayer-temp-head">
        <img src="'
.PAGELAYER_URL.'/images/pagelayer-logo-19.png'.'" style="vertical-align: top;" /> ';
        
        if(empty(
$_post['type'])){
            echo 
__pl('add_temp');
        }else{
            echo 
__pl('edit_temp').'<span style="float:right" class="pagelayer-temp-edit"><a href="'.esc_urlpagelayer_shortlink($_post['id']).'&pagelayer-live=1' ).'">'.__pl('edit_using').'</a></span>';
        }
    echo 
'
    </div>
    
    <div class="pagelayer-temp-row">
        <label class="pagelayer-temp-label">'
.__('Select Template Type :').'</label>
        <select name="pagelayer_template_type" class="postbox">
            '
.pagelayer_create_sel_options$pagelayer->builder["type"], $sel_type ).'
        </select>
    </div>
    
    <div class="pagelayer-temp-row">
        <label for="pagelayer_lib_title" class="pagelayer-temp-label">'
.__('Name :').'</label>
        <input type="text" name="pagelayer_lib_title" size="30" value="'
.$_post['post_title'].'" />
    </div>
    
    <div class="pagelayer-temp-condition-holder '
.((!empty($pagelayer->builder["type"][$sel_type]['no_condition'])) ? ' pagelayer-temp-hide' '').'">
        <label class="pagelayer-temp-label">'
.__('Template Display Conditions :').'</label>
        <div class="pagelayer-temp-condition-container">'
;
        
    if( !empty(
$dis_conditions) ){
        
        foreach(
$dis_conditions as  $condi){
            
            echo 
'
            <div class="pagelayer-temp-condition">
                <div class="pagelayer-temp-tab">
                    <span class="pagelayer-temp-toggle pagelayer-temp-pad5">&#9776;</span>
                    <span>'
__('Display Conditions').'</span>
                    <span class="pagelayer-close-condition">&times;</span>
                </div>
                <div class="pagelayer-temp-condition-div">
                    <div class="pagelayer-temp-fields">
                        <label for="pagelayer_condition_type" class="pagelayer-temp-label">'
__('Action Type :').'</label>
                        <select name="pagelayer_condition_type[]" class="postbox">
                        '
.pagelayer_create_sel_options$pagelayer->builder["action"], $condi['type'] ).'
                        </select>
                    </div>
                    <div class="pagelayer-temp-fields">                    
                        <label for="pagelayer_condition_name" class="pagelayer-temp-label"> '
__('Display On : ').'</label>
                        <select name="pagelayer_condition_name[]" class="postbox">
                        '
.pagelayer_create_sel_options$pagelayer->builder['dispay_on'], $condi['template'] ).'
                        </select>
                    </div>
                    <div class="pagelayer-temp-fields '
.(empty($condi['template']) ? 'pagelayer-temp-hide' '').'">
                        <label for="pagelayer_condition_sub_template" class="pagelayer-temp-label"> '
__('Template : ').'</label>
                        <select name="pagelayer_condition_sub_template[]" class="postbox">'
;
                    
            if(
$condi['template'] == 'archives'){
                echo 
pagelayer_create_sel_options$pagelayer->builder['archives_templates'], $condi['sub_template'] );
            }else{
                echo 
pagelayer_create_sel_options$pagelayer->builder['singular_templates'], $condi['sub_template'] );
            }
            echo 
'
                        </select>
                    </div>
                    <div class="pagelayer-temp-fields pagelayer-temp-search-sel '
. ((empty($condi['sub_template'])) ? ' pagelayer-temp-hide' '').'">
                        <label for="pagelayer_condition_id" class="pagelayer-temp-label">'
.__('Specific Items').'</label>';
            
            
$req_arr['id'] = $condi['id'];
            
$req_arr['filter_type'] =  'post';

            if( 
is_numeric(strpos($condi['sub_template'] , 'author'))){
                
$req_arr['filter_type'] = 'author';
            }
            
            if( 
is_numeric(strpos($condi['sub_template'] , 'category'))  || is_numeric(strpos($condi['sub_template'] , 'tag')) ){
                
$req_arr['filter_type'] = 'taxonomy';
            }
            
            
$title_array pagelayer_builder_get_title($req_arr['filter_type'], $req_arr['id']);
            
$id '';
            
$title '';
            foreach ( 
$title_array as $tmp_id => $tmp_title ) {
                
$id $tmp_id;
                
$title $tmp_title;
            }
            
            echo 
'
                        <select name="pagelayer_condition_id[]" class="postbox pagelayer-temp-hide">
                            <option selected value="'
. ((empty($id)) ? '' $id).'"> '. ((empty($title)) ? __('All') : $title).'</option>
                        </select>
                        <div class="pagelayer-temp-search-holder">
                            <div class="pagelayer-temp-search-div">
                                <div class="pagelayer-temp-search-preview">
                                    <span class="pagelayer-temp-search-name">
                                        '
. ((empty($title)) ? __('All') : $title).'
                                    </span>
                                    <span class="pagelayer-temp-close '
. ((empty($title)) ? ' pagelayer-temp-hide' '').'">&times;</span>                    
                                </div>
                                <span class="">&#11206;</span>
                            </div>
                            <div class="pagelayer-temp-search-selector">
                                <input autocomplete="off" type="text" class="pagelayer-temp-search-val" name="search-icon" placeholder="Search">
                                <div class="pagelayer-temp-search-list">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>'
;
            
        }
    }
    echo 
'
        </div>
        <div style="margin:15px 10px;">
            <span class="pagelayer-temp-add-new" >'
__('Add Conditions').'</span>
        </div>
    </div>
    
    <div class="pagelayer-temp-submit">
        <center><button type="submit" class="pagelayer-temp-submit-btn button button-primary">'
.__('Save Template').'</button></center>
    </div>
</div>
                        
<script type="text/javascript">
pagelayer_cpt = '
.json_encode($pagelayer->builder).';
pagelayer_ajax_url = "'
.admin_url'admin-ajax.php' ).'?";
pagelayer_builder_nonce = "'
.wp_create_nonce('pagelayer_builder').'";
</script>'
;

?>
<script type="text/javascript">
jQuery(document).ready(function(){
    var $ = jQuery;
    
    if(typeof pagelayer !== 'undefined'){
        var $ = pagelayer.$$ || $;
    } 
    
    // The container
    var pl_temp = $(".pagelayer-temp-container");
    var pl_condi = pl_temp.find('.pagelayer-temp-condition-holder');
    
    // Get values from multi-dimensional array by key 
    var pagelayer_multi_array_search = function(array = [], key){
        var array_key = [];
        
        if (key in array) {
            array_key = array[key];
        }
        
        for( var k in array) {
            if (typeof array[k] === 'object' && key in array[k]) {
                array_key = array[k][key];
            }
        }
        
        return array_key;
    }
    
    // Creates the select options
    var create_options = function(opt_array){
        var options = '';
        var tmp_numeric = ''; // Required to handle key 404 in singular templates as json decode puts number first and that spoils our order
        
        for (x in opt_array){
            
            // Single item
            if(typeof opt_array[x] == 'string'){
                options += option(x, opt_array[x]);
                
                if(tmp_numeric.length > 0){
                    options += tmp_numeric;
                    tmp_numeric = '';
                }
            
            // If is array then we get the label string
            }else if(typeof opt_array[x] == 'object'){
                if('label' in opt_array[x]){
            
                    if(x == 404){
                        tmp_numeric = option(x, opt_array[x]['label']);
                        continue;
                    }
            
                    options += option(x, opt_array[x]['label']);

                // Groups
                }else{
                    options += '<optgroup label="'+x+'">';
                    options += create_options(opt_array[x]);                    
                    options += '</optgroup>';
                }
            }
        }
        
        return options;
        
    }
    
    var option = function(val, lang){
        return '<option value="'+val+'">'+lang+'</option>';
    }
    
    var html_condi = '<div class="pagelayer-temp-condition">'+
        '<div class="pagelayer-temp-tab">'+
            '<span class="pagelayer-temp-toggle pagelayer-temp-pad5">&#9776;</span>'+
            '<span>'+<?php echo "'".__('Display Conditions')."'";?>+'</span>'+
            '<span class="pagelayer-close-condition">&times;</span>'+
        '</div>'+
        '<div class="pagelayer-temp-condition-div">'+
            '<div class="pagelayer-temp-fields">'+
                '<label for="pagelayer_condition_type" class="pagelayer-temp-label">'+<?php echo "'".__('Action Type')."'";?>+'</label>'+
                '<select name="pagelayer_condition_type[]" class="postbox">'+
                    create_options(pagelayer_cpt["action"])+
                '</select>'+
            '</div>'+
            ' <div class="pagelayer-temp-fields">'+
                '<label for="pagelayer_condition_name" class="pagelayer-temp-label">'+<?php echo "'".__('Display On')."'";?>+'</label>'+
                '<select name="pagelayer_condition_name[]" class="postbox">'+
                    create_options(pagelayer_cpt["dispay_on"])+
                '</select>'+
            '</div>'+
            ' <div class="pagelayer-temp-fields pagelayer-temp-hide">'+
                '<label for="pagelayer_condition_sub_template" class="pagelayer-temp-label">'+<?php echo "'".__('Template')."'";?>+'</label>'+
                '<select name="pagelayer_condition_sub_template[]" class="postbox">'+
                '</select>'+
            '</div>'+
            ' <div class="pagelayer-temp-fields pagelayer-temp-hide pagelayer-temp-search-sel">'+
                '<label for="pagelayer_condition_id" class="pagelayer-temp-label">'+<?php echo "'".__('Specific Items')."'";?>+'</label>'+
                '<select name="pagelayer_condition_id[]" class="postbox pagelayer-temp-hide">'+
                    '<option selected value="">All</option>'+
                '</select>'+
                '<div class="pagelayer-temp-search-holder">'+
                    '<div class="pagelayer-temp-search-div">'+
                        '<div class="pagelayer-temp-search-preview">'+
                            '<span class="pagelayer-temp-search-name">All</span>'+
                            '<span class="pagelayer-temp-close pagelayer-temp-hide">&times;</span>'+
                        '</div>'+
                        '<span class="">&#11206;</span>'+
                    '</div>'+
                    '<div class="pagelayer-temp-search-selector">'+
                        '<input autocomplete="off" type="text" class="pagelayer-temp-search-val" name="search-icon" placeholder="Search">'+
                        '<div class="pagelayer-temp-search-list">'+
                        '</div>'+
                    '</div>'+
                '</div>'+
            '</div>'+
        '</div>'+
    '</div>';
    
    // Removes a condition
    var close_tab = function(){
        var condi = pl_temp.find(".pagelayer-temp-condition");
        condi.find(".pagelayer-close-condition").click(function(){
            jQuery(this).closest(".pagelayer-temp-condition").remove();
        });
    };
    
    // Toggle a condition content
    var toggle_tab = function(){
        var condi = pl_temp.find(".pagelayer-temp-condition");
        condi.find(".pagelayer-temp-tab").unbind("click");
        condi.find(".pagelayer-temp-tab").click(function(){
            jQuery(this).closest(".pagelayer-temp-condition").find(".pagelayer-temp-condition-div").toggle();
        });
    };
    
    // Opens the search selector
    var open_search = function(){
        var el = pl_temp.find('.pagelayer-temp-search-div')
        el.unbind('click');
        el.on('click', function(){
            jQuery(this).parent().find('.pagelayer-temp-search-selector').slideToggle();
        });    
    };
    
    var pagelayer_set_inter; // A timer
    
    // Get closest select box by name in closest "pagelayer-temp-condition" class
    var pagelayer_get_closest_sel = function(jEle, name){
        return jEle.closest(".pagelayer-temp-condition").find("[name='"+name+"']");
    }
    
    // Handle search of values
    var search_list = function(){
        
        pl_temp.find('.pagelayer-temp-search-val').on('keyup', function(){
            var v = this.value;
            var iEle = jQuery(this);
            var template_name, ele_name, template_name_array;
            //v = v.replace(/\s+/g, '-');
            
            template_name = pagelayer_get_closest_sel(iEle, 'pagelayer_condition_name[]').val();
            ele_name =  pagelayer_get_closest_sel(iEle, 'pagelayer_condition_sub_template[]').val();
            template_name_array = pagelayer_multi_array_search(pagelayer_cpt[template_name+'_templates'], ele_name);
            
            data_array = {
                pagelayer_nonce: pagelayer_builder_nonce,
                search : v,
                filter_type : template_name_array['filter_type'] || 'post',
                object_type : template_name_array['object_type'] || 'post',
            };
            
            clearTimeout(pagelayer_set_inter);
            pagelayer_set_inter = setTimeout(function () {
                v = v.toLowerCase();
                
                jQuery.ajax({
                    url: pagelayer_ajax_url+'&action=pagelayer_search_ids',
                    type: 'post',
                    data : data_array,
                    success:function(response){
                        iEle.next().html(response);
                        //console.log(response);
                    }

                });
                
                //row.find('.pagelayer-temp-search-list').empty().html(span);
            }, 200);
            
        });
        
        // Handle click within the ID selector
        pl_temp.find('.pagelayer-temp-search-selector').unbind('click');
        pl_temp.find('.pagelayer-temp-search-selector').on('click', function(e){
            
            var jEle = jQuery(e.target);
            var val = jEle.attr('value');
            var text = jEle.text();
            
            if(val.length < 1 || text.length < 1){
                return false;
            }
            
            // Set the ID in this list
            var row = jEle.closest('.pagelayer-temp-search-sel');
            row.find('[name="pagelayer_condition_id[]"]').html('<option selected value="'+ val +'">'+ text +'</option>');
            row.find('.pagelayer-temp-search-preview .pagelayer-temp-search-name').text(text).next().show();
            row.find('.pagelayer-temp-search-selector').slideUp();
            
            return false; 
            
        });
        
        pl_temp.find('.pagelayer-temp-close').click(function(e){
            e.stopPropagation();
            var sHold = jQuery(this).closest('.pagelayer-temp-search-sel');
            sHold.find('[name="pagelayer_condition_id[]"]').html('<option selected value="">All</option>');
            sHold.find('.pagelayer-temp-search-preview .pagelayer-temp-search-name').text('All').next().hide();
        });
    };
    
    // Whenever a condition is to be initialized
    var reinit_conditions = function(){
        
        close_tab();
        toggle_tab();
        open_search();
        search_list();
        
        pl_temp.find('select').unbind('change');
        pl_temp.find('select').on('change', function(event, triggerEle){
            var sEle = jQuery(this);
            var sVal = sEle.val();
            var condiEle = triggerEle || pl_condi;
            //console.log(sVal);
            
            // Hide search box if any select is changed
            var temp_search = jQuery('.pagelayer-temp-search-selector');
            if(temp_search.is(':visible') || jQuery('.pagelayer-temp-search-preview > .pagelayer-temp-close').is(':visible')){
                temp_search.hide();
                temp_search.find('.pagelayer-temp-search-list').empty();
                temp_search.find('.pagelayer-temp-search-val').val('');
            }
            
            switch(sEle.attr('name')){
                case 'pagelayer_template_type':
                    var no_condition = pagelayer_cpt["type"][sVal]['no_condition'] || false;
                    
                    if( no_condition ){
                        pl_condi.hide();
                    }else if(!pl_condi.is(':visible')){
                        pl_condi.show();
                    }
                    
                    condiEle.find("[name='pagelayer_condition_name[]']").each(function(){
                        var condi_name = jQuery(this);
                        var need_selection = pagelayer_multi_array_search(pagelayer_cpt["type"], sVal);
                        if(typeof need_selection === 'object' && 'need_selection' in need_selection){
                            if(need_selection['need_selection'] != condi_name.val() ){
                                condi_name.val(need_selection['need_selection']).trigger('change');
                            }
                            condi_name.css('pointer-events', 'none');
                        }else if(condi_name.css('pointer-events') == 'none'){
                            condi_name.css('pointer-events', 'all');
                        }
                        
                    });
                    
                    break;
                    
                case 'pagelayer_condition_type[]':
                    //console.log(sEle.val());
                    break;
                    
                case 'pagelayer_condition_name[]':
                    var ele_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_sub_template[]');
                    //console.log(sEle.val());
                    
                    if(sVal.length == 0){
                        ele_name.closest(".pagelayer-temp-fields").addClass('pagelayer-temp-hide');
                    }else{
                        if(pagelayer_cpt[sVal+"_templates"]){
                            ele_name.html(create_options(pagelayer_cpt[sVal+"_templates"]));
                            ele_name.closest(".pagelayer-temp-fields").removeClass('pagelayer-temp-hide');
                        }    
                    }
                    
                    ele_name.trigger('change');
                    break;
                    
                case 'pagelayer_condition_sub_template[]':
                    // Get selected template name
                    var template_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_name[]').val();
                    var ele_name = pagelayer_get_closest_sel(sEle, 'pagelayer_condition_id[]');
                    var template_name_array = pagelayer_multi_array_search(pagelayer_cpt[template_name+'_templates'], sVal);
                    
                    if(sVal.length == 0 || template_name_array['no_id_section'] || !sEle.is(':visible')){
                        ele_name.closest(".pagelayer-temp-fields").addClass('pagelayer-temp-hide');
                    }else{
                        ele_name.closest(".pagelayer-temp-fields").removeClass('pagelayer-temp-hide');    
                    }
                    ele_name.closest(".pagelayer-temp-fields").find('.pagelayer-temp-close').click();
                    break;
                    
                case 'pagelayer_condition_id[]':
                    //console.log(sEle.val());                        
                break;    
            }
        });
        
    }
    
    reinit_conditions();
    
    <?php
    
    
if(!empty($_post['id'])){
        
$sub_template_sel "'pagelayer_condition_sub_template[]'";
        echo 
'
    //reinit_conditions();
    pl_condi.show();
    pl_temp.find("select[name=pagelayer_template_type]").trigger("change");
    pl_temp.find("select[name='
.$sub_template_sel.']").trigger("change");
    pl_temp.find("select[name=pagelayer_template_type]").prop("disabled", true);
    //pl_condi.find("select").trigger("change")'
;
    
    }
    
    
?>

    // On click add more condition
    pl_temp.find(".pagelayer-temp-add-new").click(function(){
        pl_condi.show();
        var hEle = jQuery(html_condi);
        pl_temp.find('.pagelayer-temp-condition-container').append(hEle);
        reinit_conditions();
        pl_temp.find('select[name="pagelayer_template_type"]').trigger('change', [hEle]);
    });
    
    // Save the template
    pl_temp.find(".pagelayer-temp-submit-btn").click(function(e){
        e.preventDefault();
        var data = pl_temp.find('input, select, textarea').serialize();
        //alert(data);
        
        jQuery.ajax({
            url: pagelayer_ajax_url+'&action=pagelayer_save_template&postID='+ <?php echo "'".$_post['id']."'";?>,
            type: 'post',
            data : 'pagelayer_nonce='+ pagelayer_builder_nonce +'&'+ data,
            success: function(response, status, xhr){
                var obj = jQuery.parseJSON(response);
                //alert(obj);
                if(obj['error']){
                    alert(obj['error']);
                }else{
                    alert(obj['success']);
                    var hasPost = new window.URLSearchParams(window.location.search).has('post');
                    if(!hasPost){
                        window.location.replace(window.location+'&post='+obj['id']);
                    }
                }
            },            
            error: function(errorThrown){
                alert(errorThrown);
                console.log(errorThrown);
            }
        });
    });        

});
</script>
    <?php
}

// Get Title from ID
function pagelayer_builder_get_title($type$ids = array()){
    
$ids = (array) $ids;
    
$sel_title = [];

    switch ( 
$type ) {
        case 
'taxonomy':
            
$terms get_terms([
                
'include' => $ids,
                
'hide_empty' => false,
            ]);

            global 
$wp_taxonomies;
            foreach ( 
$terms as $term ) {
                
$sel_title$term->term_taxonomy_id ] = $term->name ;
            }
            break;

        case 
'post':
            
$query = new \WP_Query([
                
'post_type' => 'any',
                
'post__in' => $ids,
                
'posts_per_page' => -1,
                
'post_status' => 'any',
            ]);
        
            foreach ( 
$query->posts as $post ) {
                
$sel_title$post->ID ] = $post->post_title;
            }
            break;

        case 
'author':
            
$query_params = [
                
'capability' => array( 'edit_posts' ),
                
'fields' => ['ID''display_name'],
                
'include' => $ids,
            ];
            
            
// Capability queries were only introduced in WP 5.9.
            
if( version_compare$GLOBALS['wp_version'], '5.9-alpha''<' ) ){
                
$args['who'] = 'authors';
                unset( 
$args['capability'] );
            }

            
$user_query = new \WP_User_Query$query_params );

            foreach ( 
$user_query->get_results() as $author ) {
                
$sel_title$author->ID ] = $author->display_name;
            }
            break;
    }

    return 
$sel_title;
}

// Append the Popup templates
function pagelayer_builder_popup_append(){
    global 
$pagelayer;
    
    if(!empty(
$GLOBALS['pagelayer_builder_popup_append_called'])){
        return;
    }
    
    
$GLOBALS['pagelayer_builder_popup_append_called'] = 1;
    
    
// Render the multiple Popups
    
foreach($pagelayer->template_popup_ids as $id => $priority){
    
        
$bLoadString '';
        
        
$content pagelayer_get_post_content($id);
        
        
// For popup before loading option
        // First check that att is placed or not. Then scan and extract the value of id and insert it into bLoadString variable
        
if(strpos($content'data-trig_before_load') !== false){            
            
preg_match('#pagelayer-id=([^\s]+)#'$content$matches);
            
$bLoadString 'pagelayer-popup-Shown="1" style="display: flex;" pagelayer-popup-id="'.$matches[1].'"';
        }
    
        echo 
'<div class="pagelayer-popup-modal" '.$bLoadString.'>
            <div class="pagelayer-popup-modal-content">
                <div class="pagelayer-popup-content">
                    '
.$content.'
                </div>
            </div>
        </div>'
;
    }
}

// Export Pages, Media and Pagelayer Template Files
function pagelayer_builder_export($type){
    
    global 
$pagelayer;
    
    
// Load the templates
    
pagelayer_builder_load_templates();
    
    
$data['page'] = [];
    
    
// Load the other posts
    
foreach($pagelayer->settings['post_types'] as $type){
    
        
// Make the query
        
$type_query = new WP_Query(['post_type' => $type'status' => 'publish''posts_per_page' => -1'orderby' => 'name''order' => 'ASC']);
        
$data[$type] = $type_query->posts;
        
    }
    
    
$nonce wp_create_nonce('pagelayer_builder');
    
    echo 
'<h1>Pagelayer - Export Template into a Theme</h1>
    <span style="font-size:12px">With this wizard you can export Pagelayer Template(s) (and pages) into a theme folder. This theme folder can be distributed as a theme and can be used by any Pagelayer user.</span>'
;
    
    
// Make two tables
    
echo '
<script>
pagelayer_ajax_url = "'
.admin_url'admin-ajax.php' ).'?";

function pagelayer_checkbox(ele, cl){
    var jEle = jQuery(ele);
    jQuery(cl).prop("checked", jEle.prop("checked"));
}

function pagelayer_export_template(){
    var data = jQuery("#pagelayer_export_template_form").serialize();
    //console.log(data);
    
    jQuery.ajax({
        dataType: "json",
        url: pagelayer_ajax_url+"&action=pagelayer_export_template",
        type: "post",
        data: data,
        success:function(response){
            if("success" in response){
                alert(response["success"]);
            }
            
            if("error" in response){
                alert(response["error"]);
            }
        }
    });
    
    return false;
}
</script>    

<form id="pagelayer_export_template_form">
<input type="hidden" name="pagelayer_nonce" value="'
.$nonce.'">
<div style="display:flex; flex-wrap: wrap; width:100%;">
    <div style="width:50%; padding: 10px;">
        <h2>Pagelayer Templates</h2>
        <table cellspacing="0" cellpadding="8" border="0" width="100%" class="wp-list-table widefat fixed striped">
            <tr>
                <td width="10"><input type="checkbox" onclick="pagelayer_checkbox(this, \'.pagelayer_temp_cb\');"></td>
                <td>Title</td>
                <td>Type</td>
                <td>Display On</td>
            </tr>'
;

        foreach(
$pagelayer->templates as $k => $v){
            
            
$type get_post_meta($v->ID'pagelayer_template_type'true);
            
            
$dis_conditions get_post_meta$v->ID'pagelayer_template_conditions'true );
            
$dis_html 'None';
            
            if( !empty(
$dis_conditions) ){
                
$dis_html '';
                foreach(
$dis_conditions as $condi){
                    
$dis_html .= '<span>';
                    
                    if(isset(
$condi['template'])){
                        
$template pagelayer_multi_array_search($pagelayer->builder['dispay_on'], $condi['template']);
                        
                        if(
is_array($template) && array_key_exists('label'$template)){
                            
$template $template['label'];
                        }
                        
                        
$dis_html .= $template;
                    }
                    
                    if(isset(
$condi['sub_template'])){
                        
$sub_template pagelayer_multi_array_search($pagelayer->builder[$condi['template'].'_templates'], $condi['sub_template']);
                        
                        if(
is_array($sub_template) && array_key_exists('label'$sub_template)){
                            
$sub_template $sub_template['label'];
                        }
                        
                        if(!empty(
$sub_template)){
                            
$dis_html .= ' > '$sub_template;
                        }
                    }
                    
                    if(!empty(
$condi['id'])){
                        
$dis_html .= ' > #'$condi['id'];
                    }
                    
                    
$dis_html .= '</span></br>';
                }
            }
            
            
//print_r($v);
            
echo '
            <tr>
                <td><input type="checkbox" class="pagelayer_temp_cb" name="templates['
.$v->ID.']"></td>
                <td>'
.$v->post_title.'</td>
                <td>'
.(!empty($pagelayer->builder['type'][$type]['label']) ? $pagelayer->builder['type'][$type]['label'] : $pagelayer->builder['type'][$type]).'</td>
                <td>'
.$dis_html.'</td>
            </tr>'
;
            
        }

    echo 
'
        </table>
    </div>'
;
    
    
$pt_objects get_post_types(['public' => true], 'objects');
    
    foreach(
$data as $type => $d){
        
        if(empty(
$pt_objects[$type])){
            continue;
        }
        
        echo 
'
    <div style="width:22%; padding: 10px;">
        <h2>'
.$pt_objects[$type]->labels->name.'</h2>
        <table cellspacing="0" cellpadding="8" border="0" width="100%" class="wp-list-table widefat fixed striped">
            <tr>
                <td width="10"><input type="checkbox" onclick="pagelayer_checkbox(this, \'.pagelayer_'
.$type.'_cb\');"></td>
                <td>Title</td>
                <td width="80">Type</td>
            </tr>'
;

        foreach(
$data[$type] as $k => $v){
            
            
//$type = get_post_meta($v->ID, 'pagelayer_template_type', true);
            
            //print_r($v);
            
echo '
            <tr>
                <td><input type="checkbox" class="pagelayer_'
.$type.'_cb" name="'.$type.'['.$v->ID.']"></td>
                <td>'
.$v->post_title.'</td>
                <td>'
.$pt_objects[$type]->labels->name.'</td>
            </tr>'
;
            
        }

        echo 
'
        </table>
    </div>'
;
    
    }
    
    echo 
'
</div>
    
<div class="pagelayer-temp-submit">
    <center>
        <button onclick="return pagelayer_export_template()" class="pagelayer-temp-submit-btn button button-primary">'
.__('Export Template Files').'</button>
    </center>
</div>
</form>'
;
    
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0942 ]--